aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/panels/sql.py
diff options
context:
space:
mode:
authorRob Hudson2009-09-08 15:26:04 -0700
committerRob Hudson2009-09-08 15:26:04 -0700
commit20ee57b927751fd0d492c428b82f64bebdb0e860 (patch)
tree3868c75256ad7b15f25aa0fb571ff11f9fc3de4a /debug_toolbar/panels/sql.py
parent81da67bbfcd18ac9802f652155c331229d7967f2 (diff)
downloaddjango-debug-toolbar-20ee57b927751fd0d492c428b82f64bebdb0e860.tar.bz2
Fixed an issue where the panel navigation might have a different number of
queries than the panel pane if SQL queries happened in between calls. This caches the queries off in an array to be used in both places. If the possibility of queries happening elsewhere occurs, the SQL panel should probably be moved lower in the execution stack.
Diffstat (limited to 'debug_toolbar/panels/sql.py')
-rw-r--r--debug_toolbar/panels/sql.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py
index a53a8d4..244905b 100644
--- a/debug_toolbar/panels/sql.py
+++ b/debug_toolbar/panels/sql.py
@@ -91,13 +91,15 @@ class SQLDebugPanel(DebugPanel):
def __init__(self):
self._offset = len(connection.queries)
self._sql_time = 0
+ self._queries = []
def nav_title(self):
return 'SQL'
def nav_subtitle(self):
- self._sql_time = sum([q['duration'] for q in connection.queries[self._offset:]])
- num_queries = len(connection.queries) - self._offset
+ self._queries = connection.queries[self._offset:]
+ self._sql_time = sum([q['duration'] for q in self._queries])
+ num_queries = len(self._queries)
return "%d %s in %.2fms" % (
num_queries,
(num_queries == 1) and 'query' or 'queries',
@@ -111,9 +113,8 @@ class SQLDebugPanel(DebugPanel):
return ''
def content(self):
- sql_queries = connection.queries[self._offset:]
width_ratio_tally = 0
- for query in sql_queries:
+ for query in self._queries:
query['sql'] = reformat_sql(query['sql'])
try:
query['width_ratio'] = (query['duration'] / self._sql_time) * 100
@@ -123,7 +124,7 @@ class SQLDebugPanel(DebugPanel):
width_ratio_tally += query['width_ratio']
context = {
- 'queries': sql_queries,
+ 'queries': self._queries,
'sql_time': self._sql_time,
'is_mysql': settings.DATABASE_ENGINE == 'mysql',
}