diff options
author | Dan Ungureanu <udan1107@gmail.com> | 2015-08-05 11:49:39 +0300 |
---|---|---|
committer | Dan Ungureanu <udan1107@gmail.com> | 2015-08-05 11:49:39 +0300 |
commit | c4f7b223db8229970b92063f800e160de6c5d359 (patch) | |
tree | 75968346af37640e9ef082c4dd7f9166d6e319f7 /tests/Utils/QueryTest.php | |
parent | 9130cca0d17169b4647d39b644cc6483b600623c (diff) | |
download | sql-parser-c4f7b223db8229970b92063f800e160de6c5d359.zip sql-parser-c4f7b223db8229970b92063f800e160de6c5d359.tar.gz sql-parser-c4f7b223db8229970b92063f800e160de6c5d359.tar.bz2 |
Fixed a bug that didn't parse comments properly.
getFirstStatement util doesn't ignore MySQL specific query anymore (between comments).
Misc coding style fixes.
Fixed tests.
Diffstat (limited to 'tests/Utils/QueryTest.php')
-rw-r--r-- | tests/Utils/QueryTest.php | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/tests/Utils/QueryTest.php b/tests/Utils/QueryTest.php index 8dd2323..833469e 100644 --- a/tests/Utils/QueryTest.php +++ b/tests/Utils/QueryTest.php @@ -359,7 +359,7 @@ class QueryTest extends TestCase $parser = new Parser( 'SELECT c.city_id, c.country_id ' . 'FROM `city` ' . - 'WHERE city_id < 1 ' . + 'WHERE city_id < 1 /* test */' . 'ORDER BY city_id ASC ' . 'LIMIT 0, 1 ' . 'INTO OUTFILE "/dev/null"' @@ -458,4 +458,43 @@ class QueryTest extends TestCase ) ); } + + public function testGetFirstStatement() + { + $query = 'USE saki'; + $delimiter = null; + list($statement, $query, $delimiter) = + Query::getFirstStatement($query, $delimiter); + $this->assertEquals(null, $statement); + $this->assertEquals('USE saki', $query); + + $query = 'USE sakila; ' . + '/*test comment*/' . + 'SELECT * FROM actor; '. + 'DELIMITER $$ ' . + 'UPDATE actor SET last_name = "abc"$$' . + '/*!SELECT * FROM actor WHERE last_name = "abc"*/$$'; + $delimiter = null; + + list($statement, $query, $delimiter) = + Query::getFirstStatement($query, $delimiter); + $this->assertEquals('USE sakila;', $statement); + + list($statement, $query, $delimiter) = + Query::getFirstStatement($query, $delimiter); + $this->assertEquals('SELECT * FROM actor;', $statement); + + list($statement, $query, $delimiter) = + Query::getFirstStatement($query, $delimiter); + $this->assertEquals('DELIMITER $$', $statement); + $this->assertEquals('$$', $delimiter); + + list($statement, $query, $delimiter) = + Query::getFirstStatement($query, $delimiter); + $this->assertEquals('UPDATE actor SET last_name = "abc"$$', $statement); + + list($statement, $query, $delimiter) = + Query::getFirstStatement($query, $delimiter); + $this->assertEquals('/*!SELECT * FROM actor WHERE last_name = "abc"*/$$', $statement); + } } |