.. _version_2.1.9:

=============
Version 2.1.9
=============

Released on 2017/11/08.

.. NOTE::

    If you are upgrading a cluster, you must be running CrateDB
    :ref:`version_1.1.3` or higher before you upgrade to 2.1.9.

    If you want to perform a `rolling upgrade`_, your current CrateDB version
    number must be :ref:`version_2.1.0`.  If you want to upgrade from a version
    prior to this, the upgrade will introduce all of the breaking changes listed
    for :ref:`version_2.1.0`, and will require a `full restart upgrade`_.

    Consult the upgrade notes for :ref:`Version 2.1.0
    <version_2.1.0_upgrade_notes>` when upgrading.

.. WARNING::

    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

.. rubric:: Table of contents

.. contents::
   :local:

Changelog
=========

Fixes
-----

- Fixed an issue that caused extra spaces to be added to the formatted console
  results in the Admin UI.

- Fixed issue that caused ``NULL`` values to be displayed as empty objects in
  the console view of the Admin UI.

- Fixed an issue that prevented the complete graceful shutdown of CrateDB node.

- Fixed an issue that caused a ``NullPointerException`` for queries that use
  the ``IN`` or ``ANY`` :ref:`operators <gloss-operator>` on timestamp
  fields.

- Improves resiliency of ``COPY FROM`` and ``INSERT FROM SUBQUERY`` statements
  when lot of new partitions will be created on demand.

- Fixed a ``NullPointerException`` which could occur when joining four tables
  with a join condition which referred to fields from the leftmost relation.

- Fixed a problem that caused ``WITHIN`` queries to return no or incorrect
  results.

- Fixed the problem that ``stats.breaker.*`` settings were not applied to the
  correct circuit breaker.

- Fixed an issue that caused an error ``Primary key value must not be NULL``
  to be thrown when trying to insert rows in a table that has a generated
  column which is used both in ``PARTITION BY`` and ``PRIMARY KEY``.

- The PostgreSQL wire protocol service can now be bound to IPv6 addresses as
  documented.

- Fixed an issue that resulted in aliases overriding column names when a
  :ref:`subselect <gloss-subquery>` is used and a column appears in the outer
  ``SELECT`` multiple times, without an alias and with alias or with multiple
  aliases. E.g.::

    SELECT a, a AS newcol FROM (SELECT a FROM t WHERE a > 1)
    SELECT a AS newcol1, a AS newcol2 FROM (SELECT a FROM t WHERE a > 1)
