summaryrefslogtreecommitdiffstats
path: root/lib/SqlFormatter.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/SqlFormatter.php')
-rw-r--r--lib/SqlFormatter.php13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/SqlFormatter.php b/lib/SqlFormatter.php
index 75197b1..0052392 100644
--- a/lib/SqlFormatter.php
+++ b/lib/SqlFormatter.php
@@ -26,7 +26,7 @@ class SqlFormatter
'LINES', 'LOAD', 'LOCAL', 'LOCK', 'LOCKS', 'LOGS', 'LOW_PRIORITY', 'MARIA', 'MASTER', 'MASTER_CONNECT_RETRY', 'MASTER_HOST', 'MASTER_LOG_FILE',
'MASTER_LOG_POS', 'MASTER_PASSWORD', 'MASTER_PORT', 'MASTER_USER', 'MATCH', 'MAX_CONNECTIONS_PER_HOUR', 'MAX_QUERIES_PER_HOUR',
'MAX_ROWS', 'MAX_UPDATES_PER_HOUR', 'MAX_USER_CONNECTIONS', 'MEDIUM', 'MERGE', 'MINUTE', 'MINUTE_SECOND', 'MIN_ROWS', 'MODE', 'MODIFY',
- 'MONTH', 'MRG_MYISAM', 'MYISAM', 'NAMES', 'NATURAL', 'NOT', 'NULL', 'OFFSET', 'ON', 'OPEN', 'OPTIMIZE', 'OPTION', 'OPTIONALLY', 'OR',
+ 'MONTH', 'MRG_MYISAM', 'MYISAM', 'NAMES', 'NATURAL', 'NOT', 'NOW', 'NULL', 'OFFSET', 'ON', 'OPEN', 'OPTIMIZE', 'OPTION', 'OPTIONALLY', 'OR',
'ORDER', 'ORDER BY', 'OUTER', 'OUTER JOIN', 'OUTFILE', 'PACK_KEYS', 'PAGE', 'PARTIAL', 'PARTITION', 'PARTITIONS', 'PASSWORD', 'PRIMARY', 'PRIVILEGES', 'PROCEDURE',
'PROCESS', 'PROCESSLIST', 'PURGE', 'QUICK', 'RAID0', 'RAID_CHUNKS', 'RAID_CHUNKSIZE', 'RAID_TYPE', 'RANGE', 'READ', 'READ_ONLY',
'READ_WRITE', 'REFERENCES', 'REGEXP', 'RELOAD', 'RENAME', 'REPAIR', 'REPEATABLE', 'REPLACE', 'REPLICATION', 'RESET', 'RESTORE', 'RESTRICT',
@@ -285,7 +285,6 @@ class SqlFormatter
$tab = self::$tab;
// Starting values
- $i = 0;
$indent = 1;
$newline = false;
$indented = false;
@@ -294,7 +293,7 @@ class SqlFormatter
// Tokenize String
$tokens = self::tokenize($string);
- foreach ($tokens as $token) {
+ foreach ($tokens as $i=>$token) {
// Get highlighted token if doing syntax highlighting
if ($highlight) {
$highlighted = self::highlightToken($token);
@@ -361,10 +360,16 @@ class SqlFormatter
}
// If the token shouldn't have a space before it
- if (in_array($token['token'], array('.', ',', ';','()'))) {
+ if (in_array($token['token'], array('.', ',', ';'))) {
$return = rtrim($return, ' ');
}
+ //if this is an opening parentheses, take out the preceding space unless there was whitespace there in the
+ //original query
+ if($token['token'][0] === '(' && isset($tokens[$i-1]) && $tokens[$i-1]['type'] !== 'whitespace') {
+ $return = rtrim($return,' ');
+ }
+
$return .= $highlighted.' ';
// If the token shouldn't have a space after it