91694dbdd2
FossilOrigin-Name: 658f42257d56a3562dfa8e55023c6e497f55c565cd751d942de3a9e0cb2fa708
73 lines
1.9 KiB
Plaintext
73 lines
1.9 KiB
Plaintext
# 2018-01-08
|
|
#
|
|
# The author disclaims copyright to this source code. In place of
|
|
# a legal notice, here is a blessing:
|
|
#
|
|
# May you do good and not evil.
|
|
# May you find forgiveness for yourself and forgive others.
|
|
# May you share freely, never taking more than you give.
|
|
#
|
|
#***********************************************************************
|
|
#
|
|
# Tests for the sqlite3_normalize() extension function.
|
|
#
|
|
|
|
set testdir [file dirname $argv0]
|
|
source $testdir/tester.tcl
|
|
set testprefix normalize
|
|
|
|
foreach {tnum sql norm} {
|
|
100
|
|
{SELECT * FROM t1 WHERE a IN (1) AND b=51.42}
|
|
{select*from t1 where a in(?,?,?)and b=?;}
|
|
|
|
110
|
|
{SELECT a, b+15, c FROM t1 WHERE d NOT IN (SELECT x FROM t2);}
|
|
{select a,b+?,c from t1 where d not in(select x from t2);}
|
|
|
|
120
|
|
{ SELECT NULL, b FROM t1 -- comment text
|
|
WHERE d IN (WITH t(a) AS (VALUES(5)) /* CTE */
|
|
SELECT a FROM t)
|
|
OR e='hello';
|
|
}
|
|
{select?,b from t1 where d in(with t(a)as(values(?))select a from t)or e=?;}
|
|
|
|
121
|
|
{/*Initial comment*/
|
|
-- another comment line
|
|
SELECT NULL /* comment */ , b FROM t1 -- comment text
|
|
WHERE d IN (WITH t(a) AS (VALUES(5)) /* CTE */
|
|
SELECT a FROM t)
|
|
OR e='hello';
|
|
}
|
|
{select?,b from t1 where d in(with t(a)as(values(?))select a from t)or e=?;}
|
|
|
|
130
|
|
{/* Query containing parameters */
|
|
SELECT x,$::abc(15),y,@abc,z,?99,w FROM t1 /* Trailing comment */}
|
|
{select x,?,y,?,z,?,w from t1;}
|
|
|
|
140
|
|
{/* Long list on the RHS of IN */
|
|
SELECT 15 IN (1,2,3,(SELECT * FROM t1),'xyz',x'abcd',22*(x+5),null);}
|
|
{select?in(?,?,?);}
|
|
|
|
150
|
|
{SELECT x'abc'; -- illegal token}
|
|
{}
|
|
|
|
160
|
|
{SELECT a,NULL,b FROM t1 WHERE c IS NOT NULL or D is null or e=5}
|
|
{select a,?,b from t1 where c is not null or d is null or e=?;}
|
|
|
|
170
|
|
{/* IN list exactly 5 bytes long */
|
|
SELECT * FROM t1 WHERE x IN (1,2,3);}
|
|
{select*from t1 where x in(?,?,?);}
|
|
} {
|
|
do_test $tnum [list sqlite3_normalize $sql] $norm
|
|
}
|
|
|
|
finish_test
|