.. _version_3.0.3:

=============
Version 3.0.3
=============

Released on 2018/06/29.

.. NOTE::

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

   We recommend that you upgrade to the latest 2.3 release before moving to
   3.0.3.

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

.. WARNING::

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

.. _rolling upgrade: http://crate.io/docs/crate/guide/best_practices/rolling_upgrade.html
.. _full restart upgrade: http://crate.io/docs/crate/guide/best_practices/full_restart_upgrade.html
.. _back up your data: https://crate.io/a/backing-up-and-restoring-crate/
.. _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
=========

Changes
-------

- Added settings ``s3.client.default.access_key`` and
  ``s3.client.default.secret_key`` which can be used to set default credentials
  for s3 repositories, if they are not passed as parameters to the
  ``CREATE REPOSITORY`` SQL statement.

- Implemented a thread-utilization down-scaling logic which dynamically adapts
  the number of threads used for ``SELECT`` queries to avoid running into
  ``RejectedExcecution`` errors if there are many shards per node involved in
  the queries.

- Improved execution of ``DELETE`` and ``UPDATE`` queries, which should
  generally result in an increased performance for queries which only match a
  subset of the rows and avoid ``CircuitBreakingException`` errors. But it
  might result in a slight performance decrease if queries match all or almost
  all records.

Fixes
-----

- Fixed an issue where the Admin UI was not loaded when it was served from
  another location than ``/`` resulting in a blank browser canvas.

- Made table setting ``blocks.read_only_allow_delete`` configurable for
  partitioned tables.

- Improved performance for expressions involving literal type conversions,
  e.g. ``select count(*) from users group by name having max(bytes) = 4``.

- Fixed an issue which could result in lost entries at the ``sys.jobs_log`` and
  ``sys.operations_log`` tables when the related settings are changed while
  entries are written.

- Fixed a dependecy issue with the bundled ``crash`` that caused the app to be
  unable to connect to the server.

- Fixed an issue that could prevent postgres clients from receiving an error
  and therefore getting stuck.

- Fixed an issue that would cause a ``CAST`` from ``TIMESTAMP`` to ``LONG`` to
  be ignored.

- Handle ``STRING_ARRAY`` as argument type for user-defined functions correctly
  to prevent an ``ArrayStoreException``.
