From 1427056cd30f3aa4c3beb00890236b22c265fb1d Mon Sep 17 00:00:00 2001 From: David Grudl Date: Mon, 6 Dec 2021 18:46:28 +0100 Subject: [PATCH] cs --- tests/dibi/Translator.phpt | 79 +++++++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 32 deletions(-) diff --git a/tests/dibi/Translator.phpt b/tests/dibi/Translator.phpt index 67ffd1c2..661a267d 100644 --- a/tests/dibi/Translator.phpt +++ b/tests/dibi/Translator.phpt @@ -274,31 +274,36 @@ $e = Assert::exception(function () use ($conn) { Assert::same('SELECT **Alone quote**', $e->getSql()); Assert::match( - reformat([ - 'mysql' => "SELECT DISTINCT HIGH_PRIORITY SQL_BUFFER_RESULT + pattern: reformat([ + 'mysql' => <<<'XX' +SELECT DISTINCT HIGH_PRIORITY SQL_BUFFER_RESULT CONCAT(last_name, ', ', first_name) AS full_name GROUP BY `user` HAVING MAX(salary) > %i 123 -INTO OUTFILE '/tmp/result\\'.txt' -FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\\\"' -LINES TERMINATED BY '\\\\n' -", - 'sqlsrv' => "SELECT DISTINCT HIGH_PRIORITY SQL_BUFFER_RESULT +INTO OUTFILE '/tmp/result\'.txt' +FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' +LINES TERMINATED BY '\\n' +XX, + 'sqlsrv' => <<<'XX' +SELECT DISTINCT HIGH_PRIORITY SQL_BUFFER_RESULT CONCAT(last_name, N', ', first_name) AS full_name GROUP BY [user] HAVING MAX(salary) > %i 123 INTO OUTFILE N'/tmp/result''.txt' -FIELDS TERMINATED BY N',' OPTIONALLY ENCLOSED BY N'\"' -LINES TERMINATED BY N'\\n'", "SELECT DISTINCT HIGH_PRIORITY SQL_BUFFER_RESULT +FIELDS TERMINATED BY N',' OPTIONALLY ENCLOSED BY N'"' +LINES TERMINATED BY N'\n' +XX, + <<<'XX' +SELECT DISTINCT HIGH_PRIORITY SQL_BUFFER_RESULT CONCAT(last_name, ', ', first_name) AS full_name GROUP BY [user] HAVING MAX(salary) > %i 123 INTO OUTFILE '/tmp/result''.txt' -FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' -LINES TERMINATED BY '\\n' -", - ]), - $conn->translate('%sql', 'SELECT DISTINCT HIGH_PRIORITY SQL_BUFFER_RESULT +FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' +LINES TERMINATED BY '\n' +XX, + ]), + actual: $conn->translate('%sql', 'SELECT DISTINCT HIGH_PRIORITY SQL_BUFFER_RESULT CONCAT(last_name, ", ", first_name) AS full_name GROUP BY [user] HAVING MAX(salary) > %i', 123, " @@ -330,8 +335,9 @@ $array5 = ['RAND()', '[col1] > [col2]']; Assert::match( - reformat([ - 'mysql' => "SELECT * + pattern: reformat([ + 'mysql' => << "SELECT * +LIMIT 10 +XX, + 'sqlsrv' => <<<'XX' +SELECT * FROM [db].[table] WHERE ([test].[a] LIKE '1995-03-01' OR [b1] IN ( 1, 2, 3 ) @@ -372,29 +380,33 @@ WHERE ([test].[a] LIKE '1995-03-01' OR [false]= 0 OR [str_null]=NULL OR [str_not_null]=N'hello' -LIMIT 10", - 'postgre' => 'SELECT * +LIMIT 10 +XX, + 'postgre' => <<<'XX' +SELECT * FROM "db"."table" -WHERE ("test"."a" LIKE \'1995-03-01\' +WHERE ("test"."a" LIKE '1995-03-01' OR "b1" IN ( 1, 2, 3 ) - OR "b2" IN (\'1\', \'2\', \'3\' ) + OR "b2" IN ('1', '2', '3' ) OR "b3" IN ( ) - OR "b4" IN ( \'one\', \'two\', \'three\' ) + OR "b4" IN ( 'one', 'two', 'three' ) OR "b5" IN ("col1" AS "one", "col2" AS "two", "col3" AS "thr.ee" ) - OR "b6" IN (\'one\', \'two\', \'thr.ee\') + OR "b6" IN ('one', 'two', 'thr.ee') OR "b7" IN (NULL) OR "b8" IN (RAND() "col1" > "col2" ) OR "b9" IN (RAND(), [col1] > [col2] ) OR "b10" IN ( ) - AND "c" = \'embedded \'\' string\' + AND "c" = 'embedded '' string' OR "d"=10 OR "e"=NULL OR "true"= TRUE OR "false"= FALSE OR "str_null"=NULL - OR "str_not_null"=\'hello\' -LIMIT 10', - 'odbc' => "SELECT * + OR "str_not_null"='hello' +LIMIT 10 +XX, + 'odbc' => <<<'XX' +SELECT * FROM [db].[table] WHERE ([test].[a] LIKE #03/01/1995# OR [b1] IN ( 1, 2, 3 ) @@ -414,8 +426,10 @@ WHERE ([test].[a] LIKE #03/01/1995# OR [false]= 0 OR [str_null]=NULL OR [str_not_null]='hello' -LIMIT 10", - "SELECT * +LIMIT 10 +XX, + <<<'XX' +SELECT * FROM [db].[table] WHERE ([test].[a] LIKE '1995-03-01' OR [b1] IN ( 1, 2, 3 ) @@ -435,9 +449,10 @@ WHERE ([test].[a] LIKE '1995-03-01' OR [false]= 0 OR [str_null]=NULL OR [str_not_null]='hello' -LIMIT 10", +LIMIT 10 +XX, ]), - $conn->translate('SELECT * + actual: $conn->translate('SELECT * FROM [db.table] WHERE ([test.a] LIKE %d', '1995-03-01', ' OR [b1] IN (', $array1, ')