From 7c571120d50f1c1f6fa7b735bfef0e6f9d5d3499 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Sat, 12 Aug 2006 21:03:44 +0000 Subject: [PATCH 1/1] Display reformated queries in SQL backtrace (imported from promo2003.polytechnique.org) I personally find this more readable git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@807 839d8a87-29fc-0310-9880-83ba4fa771e5 --- classes/XDB.php | 32 +++++++++++++++++++++++++++++++- templates/database-debug.tpl | 6 +++--- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/classes/XDB.php b/classes/XDB.php index 905d025..df77e82 100644 --- a/classes/XDB.php +++ b/classes/XDB.php @@ -32,6 +32,35 @@ class XDB } // }}} + // {{{ function _reformatQuery + + function _reformatQuery($query) + { + $query = preg_split("/\n\\s*/", $query); + $length = 0; + foreach ($query as $line) { + if (preg_match('/^([A-Z]+( (JOIN|BY))?) /', $line, $matches) + && $matches[1] != 'AND' && $matches[2] != 'OR') { + $length = max($length, strlen($matches[1])); + } + } + $res = ''; + foreach ($query as $line) { + $local = -2; + if (preg_match('/^([A-Z]+(?: (?:JOIN|BY))?) +(.*)/', $line, $matches) + && $matches[1] != 'AND' && $matches[2] != 'OR') { + $local = strlen($matches[1]); + $line = $matches[1] . ' ' . $matches[2]; + } + $local = $length - $local; + $res .= str_repeat(' ', $local) . $line . "\n"; + $length += 2 * (substr_count($line, '(') - substr_count($line, ')')); + } + return $res; + } + + // }}} + // {{{ function _query function _query($query) { global $globals; @@ -42,7 +71,7 @@ class XDB while ($row = @mysql_fetch_assoc($_res)) { $explain[] = $row; } - $trace_data = array('query' => $query, 'explain' => $explain); + $trace_data = array('query' => XDB::_reformatQuery($query), 'explain' => $explain); @mysql_free_result($_res); } @@ -56,6 +85,7 @@ class XDB return $res; } + // }}} // {{{ function query function &query() diff --git a/templates/database-debug.tpl b/templates/database-debug.tpl index 9e015d3..bf6d610 100644 --- a/templates/database-debug.tpl +++ b/templates/database-debug.tpl @@ -25,9 +25,9 @@ {if $query.error} -- 2.1.4
- QUERY:
- {$query.query|nl2br} -
+ QUERY: +
{$query.query}
+