Version 5.2.6¶
Released on 2023-04-04.
Note
If you are upgrading a cluster, you must be running CrateDB 4.0.2 or higher before you upgrade to 5.2.6.
We recommend that you upgrade to the latest 5.1 release before moving to 5.2.6.
A rolling upgrade from 5.1.x to 5.2.6 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 that prevented PostgreSQL wire protocol clients from being able to
describethe query of a cursor created usingDECLARE. An example of a client that uses the functionality ispsycopg3. A snippet like the following failed:import psycopg conn = psycopg.connect("host=localhost port=5432 user=crate") cur = conn.cursor(name="foo") cur.execute("select 1") for row in cur.fetchall(): print(row)
Fixed an issue in the PostgreSQL wire protocol implementation that could prevent protocol level fetch from working correctly with some clients. An example client is pg-cursor.
Fixed a performance regression for queries that used a scalar sub-query in the
WHEREwhich itself also filtered on columns in aWHEREwithout selecting those columns. An example:SELECT name FROM users WHERE id IN (SELECT user_id FROM hits WHERE ts > '2023-01-01')
Fixed an issue that a wrong HTTP response was sent, when trying to
POSTto an invalid URL, causing the HTTP client to stall.Fixed response for HTTP
GETrequest to not expose internal paths when the requested URL doesn’t exist.Fixed default behaviour for CURSOR’s SCROLL. When neither
SCROLLnorNO SCROLLis provided in the statement,NO SCROLLis now assumed.Fixed a race condition that could lead to a
ShardNotFoundExceptionwhen executingUPDATEstatements.Fixed an issue that caused a subset of a
WHEREclause to be lost from aJOINstatement. The first trigger condition was using a column by itself as a boolean expression. For example fromWHERE NOT b AND cthe columncrepresenting a boolean expressionc = TRUEoverrodeNOT b. The second trigger condition was MATCH predicate which also overrode precedingWHEREconditions.Fixed an issue that caused a
ColumnUnknownExceptionwhen creating a table with agenerated columninvolving a subscript expression with a root column name containing upper cases. An example:CREATE TABLE t ("OBJ" OBJECT AS (intarray int[]), firstElement AS "OBJ"['intarray'][1]); ColumnUnknownException[Column obj['intarray'] unknown]
Fixed a
NullPointerExceptionwhich occurs when using NULL as a setting value.Fixed a resource leak that could happen when inserting data which causes constraints violation or parsing errors.