Version 5.3.3¶
Released on 2023-06-26.
Note
If you are upgrading a cluster, you must be running CrateDB 4.0.2 or higher before you upgrade to 5.3.3.
We recommend that you upgrade to the latest 5.2 release before moving to 5.3.3.
A rolling upgrade from 5.2.x to 5.3.3 is supported. Before upgrading, you should back up your data.
Warning
Tables that were created before CrateDB 4.x will not function with 5.x and must be recreated before moving to 5.x.x.
You can recreate tables using COPY TO and COPY FROM or by
inserting the data into a new table.
Table of Contents
See the Version 5.3.0 release notes for a full list of changes in the 5.3 series.
Fixes¶
Fixed an issue introduced with CrateDB
5.3.0resulting in failing writes, broken replica shards, or even un-recoverable tables on tables using a column definition with a number data type and an explicitINDEX OFF. Any table that was created withINDEX OFFon a number column and already written to with CrateDB version >=5.3.0should be recreated using e.g. INSERT INTO new_table SELECT * FROM old_table (followed by swap table ALTER CLUSTER SWAP TABLE new_table TO old_table) or restored from a backup.Fixed a regression introduced in 4.7.0 which caused aggregations used in
INSERT INTOstatements returning null instead of the aggregation result.Fixed a regression introduced in 5.3.0 which caused
CAST(<generated_partition_column> AS <targetType>)expressions to returnNULLinstead of the cast result.Fixed a regression introduced in 5.3.0 which caused
INSERT INTOstatements with aON CONFLICTclause on tables with generated primary key columns to fail with anArrayIndexOutOfBoundsException.Fixed an issue that caused an
NullPointerExceptionwhile inserting aTIMETZtyped value dynamically which is not supported.Fixed a regression introduced in 5.3.0 which caused
INSERT INTOstatements to reject invalid dynamic columns and their value without raising an error or skipping the whole record. An exampleCREATE TABLE t(a INT) WITH (column_policy='dynamic'); INSERT INTO t(a, _b) VALUES (1, 2); INSERT OK, 1 row affected (0.258 sec) INSERT INTO t(a, _b) (SELECT 2, 2); INSERT OK, 1 row affected (0.077 sec) SELECT * FROM t; +---+ | a | +---+ | 1 | | 2 | +---+ SELECT 2 rows in set (0.594 sec)
In 5.2.0 neither variant inserted a record. The first
INSERTraised an error, and the second resulted in row count 0.Fixed an issue which caused
INSERT INTOstatements to skip generated column validation for sub-columns if provided value isNULL.