aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/utils/sql.py
diff options
context:
space:
mode:
Diffstat (limited to 'debug_toolbar/utils/sql.py')
-rw-r--r--debug_toolbar/utils/sql.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/debug_toolbar/utils/sql.py b/debug_toolbar/utils/sql.py
new file mode 100644
index 0000000..909edf7
--- /dev/null
+++ b/debug_toolbar/utils/sql.py
@@ -0,0 +1,15 @@
+import re
+from debug_toolbar.utils import sqlparse
+from debug_toolbar.utils.sqlparse.filters import BoldKeywordFilter
+
+
+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)))
+
+
+def swap_fields(sql):
+ return re.sub('SELECT</strong> (.*?) <strong>FROM', 'SELECT</strong> <a class="djDebugUncollapsed djDebugToggle" href="#">&bull;&bull;&bull;</a> ' +
+ '<a class="djDebugCollapsed djDebugToggle" href="#">\g<1></a> <strong>FROM', sql)