Version 5.1.0

Released on 2022-10-11.

Note

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

We recommend that you upgrade to the latest 5.0 release before moving to 5.1.0.

A rolling upgrade from 5.0.x to 5.1.0 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

Breaking Changes

  • Removed the node.store.allow_mmapfs setting. It was deprecated in 4.1.0 in favour of the node.store.allow_mmap setting.

  • Removed the indices.breaker.fielddata.limit setting and the *.overhead settings for all circuit breakers. They were deprecated in 4.3.0 and had no effect since then.

  • Removed the deprecated discovery.zen.publish_timeout, discovery.zen.commit_timeout, discovery.zen.no_master_block, discovery.zen.publish_diff.enable settings. They had no effect since 4.0.0 and have been deprecated in 4.4.0.

  • Removed the deprecated azure discovery functionality.

  • Fields referencing catalog in information_schema tables now return 'crate' (the only catalog in CrateDB) instead of the table schema.

Deprecations

  • Deprecated the upgrade_segments option of the OPTIMIZE TABLE statement. The option will now longer have any effect and will be removed in the future.

Changes

SQL Statements

  • Added initial support for cursors. See DECLARE, FETCH and CLOSE.

  • Added support for the EXISTS expression.

  • Added support for correlated scalar sub-queries within the select list of a query. See Scalar subquery.

  • Added support of GROUP BY on ARRAY typed columns.

SQL Standard And PostgreSQL Schema Compatibility

  • Added support for SET TIME ZONE to improve PostgreSQL Compatibility. Timezone will be ignored on the server side.

  • Added a application_name session setting that can be used to identify clients or applications which connect to a CrateDB node.

  • Added support for catalog in fully qualified table and column names, i.e.:

    SELECT * FROM crate.doc.t1;
    SELECT crate.doc.t1.a, crate.doc.t1.b FROM crate.doc.t1;
    
  • Made the commas between successive transaction_modes of the BEGIN and its SQL equivalent START TRANSACTION statement optional to support compatibility with clients and tools using an older (< 8.0) PostgreSQL syntax.

  • Changed the interval parameter of date_trunc to be case insensitive.

  • Added support for 'YES', 'ON' and '1' as alternative way to specify a TRUE boolean constant and 'NO', 'OFF' and '0' as alternative way to specify FALSE boolean constant improving compatibility with PostgreSQL.

  • Added support for casting TIMESTAMP and TIMESTAMP WITHOUT TIME ZONE values to the DATE data type and vice versa.

Performance Improvements

Administration and Operations

  • Updated to Admin UI 1.23.1, which improves scrolling behavior on wide result sets, and fixes formatting of TIMESTAMP WITHOUT TIME ZONE values in query console result table.

  • Added I/O throughput throttling of the ANALYZE statement as well as of the periodic statistic collection controlled by the stats.service.interval setting to lower the impact on the cluster load. This throttling can be controlled by a new setting stats.service.max_bytes_per_sec and is set 40MB/s by default.