1
0
mirror of https://github.com/django/django.git synced 2024-12-22 17:16:24 +00:00

Fixed #34486 -- Fixed DatabaseOperations.compose_sql() crash with no existing database connection on PostgreSQL.

Regression in 09ffc5c121.
This commit is contained in:
Scott Macpherson 2023-04-13 21:07:32 +10:00 committed by Mariusz Felisiak
parent 813015d67e
commit 53aee470d5
3 changed files with 16 additions and 1 deletions

View File

@ -18,7 +18,8 @@ try:
TSTZRANGE_OID = types["tstzrange"].oid
def mogrify(sql, params, connection):
return ClientCursor(connection.connection).mogrify(sql, params)
with connection.cursor() as cursor:
return ClientCursor(cursor.connection).mogrify(sql, params)
# Adapters.
class BaseTzLoader(TimestamptzLoader):

View File

@ -37,3 +37,7 @@ Bugfixes
* Fixed a regression in Django 4.2 where ``timesince`` and ``timeuntil``
template filters returned incorrect results for a datetime with a non-UTC
timezone when a time difference is less than 1 day (:ticket:`34483`).
* Fixed a regression in Django 4.2 that caused a crash of
:class:`~django.contrib.postgres.search.SearchHeadline` function with
``psycopg`` 3 (:ticket:`34486`).

View File

@ -420,3 +420,13 @@ class Tests(TestCase):
with self.assertRaisesMessage(NotSupportedError, msg):
connection.check_database_version_supported()
self.assertTrue(mocked_get_database_version.called)
def test_compose_sql_when_no_connection(self):
new_connection = connection.copy()
try:
self.assertEqual(
new_connection.ops.compose_sql("SELECT %s", ["test"]),
"SELECT 'test'",
)
finally:
new_connection.close()