Version 4.5.2

Released on 2021-06-15.

Note

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

We recommend that you upgrade to the latest 4.4 release before moving to 4.5.2.

A rolling upgrade from 4.4.0+ to 4.5.2 is supported.

Before upgrading, you should back up your data.

Table of Contents

See the Version 4.5.0 release notes for a full list of changes in the 4.5 series.

Fixes

  • Fixed an issue that resulted in an unknown column error if trying to access a fulltext index from an aliased table. For example the following statement failed:

    SELECT * FROM users u WHERE MATCH (u.name_ft, 'Arthur');
    
  • Fixed an issue that prevented DEFAULT clauses from being evaluated per record in INSERT statements with multiple source values. This resulted in the same values being inserted when using nondeterministic functions like gen_random_text_uuid as default expression.

  • Fixed an issue that prevented aggregations or grouping operations on virtual tables to run parallel on shard level, even if the inner query would support it.

  • Fixed an issue that prevented INSERT INTO statements where the source is a query that selects an object column which contains a different set of columns than the target object column.

  • Fixed an issue that could lead to errors when using DISTINCT or GROUP BY with duplicate columns.

  • Fixed an issue that could cause GROUP BY queries with a LIMIT clause and aliased columns to fail.

  • Fixed an issue that prevented LIKE operators from using the index if the left operand was a varchar column with length limit, and the right operand a literal.

  • Fixed an issue that resulted in more data being snapshot than expected if only concrete tables were snapshot by the CREATE SNAPSHOT ... TABLE [table, ...]. Instead of just the concrete tables, also the metadata of partitioned table, views, users, etc. were falsely stored.

  • Fixed an issue that resulted in a non-executable plan if a windows function result from a sub-select is used inside a query filter. An example:

    SELECT * FROM (
      SELECT ROW_NUMBER() OVER(PARTITION by col1) as row_num
      FROM (VALUES('x')) t1
    ) t2
    WHERE row_num = 2;
    
  • Fixed an issue that caused valid values for number_of_routing_shards in CREATE TABLE statements to be rejected because the validation always used a fixed value of 5 instead of the actual number of shards declared within the CREATE TABLE statement.

  • Fixed an issue that caused incorrect classification for DELETE and UPDATE queries with sub-select. Statement type for those queries was always SELECT.

  • Fixed an issue that threw an exception when ORDER BY clauses contain the output column position or the alias name of an aliased column.