.. _version_4.5.2:

=============
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`_.

.. _back up your data: https://crate.io/docs/crate/reference/en/latest/admin/snapshots.html



.. rubric:: Table of Contents

.. contents::
   :local:

See the :ref:`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.
