mirror of
https://github.com/django/django.git
synced 2025-08-30 23:37:50 +00:00
Fixed #33815 -- Fixed last_executed_query() on Oracle when parameter names overlap.
This commit is contained in:
parent
d12d7c4c42
commit
249ecc437f
2 changed files with 22 additions and 4 deletions
|
@ -101,6 +101,7 @@ class LastExecutedQueryTest(TestCase):
|
|||
pk=1,
|
||||
reporter__pk=9,
|
||||
).exclude(reporter__pk__in=[2, 1]),
|
||||
Article.objects.filter(pk__in=list(range(20, 31))),
|
||||
):
|
||||
sql, params = qs.query.sql_with_params()
|
||||
with qs.query.get_compiler(DEFAULT_DB_ALIAS).execute_sql(CURSOR) as cursor:
|
||||
|
@ -125,6 +126,22 @@ class LastExecutedQueryTest(TestCase):
|
|||
sql % params,
|
||||
)
|
||||
|
||||
@skipUnlessDBFeature("supports_paramstyle_pyformat")
|
||||
def test_last_executed_query_dict_overlap_keys(self):
|
||||
square_opts = Square._meta
|
||||
sql = "INSERT INTO %s (%s, %s) VALUES (%%(root)s, %%(root2)s)" % (
|
||||
connection.introspection.identifier_converter(square_opts.db_table),
|
||||
connection.ops.quote_name(square_opts.get_field("root").column),
|
||||
connection.ops.quote_name(square_opts.get_field("square").column),
|
||||
)
|
||||
with connection.cursor() as cursor:
|
||||
params = {"root": 2, "root2": 4}
|
||||
cursor.execute(sql, params)
|
||||
self.assertEqual(
|
||||
cursor.db.ops.last_executed_query(cursor, sql, params),
|
||||
sql % params,
|
||||
)
|
||||
|
||||
|
||||
class ParameterHandlingTest(TestCase):
|
||||
def test_bad_parameter_count(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue