From df2b9c09838eac20d013444136ff5da50ec9b306 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Thu, 14 Mar 2024 23:17:37 +0530 Subject: [PATCH] fix(recorder): handle frappe.db.sql(run=0) (#25450) --- frappe/recorder.py | 7 ++++++- frappe/tests/test_recorder.py | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/frappe/recorder.py b/frappe/recorder.py index 974f98b371..208f436eb4 100644 --- a/frappe/recorder.py +++ b/frappe/recorder.py @@ -59,12 +59,17 @@ def record_sql(*args, **kwargs): result = frappe.db._sql(*args, **kwargs) end_time = time.monotonic() + query = getattr(frappe.db, "last_query", None) + if not query or isinstance(result, str): + # run=0, doesn't actually run the query so last_query won't be present + return result + stack = [] if frappe.local._recorder.config.capture_stack: stack = list(get_current_stack_frames()) data = { - "query": str(frappe.db.last_query), + "query": str(query), "stack": stack, "explain_result": [], "time": start_time, diff --git a/frappe/tests/test_recorder.py b/frappe/tests/test_recorder.py index 57393b0238..3395ac759c 100644 --- a/frappe/tests/test_recorder.py +++ b/frappe/tests/test_recorder.py @@ -83,6 +83,7 @@ class TestRecorder(FrappeTestCase): def test_explain(self): frappe.db.sql("SELECT * FROM tabDocType") frappe.db.sql("COMMIT") + frappe.db.sql("select 1", run=0) self.stop_recording() requests = frappe.recorder.get()