aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/panels/sql.py
diff options
context:
space:
mode:
authorAlex Gaynor2008-09-27 14:18:19 -0400
committerAlex Gaynor2008-09-27 14:18:19 -0400
commit225965ceb490d55207733aa297fd0d8a9c1cbfec (patch)
treef92829b9ac85e860aabf14235441f6cb793e0595 /debug_toolbar/panels/sql.py
parent9a7fe9e528c72d39efb1954275e1e588b2bb541c (diff)
parent8d32dc2eb8a5284aa668d5b8f4b903cdf67a3e30 (diff)
downloaddjango-debug-toolbar-225965ceb490d55207733aa297fd0d8a9c1cbfec.tar.bz2
fixed merge conflicts
Diffstat (limited to 'debug_toolbar/panels/sql.py')
-rw-r--r--debug_toolbar/panels/sql.py26
1 files changed, 17 insertions, 9 deletions
diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py
index fd08395..22d65a7 100644
--- a/debug_toolbar/panels/sql.py
+++ b/debug_toolbar/panels/sql.py
@@ -1,9 +1,11 @@
import time
from debug_toolbar.panels import DebugPanel
+from django.conf import settings
from django.db import connection
from django.db.backends import util
from django.template.loader import render_to_string
from django.utils import simplejson
+from django.utils.hashcompat import sha_constructor
class DatabaseStatTracker(util.CursorDebugWrapper):
"""
@@ -16,32 +18,38 @@ class DatabaseStatTracker(util.CursorDebugWrapper):
return self.cursor.execute(sql, params)
finally:
stop = time.time()
+ _params = None
+ try:
+ _params = simplejson.dumps(params)
+ except TypeError:
+ pass # object not JSON serializable
# We keep `sql` to maintain backwards compatibility
self.db.queries.append({
'sql': self.db.ops.last_executed_query(self.cursor, sql, params),
'time': stop - start,
'raw_sql': sql,
- 'params': simplejson.dumps(params),
+ 'params': _params,
+ 'hash': sha_constructor(settings.SECRET_KEY + sql + _params).hexdigest(),
})
util.CursorDebugWrapper = DatabaseStatTracker
class SQLDebugPanel(DebugPanel):
"""
- Panel that displays information about the SQL queries run while processing the request.
+ Panel that displays information about the SQL queries run while processing
+ the request.
"""
name = 'SQL'
has_content = True
-
- def __init__(self, request):
- super(SQLDebugPanel, self).__init__(request)
+
+ def __init__(self):
self._offset = len(connection.queries)
self._sql_time = 0
def title(self):
self._sql_time = sum(map(lambda q: float(q['time']) * 1000, connection.queries))
- return '%d SQL Quer%s (%.2fms)' % (
- len(connection.queries),
- len(connection.queries) == 1 and 'y' or 'ies',
+ return '%d SQL %s (%.2fms)' % (
+ len(connection.queries),
+ (len(connection.queries) == 1) and 'query' or 'queries',
self._sql_time
)
@@ -72,7 +80,7 @@ def reformat_sql(sql):
from pygments import highlight
from pygments.lexers import SqlLexer
from pygments.formatters import HtmlFormatter
- sql = highlight(sql, SqlLexer(), HtmlFormatter(noclasses=True))
+ sql = highlight(sql, SqlLexer(), HtmlFormatter())
except ImportError:
pass
return sql