Skip to content

Commit

Permalink
cs
Browse files Browse the repository at this point in the history
  • Loading branch information
dg committed Dec 6, 2021
1 parent a657368 commit 1427056
Showing 1 changed file with 47 additions and 32 deletions.
79 changes: 47 additions & 32 deletions tests/dibi/Translator.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -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, "
Expand Down Expand Up @@ -330,8 +335,9 @@ $array5 = ['RAND()', '[col1] > [col2]'];


Assert::match(
reformat([
'mysql' => "SELECT *
pattern: reformat([
'mysql' => <<<XX
SELECT *
FROM `db`.`table`
WHERE (`test`.`a` LIKE '1995-03-01'
OR `b1` IN ( 1, 2, 3 )
Expand All @@ -351,8 +357,10 @@ WHERE (`test`.`a` LIKE '1995-03-01'
OR `false`= 0
OR `str_null`=NULL
OR `str_not_null`='hello'
LIMIT 10",
'sqlsrv' => "SELECT *
LIMIT 10
XX,
'sqlsrv' => <<<'XX'
SELECT *
FROM [db].[table]
WHERE ([test].[a] LIKE '1995-03-01'
OR [b1] IN ( 1, 2, 3 )
Expand All @@ -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 )
Expand All @@ -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 )
Expand All @@ -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, ')
Expand Down

0 comments on commit 1427056

Please sign in to comment.