diff options
author | Jeremy Dorn <jeremy@jeremydorn.com> | 2013-07-01 07:27:06 -0700 |
---|---|---|
committer | Jeremy Dorn <jeremy@jeremydorn.com> | 2013-07-01 07:27:06 -0700 |
commit | a8546539505e6dc388303ee89dcde7c84c338dd4 (patch) | |
tree | 26da77580962281da562bad7ede40c2c1ab620ee | |
parent | d7f10fbb2f871155cdd91b077acebb378e10a95c (diff) | |
parent | 38a4639611d53832d63c55f6f69a6f1785cec53c (diff) | |
download | sql-formatter-a8546539505e6dc388303ee89dcde7c84c338dd4.zip sql-formatter-a8546539505e6dc388303ee89dcde7c84c338dd4.tar.gz sql-formatter-a8546539505e6dc388303ee89dcde7c84c338dd4.tar.bz2 |
Merge branch 'master' of https://github.com/adityagoyal/sql-formatter into adityagoyal-master
-rw-r--r-- | examples/examples.php | 5 | ||||
-rw-r--r-- | lib/SqlFormatter.php | 28 |
2 files changed, 26 insertions, 7 deletions
diff --git a/examples/examples.php b/examples/examples.php index 9d69182..97771ad 100644 --- a/examples/examples.php +++ b/examples/examples.php @@ -44,6 +44,11 @@ $statements = array( < DATE_FORMAT(NOW(), '%Y-%c-%d') ORDER BY d.id LIMIT 2,10) a, orc_scheme_detail b WHERE a.id = b.id", + "SELECT * from Table1 LEFT OUTER JOIN Table2 on Table1.id = Table2.id", + + "SELECT * from Table1 LEFT + OUTER JOIN Table2 on Table1.id = Table2.id", + "SELECT * FROM MyTable WHERE id = 46", "SELECT count(*),`Column1`,`Testing`, `Testing Three` FROM `Table1` diff --git a/lib/SqlFormatter.php b/lib/SqlFormatter.php index cff35f8..0e5e781 100644 --- a/lib/SqlFormatter.php +++ b/lib/SqlFormatter.php @@ -44,15 +44,18 @@ class SqlFormatter 'HOUR_SECOND', 'IDENTIFIED', 'IF', 'IFNULL', 'IGNORE', 'IN', 'INDEX', 'INDEXES', 'INFILE', 'INSERT', 'INSERT_ID', 'INSERT_METHOD', 'INTERVAL', 'INTO', 'INVOKER', 'IS', 'ISOLATION', 'KEY', 'KEYS', 'KILL', 'LAST_INSERT_ID', 'LEADING', 'LEVEL', 'LIKE', 'LINEAR', 'LINES', 'LOAD', 'LOCAL', 'LOCK', 'LOCKS', 'LOGS', 'LOW_PRIORITY', 'MARIA', 'MASTER', 'MASTER_CONNECT_RETRY', 'MASTER_HOST', 'MASTER_LOG_FILE', - 'MATCH', 'MEDIUM', 'MERGE', 'MINUTE', 'MINUTE_SECOND', 'MIN_ROWS', 'MODE', 'MODIFY', + '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', 'NOW()', 'NULL', 'OFFSET', 'ON', 'OPEN', 'OPTIMIZE', 'OPTION', 'OPTIONALLY', 'ON UPDATE', 'ON DELETE', 'OUTFILE', 'PACK_KEYS', 'PAGE', 'PARTIAL', 'PARTITION', 'PARTITIONS', 'PASSWORD', 'PRIMARY', 'PRIVILEGES', 'PROCEDURE', - 'PROCESS', 'PROCESSLIST', 'PURGE', 'QUICK', 'RANGE', 'READ', 'READ_ONLY', + 'PROCESS', 'PROCESSLIST', 'PURGE', 'QUICK', 'RANGE', 'RAID0', 'RAID_CHUNKS', 'RAID_CHUNKSIZE','RAID_TYPE', 'READ', 'READ_ONLY', 'READ_WRITE', 'REFERENCES', 'REGEXP', 'RELOAD', 'RENAME', 'REPAIR', 'REPEATABLE', 'REPLACE', 'REPLICATION', 'RESET', 'RESTORE', 'RESTRICT', 'RETURN', 'RETURNS', 'REVOKE', 'RLIKE', 'ROLLBACK', 'ROW', 'ROWS', 'ROW_FORMAT', 'SECOND', 'SECURITY', 'SEPARATOR', - 'SERIALIZABLE', 'SESSION', 'SHARE', 'SHOW', 'SHUTDOWN', 'SLAVE', 'SONAME', 'SOUNDS', 'SQL', - 'SQL_CACHE', 'SQL_NO_CACHE', 'START', 'STARTING', 'STATUS', 'STOP', 'STORAGE', - 'STRAIGHT_JOIN', 'STRING', 'SUPER', 'TABLE', 'TABLES', 'TEMPORARY', 'TERMINATED', 'THEN', 'TO', 'TRAILING', 'TRANSACTIONAL', + 'SERIALIZABLE', 'SESSION', 'SHARE', 'SHOW', 'SHUTDOWN', 'SLAVE', 'SONAME', 'SOUNDS', 'SQL', 'SQL_AUTO_IS_NULL', 'SQL_BIG_RESULT', + 'SQL_BIG_SELECTS', 'SQL_BIG_TABLES', 'SQL_BUFFER_RESULT', 'SQL_CALC_FOUND_ROWS', 'SQL_LOG_BIN', 'SQL_LOG_OFF', 'SQL_LOG_UPDATE', + 'SQL_LOW_PRIORITY_UPDATES', 'SQL_MAX_JOIN_SIZE', 'SQL_QUOTE_SHOW_CREATE', 'SQL_SAFE_UPDATES', 'SQL_SELECT_LIMIT', 'SQL_SLAVE_SKIP_COUNTER', + 'SQL_SMALL_RESULT', 'SQL_WARNINGS', 'SQL_CACHE', 'SQL_NO_CACHE', 'START', 'STARTING', 'STATUS', 'STOP', 'STORAGE', + 'STRAIGHT_JOIN', 'STRING', 'STRIPED', 'SUPER', 'TABLE', 'TABLES', 'TEMPORARY', 'TERMINATED', 'THEN', 'TO', 'TRAILING', 'TRANSACTIONAL', 'TRUE', 'TRUNCATE', 'TYPE', 'TYPES', 'UNCOMMITTED', 'UNIQUE', 'UNLOCK', 'UNSIGNED', 'USAGE', 'USE', 'USING', 'VARIABLES', 'VIEW', 'WHEN', 'WITH', 'WORK', 'WRITE', 'YEAR_MONTH' ); @@ -65,7 +68,7 @@ class SqlFormatter ); protected static $reserved_newline = array( - 'LEFT JOIN', 'RIGHT JOIN', 'OUTER JOIN', 'INNER JOIN', 'JOIN', 'XOR', 'OR', 'AND' + 'LEFT OUTER JOIN', 'RIGHT OUTER JOIN', 'LEFT JOIN', 'RIGHT JOIN', 'OUTER JOIN', 'INNER JOIN', 'JOIN', 'XOR', 'OR', 'AND' ); // Punctuation that can be used as a boundary between other tokens @@ -696,7 +699,7 @@ class SqlFormatter $result .= $token[self::TOKEN_VALUE]; } - + $result = self::remove_blank_lines($result); return $result; } @@ -978,4 +981,15 @@ class SqlFormatter if(isset(self::$cli)) return self::$cli; else return php_sapi_name() === 'cli'; } + + /** + * Removes blank line between and before sql statements. + *@param String $sql from which blank lines need to be removed + * + * @return String sql without blank lines + */ + private static function remove_blank_lines($sql) + { + return preg_replace('/^\n+|^[\t\s]*\n+/m','',$sql); + } } |