Version 5.2.7¶
Released on 2023-04-28.
Note
If you are upgrading a cluster, you must be running CrateDB 4.0.2 or higher before you upgrade to 5.2.7.
We recommend that you upgrade to the latest 5.1 release before moving to 5.2.7.
A rolling upgrade from 5.1.x to 5.2.7 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.2.0 release notes for a full list of changes in the 5.2 series.
Fixes¶
Fixed an issue introduced in 5.2.0 which led
INNER JOINqueries to produce 0 or wrong results when filtering with a constant value is used in the join condition, e.g.:SELECT * FROM t1 INNER JOIN t2 ON t1.a = 10 AND t1.x = t2.y
Fixed a performance regression introduced in 5.2.3 which led to filters on object columns resulting in a table scan if used with views or virtual tables. See #14015 for details.
Fixed an issue that caused
geo_shape_array IS NULLexpressions to fail with anIllegalStateException.Fixed an issue that caused the actual cast/type conversion error to be hidden when it failed for a sub-column of an object column, when using a client statement with parameters i.e (python).:
CREATE TABLE a (b OBJECT(DYNAMIC) AS (c REAL)); # create a connection and a cursor and then: cursor.execute("INSERT INTO a VALUES (?)", [({"c": True},)])
Fixed a regression that caused the
-hoption inbin/crateto fail with anError parsing arguments!error.Added a null_or_empty scalar function that can be used as a faster alternative to IS NULL if it’s acceptable to match on empty objects. This makes it possible to mitigate a performance regression introduced in 5.0.3 and 5.1.1
Fixed an issue that led to
NullPointerExceptionwhen trying to query anOBJECTfield with no values, using theNOToperator, e.g.:CREATE TABLE test (obj OBJECT(DYNAMIC)); -- no data SELECT myobj FROM test WHERE (obj::TEXT) NOT LIKE '%value%';
Fixed an issue in the PostgreSQL wire protocol implementation that could lead to
ClientInterruptederrors with some clients. An example client is pg-cursor.Fixed an issue that allowed creating columns with names conflicting with subscript pattern, such as
"a[1]", a subscript expression enclosed in double quotes.Fixed an issue that caused
SQLParseExceptionwhen quoted subscript expressions contained quotes. An example would be querying an array with the name containing quotes likeSELECT "arr""[1]";.Fixed an issue that caused
ALTER TABLE ADD COLUMNstatement to assignPRIMARY KEYto wrong columns, when adding multiple primary key columns, having none-primary columns in-between.Fixed an issue that caused
ALTER TABLE ADD COLUMNstatement to assign a wrong type toARRAY(GEO_SHAPE)column and create aGEO_SHAPEcolumn instead.Fixed an issue that caused
ALTER TABLE ADD COLUMNstatement to assign a wrong type toARRAY(TEXT)column and create aTEXTcolumn instead if column has aFULLTEXTindex.Fixed an issue that prevented assigning default expression to
ARRAYcolumns.