aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/panels/sql/panel.py
diff options
context:
space:
mode:
authorAymeric Augustin2013-11-16 23:48:39 +0100
committerAymeric Augustin2013-11-16 23:52:27 +0100
commitdbf0866c29e89619fb868e39e1a52ccb656ac7fd (patch)
tree518e34f8aed8f147d32da6c696b113287d0e26c0 /debug_toolbar/panels/sql/panel.py
parent4c8f84620ed5385a515af33f943ee86c33712f8a (diff)
downloaddjango-debug-toolbar-dbf0866c29e89619fb868e39e1a52ccb656ac7fd.tar.bz2
Fix instrumentation of multiple database connections.
Python requires a function call to create a new scope; lambdas don't create closures! Fix #457.
Diffstat (limited to 'debug_toolbar/panels/sql/panel.py')
-rw-r--r--debug_toolbar/panels/sql/panel.py11
1 files changed, 3 insertions, 8 deletions
diff --git a/debug_toolbar/panels/sql/panel.py b/debug_toolbar/panels/sql/panel.py
index cb80901..84ac992 100644
--- a/debug_toolbar/panels/sql/panel.py
+++ b/debug_toolbar/panels/sql/panel.py
@@ -11,7 +11,7 @@ from debug_toolbar.panels import DebugPanel
from debug_toolbar.panels.sql.forms import SQLSelectForm
from debug_toolbar.utils import render_stacktrace
from debug_toolbar.panels.sql.utils import reformat_sql
-from debug_toolbar.panels.sql.tracking import CursorWrapper
+from debug_toolbar.panels.sql.tracking import wrap_cursor, unwrap_cursor
def get_isolation_level_display(engine, level):
@@ -128,16 +128,11 @@ class SQLDebugPanel(DebugPanel):
def enable_instrumentation(self):
# This is thread-safe because database connections are thread-local.
for connection in connections.all():
- if not hasattr(connection, '_djdt_cursor'):
- connection._djdt_cursor = connection.cursor
- connection.cursor = lambda: CursorWrapper(
- connection._djdt_cursor(), connection, self)
+ wrap_cursor(connection, self)
def disable_instrumentation(self):
for connection in connections.all():
- if hasattr(connection, '_djdt_cursor'):
- del connection._djdt_cursor
- del connection.cursor
+ unwrap_cursor(connection)
def process_response(self, request, response):
if self._queries: