From 918519f8540cca98fee96eec0f3e2f9afb2e3073 Mon Sep 17 00:00:00 2001
From: Vladislav Poluhin
Date: Tue, 23 Apr 2013 14:17:55 +0800
Subject: Form for SQL validation
---
debug_toolbar/panels/sql.py | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'debug_toolbar/panels/sql.py')
diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py
index a492888..e434014 100644
--- a/debug_toolbar/panels/sql.py
+++ b/debug_toolbar/panels/sql.py
@@ -1,10 +1,12 @@
import re
import uuid
+from copy import copy
from django.db.backends import BaseDatabaseWrapper
from django.utils.html import escape
from django.utils.translation import ugettext_lazy as _, ungettext_lazy as __
+from debug_toolbar.forms import SQLSelectForm
from debug_toolbar.utils.compat.db import connections
from debug_toolbar.middleware import DebugToolbarMiddleware
from debug_toolbar.panels import DebugPanel
@@ -170,6 +172,9 @@ class SQLDebugPanel(DebugPanel):
query['iso_level'] = get_isolation_level_display(query['engine'], query['iso_level'])
if 'trans_status' in query:
query['trans_status'] = get_transaction_status_display(query['engine'], query['trans_status'])
+
+ query['form'] = SQLSelectForm(auto_id=None, initial=copy(query))
+
if query['sql']:
query['sql'] = reformat_sql(query['sql'])
query['rgb_color'] = self._databases[alias]['rgb_color']
--
cgit v1.2.3
From 3d0467d9a4394c4b994a802e6e861ff2562dbb2b Mon Sep 17 00:00:00 2001
From: Vladislav Poluhin
Date: Wed, 24 Apr 2013 11:14:34 +0800
Subject: Got rid of the circular imports
---
debug_toolbar/panels/sql.py | 30 ++----------------------------
1 file changed, 2 insertions(+), 28 deletions(-)
(limited to 'debug_toolbar/panels/sql.py')
diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py
index e434014..74729c7 100644
--- a/debug_toolbar/panels/sql.py
+++ b/debug_toolbar/panels/sql.py
@@ -1,16 +1,15 @@
-import re
import uuid
from copy import copy
from django.db.backends import BaseDatabaseWrapper
-from django.utils.html import escape
from django.utils.translation import ugettext_lazy as _, ungettext_lazy as __
from debug_toolbar.forms import SQLSelectForm
from debug_toolbar.utils.compat.db import connections
from debug_toolbar.middleware import DebugToolbarMiddleware
from debug_toolbar.panels import DebugPanel
-from debug_toolbar.utils import sqlparse, render_stacktrace
+from debug_toolbar.utils import render_stacktrace
+from debug_toolbar.utils.sql import reformat_sql
from debug_toolbar.utils.tracking.db import CursorWrapper
from debug_toolbar.utils.tracking import replace_call
@@ -198,28 +197,3 @@ class SQLDebugPanel(DebugPanel):
'queries': [q for a, q in self._queries],
'sql_time': self._sql_time,
})
-
-
-class BoldKeywordFilter(sqlparse.filters.Filter):
- """sqlparse filter to bold SQL keywords"""
- def process(self, stack, stream):
- """Process the token stream"""
- for token_type, value in stream:
- is_keyword = token_type in sqlparse.tokens.Keyword
- if is_keyword:
- yield sqlparse.tokens.Text, ''
- yield token_type, escape(value)
- if is_keyword:
- yield sqlparse.tokens.Text, ''
-
-
-def swap_fields(sql):
- return re.sub('SELECT (.*?) FROM', 'SELECT ••• ' +
- '\g<1> FROM', sql)
-
-
-def reformat_sql(sql):
- stack = sqlparse.engine.FilterStack()
- stack.preprocess.append(BoldKeywordFilter()) # add our custom filter
- stack.postprocess.append(sqlparse.filters.SerializerUnicode()) # tokens -> strings
- return swap_fields(''.join(stack.run(sql)))
--
cgit v1.2.3