Skip to content

Commit b774420

Browse files
committed
SQL logging logic was moved to separate method to include query parameters also
1 parent d653839 commit b774420

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

jal/db/db.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,6 @@ def retranslate(cls):
205205
# return value - QSqlQuery object (to allow iteration through result)
206206
@classmethod
207207
def _exec(cls, sql_text, params=None, forward_only=True, commit=False):
208-
JalDB._sql_call_count = JalDB._sql_call_count + 1
209-
if JalDB._trace_sql_requests:
210-
logging.debug(f"Trace SQL {JalDB._sql_call_count}: '{sql_text}'")
211208
if params is None:
212209
params = []
213210
db = cls.connection()
@@ -221,6 +218,8 @@ def _exec(cls, sql_text, params=None, forward_only=True, commit=False):
221218
for param in params:
222219
query.bindValue(param[0], param[1])
223220
assert query.boundValue(param[0]) == param[1], f"SQL: failed to assign parameter {param} in '{sql_text}'"
221+
if JalDB._trace_sql_requests:
222+
cls._log_query(query)
224223
if not query.exec():
225224
error = JalSqlError(query.lastError().text())
226225
if error.custom():
@@ -232,6 +231,17 @@ def _exec(cls, sql_text, params=None, forward_only=True, commit=False):
232231
db.commit()
233232
return query
234233

234+
# -------------------------------------------------------------------------------------------------------------------
235+
# Logs given query as SQL statement with parameters
236+
@classmethod
237+
def _log_query(cls, query):
238+
JalDB._sql_call_count = JalDB._sql_call_count + 1
239+
query_text = query.lastQuery()
240+
for k, v in zip(query.boundValueNames(), query.boundValues()):
241+
v = f"'{v}'" if type(v) == str else v
242+
query_text = query_text.replace(k, str(v))
243+
logging.debug(f"Trace SQL {JalDB._sql_call_count}: {query_text}")
244+
235245
# ------------------------------------------------------------------------------------------------------------------
236246
# Reads the result of 'sql_test' query from the database (with given params - the same as for _exec() method)
237247
# returns result of the query or None if result is empty

0 commit comments

Comments
 (0)