.. _version_3.2.1:

=============
Version 3.2.1
=============

Released on 2019/01/14.

.. NOTE::

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

    We recommend that you upgrade to the latest 3.1 release before moving to
    3.2.1.

    If you want to perform a `rolling upgrade`_, your current CrateDB version
    number must be at least :ref:`version_3.2.0`. 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.

    Please consult the :ref:`version_3.0.0_upgrade_notes` before upgrading.

.. WARNING::

    Tables that were created prior to upgrading to CrateDB 2.x will not
    function with 3.2 and must be recreated before moving to 3.2.x.

    You can recreate tables using ``COPY TO`` and ``COPY FROM`` while running a
    2.x release into a new table, 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:


Changelog
=========


Fixes
-----

- Fixed a ``NullPointerException`` that could occur using ``array_difference``.

- Fixed a race condition that could lead to stuck queries, for example if a
  node was stopped or crashed.

- Fixed an issue that prevented queries on :ref:`table functions
  <table-functions>` from working if the cluster contains an expired license.

- Casts to nested arrays are now properly supported.

- The type of parameter placeholders in sub-queries in the FROM clause of a
  query can now be resolved to support PostgreSQL clients relying on the
  ``ParameterDescription`` message. This enables queries like ``select * from
  (select $1::int + $2) t``

- Fixed error readability of certain ``ALTER TABLE`` operations.

- Fixed SQL parser to not allow repeated ``PARTITION BY`` or ``CLUSTERED BY |
  INTO`` tokens on ``CREATE TABLE`` statements.
