.. _version_4.0.9:

=============
Version 4.0.9
=============

Released on 2019/11/25.

.. NOTE::

    Please consult the :ref:`v4.0.0-upgrade-notes` before upgrading from
    CrateDB 3.x or earlier.  Before upgrading to 4.0.9 you should be running a
    CrateDB cluster that is at least on 3.0.7.

    We recommend that you upgrade to the latest 3.3 release before moving to
    4.0.9.

    If you want to perform a `rolling upgrade`_, your current CrateDB version
    number must be at least :ref:`version_4.0.2`. Any upgrade from a version
    prior to this will require a `full restart upgrade`_.

    When restarting, CrateDB will migrate indexes to a newer format. Depending
    on the amount of data, this may delay node start-up time.

.. WARNING::

    Tables that were created prior CrateDB 3.x will not function with 4.x and
    must be recreated before moving to 4.x.x.

    You can recreate tables using ``COPY TO`` and ``COPY FROM`` or by
    `inserting the data into a new table`_.

    Before upgrading, you should `back up your data`_.

.. _rolling upgrade: https://crate.io/docs/crate/howtos/en/latest/admin/rolling-upgrade.html
.. _full restart upgrade: https://crate.io/docs/crate/howtos/en/latest/admin/full-restart-upgrade.html
.. _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_4.0.0` release notes for a full list of changes in the
4.0 series.

Fixes
=====

- Fixed an incompatibility in the ``PostgreSQL`` wire protocol which could
  cause queries being sent using the ``asyncpg`` python client to get stuck.
  (Using version 0.20 of the client).

- Fixed two display issues in the Admin UI:

  - ``0`` values in the partitions view for tables could be incorrectly
    displayed as ``NULL``.

  - The node health in the cluster view was not displayed when the name of a
    node was too long.

- Fixed a regression introduced in 4.0.8 which could cause queries with an
  explicit limit larger than 1000 to fail with a ``numHits must be > 0`` error.

- Fixed an resiliency issue on snapshot creation while dynamic columns are
  created concurrently which may result in incompatibility problems on restore.

- Fixed case sensitivity of unquoted column names inside ``ON CONFLICT``
  clauses.
