.. _version_5.10.12:

===============
Version 5.10.12
===============

Released on 2025-09-23.

.. NOTE::

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

    We recommend that you upgrade to the latest 5.9 release before moving to
    5.10.12.

    A rolling upgrade from 5.9.x to 5.10.12 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`_.

.. _back up your data: https://crate.io/docs/crate/reference/en/latest/admin/snapshots.html
.. _inserting the data into a new table: https://crate.io/docs/crate/reference/en/latest/admin/system-information.html#tables-need-to-be-recreated

.. rubric:: Table of contents

.. contents::
   :local:


See the :ref:`version_5.10.0` release notes for a full list of changes in the
5.10 series.

Fixes
=====

- Fixed a regression introduced in 5.10.11 that caused generated columns or
  `DEFAULT` clauses to not be evaluated on an ``UPDATE`` or ``INSERT INTO (..)
  ON CONFLICT`` statement, leading to documents containing `null`
  values.

- Fixed a race condition in the PostgreSQL wire protocol implementation that
  could lead to it swallowing outbound messages. This led to undefined client
  behavior and a memory leak on the server The JDBC client for example would
  sometimes fail with::

    Received resultset tuples, but no field structure for them

- Fixed an issue that led to replication errors due to the ``seqNo`` and
  ``primaryTerm`` information missing when replicating new records written as
  part of ``INSERT INTO`` or ``COPY FROM`` statements from the primary to
  replica shards when running in a mixed cluster with 5.10.11 and an earlier
  version.

  If you haven't updated to 5.10.11 yet, it is recommended to skip 5.10.11 and
  move to 5.10.12 directly.

- Fixed an issue that could lead to a ``NullPointerException`` when running
  ``DELETE`` queries.

- Fixed an issue that could cause ``SELECT`` statements to get stuck if executed
  via a PostgreSQL client that set the ``maxRow`` option as part of an
  ``EXECUTE`` message and it matched the number of result rows exactly.

- Fixed an issue that prevented users to change the value of the
  :ref:`indices.recovery.max_concurrent_file_chunks` setting.

- Fixed an issue that could lead to an ``OutOfMemoryError`` when running a
  query with aggregations under memory pressure in a multi-node cluster.

- Improved error message when attempting to use a column in ``PARTITION BY``
  clause of a :ref:`window function <window-functions>`, which is not also
  included in the ``GROUP BY``, e.g.::

    SELECT sum(x) OVER(PARTITION BY x, y)
    FROM unnest([1], [6]) AS t (x, y)
    GROUP BY x

- Fixed an issue that caused a ``NullPointerException`` when inserting ``NULL``
  to an object column with a non-deterministic sub-column.

- Fixed an issue that caused an ``IndexOutOfBoundsException`` when updating
  a ``generated column`` that references a ``PRIMARY KEY`` column.

- Fixed the usage of the ``FORCE_MERGE`` thread pool to support parallel shard
  operations per node when increasing the pools size. As the default size is
  ``1``, this change does not affect existing installations.
