Version 5.5.2

Released on 2023-12-21.

Note

If you are upgrading a cluster, you must be running CrateDB 4.0.2 or higher before you upgrade to 5.5.2.

We recommend that you upgrade to the latest 5.4 release before moving to 5.5.2.

A rolling upgrade from 5.4.x to 5.5.2 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.5.0 release notes for a full list of changes in the 5.5 series.

Security Fixes

  • The HTTP transport will not trust any X-Real-IP header by default anymore. This prevents a client from spoofing its IP address by setting these headers and thus bypassing IP based authentication with is enabled by default for the crate superuser. To keep allowing the X-Real-IP header to be trusted, you have to explicitly enable it via the auth.trust.http_support_x_real_ip node setting.

Packaging Changes

  • The RPM and DEB packages changed slightly to unify the build process. The most important change is that the crate service no longer automatically starts after package installation, to allow changing the configuration first.

    Other than that, the structure is now:

    • bin, jdk and lib are installed into /usr/share/crate. In the RPM package this used to be in /opt/crate.

    • The home directory of the crate user is /usr/share/crate

    • changes, notice, license are in /usr/share/doc/crate

    • service file is in /usr/lib/systemd/system

    • The crate.yml configuration file is in /etc/crate/

      • The default environment configuration file at RPM packages changed to /etc/default/crate to be consistent with the DEB package. The old location at /etc/sysconfig/crate is not supported anymore.

    If you haven’t made any significant configuration changes the new packages should keep working out of the box.

    Important for Debian and Ubuntu users: There is now a new repository.

    You’ll have to update the repository configuration to install CrateDB newer than 5.5.1.

    This new repository keeps old CrateDB versions in the Package index and also contains packages for ARM64.

Fixes

  • Fixed an issue that caused queries with a NULLIF or OR expression in the WHERE clause to fail evaluating NULL correctly.

  • Fixed a race condition that could lead to a memory leak when relocating a shard from one node to another and concurrently running queries.

  • Fixed a performance regression introduced in 5.5.0 for queries with

    GROUP BY on a single column.

  • Fixed an issue that allowed adding a column under the same name as an existing index definition.

  • Fixed an issue with wrong escaping of backslash in C-style escaped strings. SELECT E'\%' used to return \% instead of %.

  • Fixed an issue which led to SQLParseException when using an escaped quote \' at the end of C-style string.

  • Fixed an issue that caused ALTER TABLE DROP COLUMN to falsely report success on dropping system columns despite any follow up queries on the dropped columns work as expected. Now an exception is thrown.

  • Fixed the SQL parser to be lenient with the position of constraint definitions at the column definition of CREATE TABLE and ALTER TABLE statements. E.g. CREATE TABLE t (a INT NULL DEFAULT 1) is now accepted while before the NULL constraint had to be placed after the DEFAULT constraint.

  • Fixed an issue introduced with CrateDB 5.5.0 that prevented importing JSON file via COPY FROM if the file contained JSON entries with same keys but in different order.