Changelog
Oxla beta release 1.20.0 - 4/4/24
pg_table_is_publishable
function was added, takesregclass
as parameter (table oid or name) and returns whether relation is publishable. Oxla doesn’t support publishing hence it always returnsfalse
.- Added support for
TIME
andJSON
types inIN
expressions. - Added
pg_table_size
function takes one parameter which is table regclass and returns it’s size. Quote_Ident
function mimicking Quote_Ident from postgres.- Add function
POSITION(str IN substr)
, that works the same asSTRPOS
. - Parser accepts now both
LF
andCRLF
as line break. - Updated metric for oxla internal tasks handling.
- Very limited support for
pg_catalog.pg_proc
table. - Add function
pg_catalog.pg_get_constraintdef
although descriptions are not supported by Oxla, so it always returns null. - substring function (it works the same as substr).
pg_table_is_visible
function now also returning whether index associated to given oid is visible within current search_path.- Function
format_type
. It works similar as in Postgres (but only for data types supported in Oxla). pg_table_is_visible
function returning whether table associated to given oid is visible within current search_path.- Added support for time zones in case, when the OXLA server does not have access to the internet.
- Added flags to the oxla config enabling fast commits.
- Functions
shobj_description
andcol_description
added. They always return null, as Oxla does not support “comment on”. - added empty tables for tools satisfaction:
pg_policy
,pg_statistic_ext
,pg_publication
,pg_publication_rel
,pg_publication_namespace
,pg_inherits
. pg_get_userbyid
function returning username associated to given oid.- OID generated for index (visible in
pg_index
andpg_class
metatables) will be different for each new index. Previously it was always 0 (and it will remain 0 for indices created on older oxla version). set datestyle = 'ISO, MDY';
is supported (or simply ‘ISO’), but does nothing as ISO, MDY is default value. This is required by some connectors/tools.
- Removes arithmetic expression from
GROUP BY
columns if they are neutral for aggregation (e. g. changes A + 4 into A). - Optimization, transforms
SUM(A + k)
intoSUM(A) + k * COUNT(*)
. - Much faster
ORDER BY col LIMIT BY ...
where col is a scalar column (integer
,floating point
,boolean
orstring
). - Faster
SUM
operation in aggregation over whole table overINTEGER
,LONG
,FLOAT
,DOUBLE
non nullable columns. - Faster
MIN
,MAX
operation in aggregation over whole table overINTEGER
,FLOAT
,DOUBLE
non nullable columns. - Faster <> operator comparing
INTEGER
andLONG
types with literal (e. g.my_col <> 53
). - ~5x faster LENGTH function.
- Operator <> works faster when comparing with constant.
- Minor performance improvement of
WHERE
andJOIN
operations. - Removed implementation implementation detail fields from defaultly generated config file.
- Changed type names in
pg_catalog.pg_type
, so they match the ones in Postgres. This change applies only to how type names are shown inpg_type
(Oxla handles types exactly the same as before). Changed names: integer -> int4, real -> float4, boolean -> bool, bigint -> int8, double precision -> float8, timestamp without time zone -> timestamp, timestamp with time zone -> timestamptz, time without time zone -> time. - Faster/cheaper CSV reading speed on S3 due to query count reduction.
- Fixed
pg_total_relation_size
crashing Oxla when provided with invalid literal oid. - Fixed issue that caused queries to hang when executing a high volume of insert queries in rapid succession.
STRPOS
function is working.- Fixed out of memory errors crashing Oxla for some queries.
- Faster CSV reader initialization.
- Fix unsynchronized memory access that theoretically could cause improper behavior.
- Fixed a bug, where
length(<const value>)
function would fail.
Oxla beta release 1.14.0 - 21/2/24
- A sanity check on oxla startup for minimal
memory.max
andmemory.non_query_max
configuration. information_schema.columns
, which contain information about all columns in user namespaces.pg_language
table.to_char function
converting timestamp/timestamptz to string using given format string.- Support for int8 and int4 binary parameters in Postgres extended query protocol.
Oxla beta release 1.13.0 – 16/2/24
-
Add
information_schema.referential_constraints
table for tools integration purposes. -
Add
to_char
function to convert the number to string using the given format string. -
Add
to_timestamp
function to convert the string to timestamp using given format string. -
Cast from time to
interval date_trunc
function working like Postgresdate_trunc
. -
DISCARD ALL to reset all session variables.
-
Add support for
pg_catalog.has_database_privilege()
function. -
Possibility to the hardcode leader of the cluster in config.
-
Postgres-like tables:
pg_enum
,pg_range
,information_schema.character_sets
. -
Enabled optimization, taking advantage of complex expressions in filters.
-
Add
pg_encoding_to_char
andpg_size_pretty function
function. -
Add
pg_catalog.obj_description
function although descriptions are not supported by Oxla, always returns null. -
Add table
tables
in the information_schema namespace. -
Add table
pg_catalog.pg_tablespace
,pg_catalog.pg_database
,information_schema.key_column_usage
, andpg_catalog.pg_am
support. -
Support for operator interval div number.
-
Reduced the amount of s3 requests when performing
COPY FORM (FORMAT CSV)
. -
Improved the error messages in
INSERT INTO VALUES
queries.
-
Increased stability of
COPY FROM
queries with large inputs. -
Fixed the issue with
INSERT INTO SELECT
queries where data types were not cast to proper types automatically.
Oxla beta release 1.8.0 - 12/1/24
-
Optimization of HAVING clause when combined with WHERE clause in the same query.
-
Support for String Constants with C-Style Escapes.
-
Support for
COPY (table|select statement) TO filename.csv (options)
query. -
Support for operator interval * float.
-
Fixed the instability issue when the whole table’s content has been deleted using
DELETE FROM <table_name>
-
Fixed the instability cluster issue when disconnecting a disconnected node bug in cluster monitoring.
-
Fixed a bug that appeared during conversion intervals when the interval used a date/time format.
-
Fixed the error handling response when the pipeline startup failed.
-
Fixed a bug with duplicated name detection caused the cluster to be inoperable after startup.
-
Fixed a bug on
INSERT INTO table SELECT
statement due to the lifetime issues.
Oxla beta release 1.4.0 - 14/12/23
-
Support for date - date operator.
-
Support for time - time operator.
-
Support for date + time operator.
- Improved performance of query planning.
-
Fixed intermittent crashes in the GROUP BY.
-
Fixed a bug that happens when deleting the index table.
-
Fixed the Google Cloud Storage compatibility issue.
-
Fixed an issue that could result in a crash when running GROUP BY over columns with very high cardinality.
-
Fixed an issue that could result in deadlock upon cluster startup.
- The default AWS S3 endpoint is used when no endpoint is specified in the COPY statement.
Oxla beta release 1.3.0 - 06/12/23
-
Fixed the degradation error failure when OXLA_HOME was an empty S3 folder created before Oxla started.
-
Fixed a bug where OXLA would not return an error when cast would overflow the integer type.
-
Fixed a bug where OXLA would return an error when casting values from Date type to Timestamp/Timestamptz.
-
Fixed the issue of improper read of storage_config.s3.http parameter.
-
Fixed a bug in an optimization causing some queries using aggregation functions as WHERE conditions to fail to plan and run on OXLA.
-
The COPY statement with unsupported FORMAT (tbl / binary / bin) will return error (”… format not supported”). Previously all these formats, despite their names, resulted in importing CSV. COPY without provided FORMAT will still use CSV as default format.
-
The format of internal messages passed between Oxla nodes for COPY CSV changed, so the new node and old node must not be in the same cluster when COPY is being executed.
-
We are working closely with our team to resolve this issue as soon as possible.
Oxla beta release 1.2.0 - 27/11/23
- Handling columns specified in the INSERT INTO with SELECT. e.g. INSERT INTO tbl1(c2) SELECT col1 FROM tbl2.
- Extended support for implicit conversions of timestamp-like types in INSERT and COPY queries.
-
Fixed the arithmetic operator was used to determine the output type.
-
Fixed the errors with storage communication.
-
Fixed the error handling when downcasting number types with losing data.
-
Fixed the issue that Oxla sometimes left files when dropping tables or deleting data.
Oxla beta release 1.1.0 - 20/11/23
- Support for Basic INSERT INTO [table] SELECT [statement].
-
Improved performance of most GROUP BY variants.
-
Slight performance improvement of GROUP BY over numeric columns.
-
Degraded node stays in the cluster.
-
Fixed the issue with the node connection to the cluster.
-
Disabled the empty string as a valid internal value.
-
Fixed the failures when reading timestamp values from CSV.