mirror of
https://github.com/dg/dibi.git
synced 2025-09-01 18:12:51 +02:00
coding style
This commit is contained in:
@@ -23,7 +23,7 @@ Assert::same(
|
||||
$conn->translate('REPLACE INTO [products]', [
|
||||
'title' => 'Drticka',
|
||||
'price' => 318,
|
||||
])
|
||||
]),
|
||||
);
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ Assert::same(
|
||||
'sqlsrv' => "INSERT INTO [products] ([title], [price], [brand]) VALUES (N'Super Product', 12, NULL) , (N'Super Product', 12, NULL) , (N'Super Product', 12, NULL)",
|
||||
"INSERT INTO [products] ([title], [price], [brand]) VALUES ('Super Product', 12, NULL) , ('Super Product', 12, NULL) , ('Super Product', 12, NULL)",
|
||||
]),
|
||||
$conn->translate('INSERT INTO [products]', $array, $array, $array)
|
||||
$conn->translate('INSERT INTO [products]', $array, $array, $array),
|
||||
);
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ Assert::same(
|
||||
'sqlsrv' => "INSERT INTO [products] ([pole], [bit]) VALUES (N'hodnota1', 1) , (N'hodnota2', 1) , (N'hodnota3', 1)",
|
||||
"INSERT INTO [products] ([pole], [bit]) VALUES ('hodnota1', 1) , ('hodnota2', 1) , ('hodnota3', 1)",
|
||||
]),
|
||||
$conn->translate('INSERT INTO [products] %ex', $array)
|
||||
$conn->translate('INSERT INTO [products] %ex', $array),
|
||||
);
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ Assert::same(
|
||||
$conn->translate('UPDATE [colors] SET', [
|
||||
'color' => 'blue',
|
||||
'order' => 12,
|
||||
], 'WHERE [id]=%i', 123)
|
||||
], 'WHERE [id]=%i', 123),
|
||||
);
|
||||
|
||||
|
||||
@@ -74,20 +74,20 @@ Assert::same(
|
||||
$array = [1, 2, 3];
|
||||
Assert::same(
|
||||
reformat('SELECT * FROM [people] WHERE [id] IN ( 1, 2, 3 )'),
|
||||
$conn->translate('SELECT * FROM [people] WHERE [id] IN (', $array, ')')
|
||||
$conn->translate('SELECT * FROM [people] WHERE [id] IN (', $array, ')'),
|
||||
);
|
||||
|
||||
|
||||
// long numbers
|
||||
Assert::same(
|
||||
reformat('SELECT -123456789123456789123456789'),
|
||||
$conn->translate('SELECT %i', '-123456789123456789123456789')
|
||||
$conn->translate('SELECT %i', '-123456789123456789123456789'),
|
||||
);
|
||||
|
||||
// long float numbers
|
||||
Assert::same(
|
||||
reformat('SELECT -.12345678912345678912345678e10'),
|
||||
$conn->translate('SELECT %f', '-.12345678912345678912345678e10')
|
||||
$conn->translate('SELECT %f', '-.12345678912345678912345678e10'),
|
||||
);
|
||||
|
||||
// invalid input
|
||||
@@ -101,7 +101,7 @@ Assert::same(
|
||||
'sqlsrv' => "SELECT * FROM [table] WHERE id=10 AND name=N'ahoj'",
|
||||
"SELECT * FROM [table] WHERE id=10 AND name='ahoj'",
|
||||
]),
|
||||
$conn->translate('SELECT * FROM [table] WHERE id=%i AND name=%s', 10, 'ahoj')
|
||||
$conn->translate('SELECT * FROM [table] WHERE id=%i AND name=%s', 10, 'ahoj'),
|
||||
);
|
||||
|
||||
Assert::same(
|
||||
@@ -109,7 +109,7 @@ Assert::same(
|
||||
'sqlsrv' => "TEST ([cond] > 2) OR ([cond2] = N'3') OR (cond3 < RAND())",
|
||||
"TEST ([cond] > 2) OR ([cond2] = '3') OR (cond3 < RAND())",
|
||||
]),
|
||||
$conn->translate('TEST %or', ['[cond] > 2', '[cond2] = "3"', 'cond3 < RAND()'])
|
||||
$conn->translate('TEST %or', ['[cond] > 2', '[cond2] = "3"', 'cond3 < RAND()']),
|
||||
);
|
||||
|
||||
Assert::same(
|
||||
@@ -117,7 +117,7 @@ Assert::same(
|
||||
'sqlsrv' => "TEST ([cond] > 2) AND ([cond2] = N'3') AND (cond3 < RAND())",
|
||||
"TEST ([cond] > 2) AND ([cond2] = '3') AND (cond3 < RAND())",
|
||||
]),
|
||||
$conn->translate('TEST %and', ['[cond] > 2', '[cond2] = "3"', 'cond3 < RAND()'])
|
||||
$conn->translate('TEST %and', ['[cond] > 2', '[cond2] = "3"', 'cond3 < RAND()']),
|
||||
);
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ $where[] = '[age] > 20';
|
||||
$where[] = '[email] IS NOT NULL';
|
||||
Assert::same(
|
||||
reformat('SELECT * FROM [table] WHERE ([age] > 20) AND ([email] IS NOT NULL)'),
|
||||
$conn->translate('SELECT * FROM [table] WHERE %and', $where)
|
||||
$conn->translate('SELECT * FROM [table] WHERE %and', $where),
|
||||
);
|
||||
|
||||
|
||||
@@ -139,14 +139,14 @@ Assert::same(
|
||||
'sqlsrv' => "SELECT * FROM [table] WHERE ([age] IS NULL) AND ([email] = N'ahoj') AND ([id] IN (10, 20, 30))",
|
||||
"SELECT * FROM [table] WHERE ([age] IS NULL) AND ([email] = 'ahoj') AND ([id] IN (10, 20, 30))",
|
||||
]),
|
||||
$conn->translate('SELECT * FROM [table] WHERE %and', $where)
|
||||
$conn->translate('SELECT * FROM [table] WHERE %and', $where),
|
||||
);
|
||||
|
||||
|
||||
$where = [];
|
||||
Assert::same(
|
||||
reformat('SELECT * FROM [table] WHERE 1=1'),
|
||||
$conn->translate('SELECT * FROM [table] WHERE %and', $where)
|
||||
$conn->translate('SELECT * FROM [table] WHERE %and', $where),
|
||||
);
|
||||
|
||||
|
||||
@@ -161,7 +161,7 @@ $order = [
|
||||
];
|
||||
Assert::same(
|
||||
reformat('SELECT * FROM [people] ORDER BY [field1] ASC, [field2] DESC, [field3] ASC, [field4] DESC, [field5] ASC, [field6] DESC'),
|
||||
$conn->translate('SELECT * FROM [people] ORDER BY %by', $order)
|
||||
$conn->translate('SELECT * FROM [people] ORDER BY %by', $order),
|
||||
);
|
||||
|
||||
|
||||
@@ -172,7 +172,7 @@ Assert::same(
|
||||
'sqlsrv' => 'SELECT * FROM [products] OFFSET 0 ROWS FETCH NEXT 2 ROWS ONLY',
|
||||
'SELECT * FROM [products] LIMIT 2',
|
||||
]),
|
||||
$conn->translate('SELECT * FROM [products] %lmt', 2)
|
||||
$conn->translate('SELECT * FROM [products] %lmt', 2),
|
||||
);
|
||||
|
||||
if ($config['system'] === 'odbc') {
|
||||
@@ -186,7 +186,7 @@ if ($config['system'] === 'odbc') {
|
||||
'sqlsrv' => 'SELECT * FROM [products] OFFSET 1 ROWS FETCH NEXT 2 ROWS ONLY',
|
||||
'SELECT * FROM [products] LIMIT 2 OFFSET 1',
|
||||
]),
|
||||
$conn->translate('SELECT * FROM [products] %lmt %ofs', 2, 1)
|
||||
$conn->translate('SELECT * FROM [products] %lmt %ofs', 2, 1),
|
||||
);
|
||||
|
||||
// with offset = 50
|
||||
@@ -197,7 +197,7 @@ if ($config['system'] === 'odbc') {
|
||||
'sqlsrv' => 'SELECT * FROM [products] OFFSET 50 ROWS',
|
||||
'SELECT * FROM [products] LIMIT -1 OFFSET 50',
|
||||
]),
|
||||
$conn->translate('SELECT * FROM [products] %ofs', 50)
|
||||
$conn->translate('SELECT * FROM [products] %ofs', 50),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -223,7 +223,7 @@ Assert::same(
|
||||
'b8%d' => null,
|
||||
'b9%t' => null,
|
||||
'c1%t' => new DateTime('1212-09-26 16:51:34.0124'),
|
||||
])
|
||||
]),
|
||||
);
|
||||
|
||||
Assert::exception(function () use ($conn) {
|
||||
@@ -247,13 +247,13 @@ if ($config['system'] === 'postgre') {
|
||||
$conn->query('SET standard_conforming_strings = off');
|
||||
Assert::same(
|
||||
"SELECT * FROM products WHERE (title LIKE 'C%' AND title LIKE '%r') OR title LIKE '%a\n\\\\%\\\\_\\\\\\\\''\"%'",
|
||||
$conn->translate($args[0], $args[1], $args[2], $args[3])
|
||||
$conn->translate($args[0], $args[1], $args[2], $args[3]),
|
||||
);
|
||||
|
||||
$conn->query('SET standard_conforming_strings = on');
|
||||
Assert::same(
|
||||
"SELECT * FROM products WHERE (title LIKE 'C%' AND title LIKE '%r') OR title LIKE '%a\n\\%\\_\\\\''\"%'",
|
||||
$conn->translate($args[0], $args[1], $args[2], $args[3])
|
||||
$conn->translate($args[0], $args[1], $args[2], $args[3]),
|
||||
);
|
||||
} elseif ($config['driver'] !== 'sqlite') { // sqlite2
|
||||
Assert::same(
|
||||
@@ -263,7 +263,7 @@ if ($config['system'] === 'postgre') {
|
||||
'sqlsrv' => "SELECT * FROM products WHERE (title LIKE 'C%' AND title LIKE '%r') OR title LIKE '%a\n[%][_]\\''\"%'",
|
||||
"SELECT * FROM products WHERE (title LIKE 'C%' AND title LIKE '%r') OR title LIKE '%a\\n\\%\\_\\\\\\\\\\'\"%'",
|
||||
]),
|
||||
$conn->translate($args[0], $args[1], $args[2], $args[3])
|
||||
$conn->translate($args[0], $args[1], $args[2], $args[3]),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -274,38 +274,43 @@ $e = Assert::exception(function () use ($conn) {
|
||||
Assert::same('SELECT **Alone quote**', $e->getSql());
|
||||
|
||||
Assert::match(
|
||||
reformat([
|
||||
'mysql' => "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
|
||||
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
|
||||
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'
|
||||
",
|
||||
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'
|
||||
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'
|
||||
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'
|
||||
XX,
|
||||
]),
|
||||
$conn->translate('%sql', 'SELECT DISTINCT HIGH_PRIORITY SQL_BUFFER_RESULT
|
||||
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, "
|
||||
INTO OUTFILE '/tmp/result''.txt'
|
||||
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
|
||||
LINES TERMINATED BY '\\n'
|
||||
")
|
||||
"),
|
||||
);
|
||||
|
||||
|
||||
@@ -330,114 +335,124 @@ $array5 = ['RAND()', '[col1] > [col2]'];
|
||||
|
||||
|
||||
Assert::match(
|
||||
reformat([
|
||||
'mysql' => "SELECT *
|
||||
FROM `db`.`table`
|
||||
WHERE (`test`.`a` LIKE '1995-03-01'
|
||||
OR `b1` IN ( 1, 2, 3 )
|
||||
OR `b2` IN ('1', '2', '3' )
|
||||
OR `b3` IN ( )
|
||||
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 `b7` IN (NULL)
|
||||
OR `b8` IN (RAND() `col1` > `col2` )
|
||||
OR `b9` IN (RAND(), [col1] > [col2] )
|
||||
OR `b10` IN ( )
|
||||
AND `c` = 'embedded \\' string'
|
||||
OR `d`=10
|
||||
OR `e`=NULL
|
||||
OR `true`= 1
|
||||
OR `false`= 0
|
||||
OR `str_null`=NULL
|
||||
OR `str_not_null`='hello'
|
||||
LIMIT 10",
|
||||
'sqlsrv' => "SELECT *
|
||||
FROM [db].[table]
|
||||
WHERE ([test].[a] LIKE '1995-03-01'
|
||||
OR [b1] IN ( 1, 2, 3 )
|
||||
OR [b2] IN (N'1', N'2', N'3' )
|
||||
OR [b3] IN ( )
|
||||
OR [b4] IN ( N'one', N'two', N'three' )
|
||||
OR [b5] IN ([col1] AS [one], [col2] AS [two], [col3] AS [thr.ee] )
|
||||
OR [b6] IN (N'one', N'two', N'thr.ee')
|
||||
OR [b7] IN (NULL)
|
||||
OR [b8] IN (RAND() [col1] > [col2] )
|
||||
OR [b9] IN (RAND(), [col1] > [col2] )
|
||||
OR [b10] IN ( )
|
||||
AND [c] = N'embedded '' string'
|
||||
OR [d]=10
|
||||
OR [e]=NULL
|
||||
OR [true]= 1
|
||||
OR [false]= 0
|
||||
OR [str_null]=NULL
|
||||
OR [str_not_null]=N'hello'
|
||||
LIMIT 10",
|
||||
'postgre' => 'SELECT *
|
||||
FROM "db"."table"
|
||||
WHERE ("test"."a" LIKE \'1995-03-01\'
|
||||
OR "b1" IN ( 1, 2, 3 )
|
||||
OR "b2" IN (\'1\', \'2\', \'3\' )
|
||||
OR "b3" IN ( )
|
||||
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 "b7" IN (NULL)
|
||||
OR "b8" IN (RAND() "col1" > "col2" )
|
||||
OR "b9" IN (RAND(), [col1] > [col2] )
|
||||
OR "b10" IN ( )
|
||||
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 *
|
||||
FROM [db].[table]
|
||||
WHERE ([test].[a] LIKE #03/01/1995#
|
||||
OR [b1] IN ( 1, 2, 3 )
|
||||
OR [b2] IN ('1', '2', '3' )
|
||||
OR [b3] IN ( )
|
||||
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 [b7] IN (NULL)
|
||||
OR [b8] IN (RAND() [col1] > [col2] )
|
||||
OR [b9] IN (RAND(), [col1] > [col2] )
|
||||
OR [b10] IN ( )
|
||||
AND [c] = 'embedded '' string'
|
||||
OR [d]=10
|
||||
OR [e]=NULL
|
||||
OR [true]= 1
|
||||
OR [false]= 0
|
||||
OR [str_null]=NULL
|
||||
OR [str_not_null]='hello'
|
||||
LIMIT 10",
|
||||
"SELECT *
|
||||
FROM [db].[table]
|
||||
WHERE ([test].[a] LIKE '1995-03-01'
|
||||
OR [b1] IN ( 1, 2, 3 )
|
||||
OR [b2] IN ('1', '2', '3' )
|
||||
OR [b3] IN ( )
|
||||
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 [b7] IN (NULL)
|
||||
OR [b8] IN (RAND() [col1] > [col2] )
|
||||
OR [b9] IN (RAND(), [col1] > [col2] )
|
||||
OR [b10] IN ( )
|
||||
AND [c] = 'embedded '' string'
|
||||
OR [d]=10
|
||||
OR [e]=NULL
|
||||
OR [true]= 1
|
||||
OR [false]= 0
|
||||
OR [str_null]=NULL
|
||||
OR [str_not_null]='hello'
|
||||
LIMIT 10",
|
||||
pattern: reformat([
|
||||
'mysql' => <<<'XX'
|
||||
SELECT *
|
||||
FROM `db`.`table`
|
||||
WHERE (`test`.`a` LIKE '1995-03-01'
|
||||
OR `b1` IN ( 1, 2, 3 )
|
||||
OR `b2` IN ('1', '2', '3' )
|
||||
OR `b3` IN ( )
|
||||
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 `b7` IN (NULL)
|
||||
OR `b8` IN (RAND() `col1` > `col2` )
|
||||
OR `b9` IN (RAND(), [col1] > [col2] )
|
||||
OR `b10` IN ( )
|
||||
AND `c` = 'embedded \' string'
|
||||
OR `d`=10
|
||||
OR `e`=NULL
|
||||
OR `true`= 1
|
||||
OR `false`= 0
|
||||
OR `str_null`=NULL
|
||||
OR `str_not_null`='hello'
|
||||
LIMIT 10
|
||||
XX,
|
||||
'sqlsrv' => <<<'XX'
|
||||
SELECT *
|
||||
FROM [db].[table]
|
||||
WHERE ([test].[a] LIKE '1995-03-01'
|
||||
OR [b1] IN ( 1, 2, 3 )
|
||||
OR [b2] IN (N'1', N'2', N'3' )
|
||||
OR [b3] IN ( )
|
||||
OR [b4] IN ( N'one', N'two', N'three' )
|
||||
OR [b5] IN ([col1] AS [one], [col2] AS [two], [col3] AS [thr.ee] )
|
||||
OR [b6] IN (N'one', N'two', N'thr.ee')
|
||||
OR [b7] IN (NULL)
|
||||
OR [b8] IN (RAND() [col1] > [col2] )
|
||||
OR [b9] IN (RAND(), [col1] > [col2] )
|
||||
OR [b10] IN ( )
|
||||
AND [c] = N'embedded '' string'
|
||||
OR [d]=10
|
||||
OR [e]=NULL
|
||||
OR [true]= 1
|
||||
OR [false]= 0
|
||||
OR [str_null]=NULL
|
||||
OR [str_not_null]=N'hello'
|
||||
LIMIT 10
|
||||
XX,
|
||||
'postgre' => <<<'XX'
|
||||
SELECT *
|
||||
FROM "db"."table"
|
||||
WHERE ("test"."a" LIKE '1995-03-01'
|
||||
OR "b1" IN ( 1, 2, 3 )
|
||||
OR "b2" IN ('1', '2', '3' )
|
||||
OR "b3" IN ( )
|
||||
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 "b7" IN (NULL)
|
||||
OR "b8" IN (RAND() "col1" > "col2" )
|
||||
OR "b9" IN (RAND(), [col1] > [col2] )
|
||||
OR "b10" IN ( )
|
||||
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
|
||||
XX,
|
||||
'odbc' => <<<'XX'
|
||||
SELECT *
|
||||
FROM [db].[table]
|
||||
WHERE ([test].[a] LIKE #03/01/1995#
|
||||
OR [b1] IN ( 1, 2, 3 )
|
||||
OR [b2] IN ('1', '2', '3' )
|
||||
OR [b3] IN ( )
|
||||
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 [b7] IN (NULL)
|
||||
OR [b8] IN (RAND() [col1] > [col2] )
|
||||
OR [b9] IN (RAND(), [col1] > [col2] )
|
||||
OR [b10] IN ( )
|
||||
AND [c] = 'embedded '' string'
|
||||
OR [d]=10
|
||||
OR [e]=NULL
|
||||
OR [true]= 1
|
||||
OR [false]= 0
|
||||
OR [str_null]=NULL
|
||||
OR [str_not_null]='hello'
|
||||
LIMIT 10
|
||||
XX,
|
||||
<<<'XX'
|
||||
SELECT *
|
||||
FROM [db].[table]
|
||||
WHERE ([test].[a] LIKE '1995-03-01'
|
||||
OR [b1] IN ( 1, 2, 3 )
|
||||
OR [b2] IN ('1', '2', '3' )
|
||||
OR [b3] IN ( )
|
||||
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 [b7] IN (NULL)
|
||||
OR [b8] IN (RAND() [col1] > [col2] )
|
||||
OR [b9] IN (RAND(), [col1] > [col2] )
|
||||
OR [b10] IN ( )
|
||||
AND [c] = 'embedded '' string'
|
||||
OR [d]=10
|
||||
OR [e]=NULL
|
||||
OR [true]= 1
|
||||
OR [false]= 0
|
||||
OR [str_null]=NULL
|
||||
OR [str_not_null]='hello'
|
||||
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, ')
|
||||
@@ -457,7 +472,7 @@ WHERE ([test.a] LIKE %d', '1995-03-01', '
|
||||
OR [false]=', false, '
|
||||
OR [str_null]=%sn', '', '
|
||||
OR [str_not_null]=%sn', 'hello', '
|
||||
LIMIT 10')
|
||||
LIMIT 10'),
|
||||
);
|
||||
|
||||
|
||||
@@ -466,19 +481,19 @@ Assert::same(
|
||||
'sqlsrv' => "TEST [cond] > 2 [cond2] = N'3' cond3 < RAND() 123",
|
||||
"TEST [cond] > 2 [cond2] = '3' cond3 < RAND() 123",
|
||||
]),
|
||||
$conn->translate('TEST %ex', ['[cond] > 2', '[cond2] = "3"', 'cond3 < RAND()'], 123)
|
||||
$conn->translate('TEST %ex', ['[cond] > 2', '[cond2] = "3"', 'cond3 < RAND()'], 123),
|
||||
);
|
||||
|
||||
|
||||
Assert::same(
|
||||
reformat('TEST ([cond] > 2) OR ([cond2] > 3) OR ([cond3] = 10 + 1)'),
|
||||
$conn->translate('TEST %or', ['`cond` > 2', ['[cond2] > %i', '3'], 'cond3%sql' => ['10 + 1']])
|
||||
$conn->translate('TEST %or', ['`cond` > 2', ['[cond2] > %i', '3'], 'cond3%sql' => ['10 + 1']]),
|
||||
);
|
||||
|
||||
|
||||
Assert::same(
|
||||
reformat('TEST ([cond] = 2) OR ([cond3] = RAND())'),
|
||||
$conn->translate('TEST %or', ['cond' => 2, 'cond3%sql' => 'RAND()'])
|
||||
$conn->translate('TEST %or', ['cond' => 2, 'cond3%sql' => 'RAND()']),
|
||||
);
|
||||
|
||||
|
||||
@@ -487,7 +502,7 @@ Assert::same(
|
||||
'sqlsrv' => "TEST ([cond1] 3) OR ([cond2] RAND()) OR ([cond3] LIKE N'string')",
|
||||
"TEST ([cond1] 3) OR ([cond2] RAND()) OR ([cond3] LIKE 'string')",
|
||||
]),
|
||||
$conn->translate('TEST %or', ['cond1%ex' => 3, 'cond2%ex' => 'RAND()', 'cond3%ex' => ['LIKE %s', 'string']])
|
||||
$conn->translate('TEST %or', ['cond1%ex' => 3, 'cond2%ex' => 'RAND()', 'cond3%ex' => ['LIKE %s', 'string']]),
|
||||
);
|
||||
|
||||
|
||||
@@ -497,7 +512,7 @@ Assert::same(
|
||||
'sqlsrv' => 'SELECT * FROM [test] WHERE [id] LIKE N\'%d%t\' OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY',
|
||||
'SELECT * FROM [test] WHERE [id] LIKE \'%d%t\' LIMIT 10',
|
||||
]),
|
||||
$conn->translate("SELECT * FROM [test] WHERE %n LIKE '%d%t' %lmt", 'id', 10)
|
||||
$conn->translate("SELECT * FROM [test] WHERE %n LIKE '%d%t' %lmt", 'id', 10),
|
||||
);
|
||||
|
||||
|
||||
@@ -506,13 +521,13 @@ $where = [
|
||||
];
|
||||
Assert::same(
|
||||
reformat('SELECT * FROM [tablename] WHERE ([tablename].[column] = 1)'),
|
||||
$conn->translate('SELECT * FROM [tablename] WHERE %and', $where)
|
||||
$conn->translate('SELECT * FROM [tablename] WHERE %and', $where),
|
||||
);
|
||||
|
||||
|
||||
Assert::same(
|
||||
reformat('SELECT FROM ...'),
|
||||
$conn->translate('SELECT FROM ... %lmt', null)
|
||||
$conn->translate('SELECT FROM ... %lmt', null),
|
||||
);
|
||||
|
||||
Assert::same(
|
||||
@@ -520,7 +535,7 @@ Assert::same(
|
||||
'sqlsrv' => "SELECT N'%i'",
|
||||
"SELECT '%i'",
|
||||
]),
|
||||
$conn->translate("SELECT '%i'")
|
||||
$conn->translate("SELECT '%i'"),
|
||||
);
|
||||
|
||||
Assert::same(
|
||||
@@ -528,7 +543,7 @@ Assert::same(
|
||||
'sqlsrv' => "SELECT N'%i'",
|
||||
"SELECT '%i'",
|
||||
]),
|
||||
$conn->translate('SELECT "%i"')
|
||||
$conn->translate('SELECT "%i"'),
|
||||
);
|
||||
|
||||
|
||||
@@ -543,7 +558,7 @@ Assert::same(
|
||||
], [
|
||||
'product_id' => 1,
|
||||
'title' => new Dibi\Expression('SHA1(%s)', 'Test product'),
|
||||
])
|
||||
]),
|
||||
);
|
||||
|
||||
Assert::same(
|
||||
@@ -554,7 +569,7 @@ Assert::same(
|
||||
$conn->translate('UPDATE [products]', [
|
||||
'product_id' => 1,
|
||||
'title' => new Dibi\Expression('SHA1(%s)', 'Test product'),
|
||||
])
|
||||
]),
|
||||
);
|
||||
|
||||
Assert::same(
|
||||
@@ -565,7 +580,7 @@ Assert::same(
|
||||
$conn->translate('UPDATE [products]', [
|
||||
'product_id' => 1,
|
||||
'title' => new Dibi\Expression('SHA1(%s)', 'Test product'),
|
||||
])
|
||||
]),
|
||||
);
|
||||
|
||||
Assert::same(
|
||||
@@ -576,7 +591,7 @@ Assert::same(
|
||||
$conn->translate('SELECT * FROM [products] WHERE', [
|
||||
'product_id' => 1,
|
||||
'title' => new Dibi\Expression('SHA1(%s)', 'Test product'),
|
||||
])
|
||||
]),
|
||||
);
|
||||
|
||||
|
||||
@@ -588,7 +603,7 @@ Assert::same(
|
||||
'top' => 2,
|
||||
]),
|
||||
new Dibi\Expression('number < %i', 100),
|
||||
])
|
||||
]),
|
||||
);
|
||||
|
||||
|
||||
@@ -613,7 +628,7 @@ Assert::same(
|
||||
'sqlsrv' => "INSERT INTO test ([id], [text], [num]) VALUES (1, N'ahoj', 1), (2, N'jak', -1), (3, N'se', 10), (4, SUM(5), 1)",
|
||||
"INSERT INTO test ([id], [text], [num]) VALUES (1, 'ahoj', 1), (2, 'jak', -1), (3, 'se', 10), (4, SUM(5), 1)",
|
||||
]),
|
||||
$conn->translate('INSERT INTO test %m', $array6)
|
||||
$conn->translate('INSERT INTO test %m', $array6),
|
||||
);
|
||||
|
||||
|
||||
@@ -624,12 +639,12 @@ $by = [
|
||||
|
||||
Assert::same(
|
||||
reformat('SELECT * FROM table ORDER BY funkce(nazev_pole) ASC, [jine_pole] DESC'),
|
||||
$conn->translate('SELECT * FROM table ORDER BY %by', $by)
|
||||
$conn->translate('SELECT * FROM table ORDER BY %by', $by),
|
||||
);
|
||||
|
||||
Assert::same(
|
||||
reformat('INSERT INTO [test].*'),
|
||||
$conn->translate('INSERT INTO [test.*]')
|
||||
$conn->translate('INSERT INTO [test.*]'),
|
||||
);
|
||||
|
||||
Assert::exception(function () use ($conn) {
|
||||
@@ -643,23 +658,23 @@ Assert::exception(function () use ($conn) {
|
||||
|
||||
Assert::same(
|
||||
reformat('SELECT * FROM table'),
|
||||
$conn->translate('SELECT', new Dibi\Literal('* FROM table'))
|
||||
$conn->translate('SELECT', new Dibi\Literal('* FROM table')),
|
||||
);
|
||||
|
||||
Assert::same(
|
||||
reformat('SELECT * FROM table'),
|
||||
$conn->translate('SELECT %SQL', new Dibi\Literal('* FROM table'))
|
||||
$conn->translate('SELECT %SQL', new Dibi\Literal('* FROM table')),
|
||||
);
|
||||
|
||||
Assert::same(
|
||||
reformat('SELECT * FROM table'),
|
||||
$conn->translate(new Dibi\Literal('SELECT * FROM table'))
|
||||
$conn->translate(new Dibi\Literal('SELECT * FROM table')),
|
||||
);
|
||||
|
||||
|
||||
Assert::same(
|
||||
reformat('SELECT [a].[b] AS [c.d]'),
|
||||
$conn->translate('SELECT %n AS %N', 'a.b', 'c.d')
|
||||
$conn->translate('SELECT %n AS %N', 'a.b', 'c.d'),
|
||||
);
|
||||
|
||||
|
||||
@@ -677,5 +692,5 @@ Assert::same(
|
||||
'spec2%f' => 1000.00,
|
||||
'spec3%i' => 10000,
|
||||
'spec4' => 10000,
|
||||
], 'WHERE [price]=%f', 123.5)
|
||||
], 'WHERE [price]=%f', 123.5),
|
||||
);
|
||||
|
Reference in New Issue
Block a user