}
// }}}
+ // {{{ 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;
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);
}
return $res;
}
+ // }}}
// {{{ function query
function &query()
<table class="bicol" style="width: 75%; font-family: monospace; font-size: smaller; margin-left:2px; margin-top: 3px;">
<tr class="impair">
<td>
- <strong>QUERY:</strong><br />
- {$query.query|nl2br}
- <br />
+ <strong>QUERY:</strong>
+ <pre style="padding: 0; margin: 0;">{$query.query}</pre>
+ <br/>
</td>
</tr>
{if $query.error}