==========================
Django 2.2.1 release notes
==========================

*Expected May 1, 2019*

Django 2.2.1 fixes several bugs in 2.2.

Bugfixes
========

* Fixed a regression in Django 2.1 that caused the incorrect quoting of
  database user password when using :djadmin:`dbshell` on Oracle
  (:ticket:`30307`).

* Added compatibility for ``psycopg2`` 2.8 (:ticket:`30331`).

* Fixed a regression in Django 2.2 that caused a crash when loading the
  template for the technical 500 debug page (:ticket:`30324`).

* Fixed crash of ``ordering`` argument in
  :class:`~django.contrib.postgres.aggregates.ArrayAgg` and
  :class:`~django.contrib.postgres.aggregates.StringAgg` when it contains an
  expression with params (:ticket:`30332`).

* Fixed a regression in Django 2.2 that caused a single instance fast-delete
  to not set the primary key to ``None`` (:ticket:`30330`).

* Prevented :djadmin:`makemigrations` from generating infinite migrations for
  check constraints and partial indexes when ``condition`` contains
  a :class:`~python:range` object (:ticket:`30350`).

* Reverted an optimization in Django 2.2 (:ticket:`29725`) that caused the
  inconsistent behavior of ``count()`` and ``exists()`` on a reverse
  many-to-many relationship with a custom manager (:ticket:`30325`).

* Fixed a regression in Django 2.2 where
  :class:`~django.core.paginator.Paginator` crashes if ``object_list`` is
  a queryset ordered or aggregated over a nested ``JSONField`` key transform
  (:ticket:`30335`).

* Fixed a regression in Django 2.2 where ``IntegerField`` validation of
  database limits crashes if ``limit_value`` attribute in a custom validator is
  callable (:ticket:`30328`).

* Fixed a regression in Django 2.2 where
  :class:`~django.contrib.postgres.search.SearchVector` generates SQL that is
  not indexable (:ticket:`30385`).
