Version 6.6.0 - Unreleased¶
Note
In development. 6.6.0 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.6.0.
We recommend that you upgrade to the latest 6.5 release before moving to 6.6.0.
A rolling upgrade from >= 6.5.0 to 6.6.0 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
Breaking Changes¶
Deprecations¶
None
Changes¶
SQL Statements¶
SQL Standard and PostgreSQL Compatibility¶
Added a
boolalias for the boolean type for improved PostgreSQL compatibility.Extended the PostgreSQL wire protocol support for pipelining DDL or DML statements followed by DQL statements without an intermediate
syncmessage between the statements. This is for example used by thepsycopgclient if using their experimental pipeline support.Added the
_namearray type (OID1003) to the pg_type table, allowing PostgreSQL clients to bindname[]parameters. Thetyparrayofnamechanged from-1to1003.
Data Types¶
Scalar and Aggregation Functions¶
Added a gen_random_uuid scalar.
Manish Singh added the ends_with(string, suffix) scalar function, which returns
trueifstringends withsuffix.
Performance and Resilience Improvements¶
Somil Jain improved query planning for
LEFT,RIGHT, andFULL OUTER JOINqueries with nested join inputs. Null-rejectingWHEREpredicates referencing relations within a nested input can now be pushed below the outer join. When the predicates reject all NULL-extended rows produced by the outer join, it can also be rewritten to anINNER JOIN.Improved the
optimizer_eliminate_cross_joinrule to eliminate more cross joins. Previously, some cross joins may have been left when the tables form groups that aren’t connected with join conditions, like in:SELECT * FROM t1, t2, t3, t4 WHERE t2.y = t4.id AND t3.z = t4.id
Previously, the resulting logical plan would contain 1 inner join and 2 cross joins. Now, the logical plan has 2 inner joins and 1 cross join.
Administration and Operations¶
Added support for renaming foreign tables and views when restoring them with RESTORE SNAPSHOT. The
schema_rename_pattern,schema_rename_replacement,table_rename_patternandtable_rename_replacementoptions now also apply to foreign tables and views. Previously, they were always restored under their original names.