Version 6.4.4 - Unreleased¶
Note
In development. 6.4.4 isn’t released yet. These are the release notes for the upcoming release.
Note
If you are upgrading a cluster, you must be running CrateDB 5.0.0 or higher before you upgrade to 6.4.4.
We recommend that you upgrade to the latest 6.3 release before moving to 6.4.4.
A rolling upgrade from >= 6.3.0 to 6.4.4 is supported. Before upgrading, you should back up your data.
Warning
Tables that were created before CrateDB 5.x will not function with 6.x and must be recreated before moving to 6.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 6.4.0 release notes for a full list of changes in the 6.4 series.
Fixes¶
Fixed an issue that caused a
UNION ALLinside a sub-select to return an additional column, or to fail withIndex x out of bounds for length y, if the outer query used anORDER BYon a column which was not selected and the sub-select contained further columns which were neither selected nor used by theORDER BY. e.g:SELECT c3 FROM (SELECT * FROM tbl UNION ALL SELECT * FROM tbl) x ORDER BY c1;
Fixed an issue that could return wrong results if a
WHEREclause contained a non-deterministic function, like random(), and was applied on a virtual relation which uses window functions, GROUP BY or table functions. Prevent the push down for such filters, as they can produce different results than if applied after those operations as intended.Fixed an issue that caused under-accounting of memory usage for queries using array_agg() aggregation function and aggregation queries using
DISTINCT.Fixed an issue that caused
~and~*regular expression operators to not match any rows when used in theWHEREclause of a query on column with INDEX OFF, e.g.:SELECT * FROM tbl WHERE no_index_col ~ '[a-z]'
Fixed an issue where a node could still shut down when the cluster health wait timed out during decommissioning despite
cluster.graceful_stop.force=false.Improved the error message for queries involving an uncorrelated subquery in join condition. e.g:
SELECT * FROM t JOIN t AS t2 ON t.c = (select 1)
Fixed an issue that could cause a correlated subquery inside a join, to ignore a filter on a bare boolean column of the outer relation. As a consequence, it could return rows that should have been filtered out. e.g.:
SELECT ( SELECT count(*) FROM t t1 CROSS JOIN t t2 WHERE t1.col = t2.col AND q.flag ) FROM t q;
In this example, the
q.flagfilter was dropped. array_agg() aggregation function.Fixed an issue that caused wrong results when array_agg() aggregation function was used with window functions with an explicit window frame, e.g.:
SELECT array_agg(x) OVER( ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tbl
Fixed an issue where ALL did not return
TRUEwhen comparingNULLvalues against an empty array.