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 bool alias 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 sync message between the statements. This is for example used by the psycopg client if using their experimental pipeline support.

  • Added the _name array type (OID 1003) to the pg_type table, allowing PostgreSQL clients to bind name[] parameters. The typarray of name changed from -1 to 1003.

Data Types

Scalar and Aggregation Functions

Performance and Resilience Improvements

  • Somil Jain improved query planning for LEFT, RIGHT, and FULL OUTER JOIN queries with nested join inputs. Null-rejecting WHERE predicates 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 an INNER JOIN.

  • Improved the optimizer_eliminate_cross_join rule 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_pattern and table_rename_replacement options now also apply to foreign tables and views. Previously, they were always restored under their original names.

Client interfaces

SQL Standard and PostgreSQL Compatibility