Skip to content

Commit 1f05b54

Browse files
authored
Skip serialization on explain query (#821)
1 parent d29cba3 commit 1f05b54

File tree

2 files changed

+1
-14
lines changed

2 files changed

+1
-14
lines changed

project/tests/test_execute_sql.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ def test_explain_simple(self):
133133
sql.connection.ops.explain_query_prefix.return_value = prefix
134134
execute_sql(sql)
135135
self.assertNotIn(prefix, params)
136-
params = tuple(force_str(param) for param in params)
137136
mock_cursor.execute.assert_called_once_with(f"{prefix} {_simple_mock_query_sql}", params)
138137

139138
def test_explain_unicode(self):
@@ -144,7 +143,6 @@ def test_explain_unicode(self):
144143
sql.connection.ops.explain_query_prefix.return_value = prefix
145144
execute_sql(sql)
146145
self.assertNotIn(prefix, params)
147-
params = tuple(force_str(param) for param in params)
148146
mock_cursor.execute.assert_called_once_with(f"{prefix} {_simple_mock_query_sql}", params)
149147

150148
def test_explain_non_unicode(self):

silk/sql.py

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,7 @@ def _explain_query(connection, q, params):
5959
else:
6060
prefixed_query = f"{prefix} {q}"
6161
with connection.cursor() as cur:
62-
try:
63-
params_str = tuple(force_str(param) for param in params)
64-
except UnicodeDecodeError:
65-
# Sometimes `force_str` can still raise a UnicodeDecodeError
66-
# Reference: https://github.com/jazzband/django-silk/issues?q=encoding
67-
Logger.error(
68-
"UnicodeDecodeError while trying to explain query: %s. "
69-
"This could be caused by a non-UTF-8 encoded parameter.",
70-
q
71-
)
72-
return None
73-
cur.execute(prefixed_query, params_str)
62+
cur.execute(prefixed_query, params)
7463
result = _unpack_explanation(cur.fetchall())
7564
return '\n'.join(result)
7665
return None

0 commit comments

Comments
 (0)