==========================Django 2.2.1 release notes==========================*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 ofdatabase 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 thetemplate 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 anexpression with params (:ticket:`30332`).* Fixed a regression in Django 2.2 that caused a single instance fast-deleteto not set the primary key to ``None`` (:ticket:`30330`).* Prevented :djadmin:`makemigrations` from generating infinite migrations forcheck constraints and partial indexes when ``condition`` containsa :class:`~python:range` object (:ticket:`30350`).* Reverted an optimization in Django 2.2 (:ticket:`29725`) that caused theinconsistent behavior of ``count()`` and ``exists()`` on a reversemany-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`` isa queryset ordered or aggregated over a nested ``JSONField`` key transform(:ticket:`30335`).* Fixed a regression in Django 2.2 where ``IntegerField`` validation ofdatabase limits crashes if ``limit_value`` attribute in a custom validator iscallable (:ticket:`30328`).* Fixed a regression in Django 2.2 where:class:`~django.contrib.postgres.search.SearchVector` generates SQL that isnot indexable (:ticket:`30385`).* Fixed a regression in Django 2.2 that caused an exception to be raised whena custom error handler could not be imported (:ticket:`30318`).* Relaxed the system check added in Django 2.2 for the admin app's dependenciesto reallow use of:class:`~django.contrib.sessions.middleware.SessionMiddleware` subclasses,rather than requiring :mod:`django.contrib.sessions` to be in:setting:`INSTALLED_APPS` (:ticket:`30312`).* Increased the default timeout when using ``Watchman`` to 5 seconds to preventfalling back to ``StatReloader`` on larger projects and made it customizablevia the :envvar:`DJANGO_WATCHMAN_TIMEOUT` environment variable(:ticket:`30361`).* Fixed a regression in Django 2.2 that caused a crash when migratingpermissions for proxy models if the target permissions already existed. Forexample, when a permission had been created manually or a model had beenmigrated from concrete to proxy (:ticket:`30351`).* Fixed a regression in Django 2.2 that caused a crash of :djadmin:`runserver`when URLConf modules raised exceptions (:ticket:`30323`).* Fixed a regression in Django 2.2 where changes were not reliably detected byauto-reloader when using ``StatReloader`` (:ticket:`30323`).* Fixed a migration crash on Oracle and PostgreSQL when adding a checkconstraint with a ``contains``, ``startswith``, or ``endswith`` lookup (ortheir case-insensitive variant) (:ticket:`30408`).* Fixed a migration crash on Oracle and SQLite when adding a check constraintwith ``condition`` contains ``|`` (``OR``) operator (:ticket:`30412`).