mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Add simple tests for new sqlite3BtreeCursorHint() functionality.
FossilOrigin-Name: 1efa6ed584172291edce78faf9021e577583d03b
This commit is contained in:
72
test/cursorhint.test
Normal file
72
test/cursorhint.test
Normal file
@ -0,0 +1,72 @@
|
||||
# 2014 July 15
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
#***********************************************************************
|
||||
# This file implements regression tests for SQLite library.
|
||||
#
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
set testprefix cursorhint
|
||||
|
||||
do_execsql_test 1.0 {
|
||||
CREATE TABLE t1(a,b);
|
||||
CREATE TABLE t2(x,y);
|
||||
INSERT INTO t1 VALUES(10, 15);
|
||||
INSERT INTO t1 VALUES(20, 25);
|
||||
INSERT INTO t2 VALUES('ten', 'fifteen');
|
||||
INSERT INTO t2 VALUES('twenty', 'twentyfive');
|
||||
PRAGMA automatic_index = 0;
|
||||
}
|
||||
|
||||
proc H {expr} {
|
||||
lappend ::cursorhint $expr
|
||||
}
|
||||
|
||||
proc do_cursorhint_test {tn sql hints} {
|
||||
cursorhint_hook H
|
||||
set ::cursorhint [list]
|
||||
set testbody [subst {
|
||||
execsql {$sql}
|
||||
set ::cursorhint
|
||||
}]
|
||||
uplevel [list do_test $tn $testbody [list {*}$hints]]
|
||||
cursorhint_hook
|
||||
}
|
||||
|
||||
|
||||
do_cursorhint_test 1.1 {
|
||||
SELECT * FROM t1 CROSS JOIN t2 WHERE a=x;
|
||||
} {
|
||||
{(10 == col(0))}
|
||||
{(20 == col(0))}
|
||||
}
|
||||
|
||||
do_cursorhint_test 1.2 {
|
||||
SELECT * FROM t2 CROSS JOIN t1 WHERE a=x;
|
||||
} {
|
||||
{(col(0) == 'ten')}
|
||||
{(col(0) == 'twenty')}
|
||||
}
|
||||
|
||||
do_cursorhint_test 1.3 {
|
||||
SELECT * FROM t1 CROSS JOIN t2 WHERE b=15;
|
||||
} {
|
||||
{(col(1) == 15)}
|
||||
}
|
||||
|
||||
do_cursorhint_test 1.3 {
|
||||
SELECT * FROM t1 CROSS JOIN t2 WHERE y=b+1;
|
||||
} {
|
||||
{(col(1) == (15 + 1))}
|
||||
{(col(1) == (25 + 1))}
|
||||
}
|
||||
|
||||
|
||||
finish_test
|
Reference in New Issue
Block a user