Adding upstream version 1.37.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
42613ad5c6
commit
271b368104
1329 changed files with 4727104 additions and 0 deletions
138
testdata/tcl/bestindexA.test
vendored
Normal file
138
testdata/tcl/bestindexA.test
vendored
Normal file
|
@ -0,0 +1,138 @@
|
|||
# 2020-01-29
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
#***********************************************************************
|
||||
#
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
set testprefix bestindexA
|
||||
|
||||
ifcapable !vtab {
|
||||
finish_test
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
proc vtab_command {method args} {
|
||||
switch -- $method {
|
||||
xConnect {
|
||||
return "CREATE TABLE x(a, b, c)"
|
||||
}
|
||||
|
||||
xBestIndex {
|
||||
set hdl [lindex $args 0]
|
||||
set clist [$hdl constraints]
|
||||
foreach c $clist {
|
||||
array set C $c
|
||||
lappend ::vtab_constraints [list $C(op) $C(column)]
|
||||
}
|
||||
return [list]
|
||||
}
|
||||
|
||||
xFilter {
|
||||
return ""
|
||||
}
|
||||
|
||||
xFindFunction {
|
||||
foreach {nArg name} $args {}
|
||||
if {$nArg==2 && $name=="even"} {
|
||||
return 152
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return {}
|
||||
}
|
||||
|
||||
register_tcl_module db
|
||||
do_execsql_test 1.0 {
|
||||
CREATE VIRTUAL TABLE t1 USING tcl(vtab_command);
|
||||
}
|
||||
|
||||
proc do_xbestindex_test {tn sql res} {
|
||||
set script [subst {
|
||||
execsql "$sql"
|
||||
set ::vtab_constraints
|
||||
}]
|
||||
|
||||
uplevel [list do_test $tn $script [list {*}$res]]
|
||||
set ::vtab_constraints [list]
|
||||
}
|
||||
|
||||
do_xbestindex_test 1.1 {
|
||||
SELECT * FROM t1 WHERE a=?
|
||||
} {
|
||||
{eq 0}
|
||||
}
|
||||
|
||||
do_xbestindex_test 1.2 {
|
||||
SELECT * FROM t1 WHERE a=? LIMIT 10
|
||||
} {
|
||||
{eq 0}
|
||||
{limit 0}
|
||||
}
|
||||
|
||||
do_xbestindex_test 1.3 {
|
||||
SELECT * FROM t1 WHERE a=? AND (b+1)=? LIMIT 10
|
||||
} {
|
||||
{eq 0}
|
||||
}
|
||||
|
||||
proc error_function {args} { error "not a function!" }
|
||||
db function even error_function
|
||||
|
||||
do_xbestindex_test 1.4 {
|
||||
SELECT * FROM t1 WHERE even(a, ?)
|
||||
} {
|
||||
{152 0}
|
||||
}
|
||||
|
||||
do_xbestindex_test 1.5 {
|
||||
SELECT * FROM t1 WHERE b=10 AND even(a, ?)
|
||||
} {
|
||||
{eq 1}
|
||||
{152 0}
|
||||
}
|
||||
|
||||
do_xbestindex_test 1.6 {
|
||||
SELECT * FROM t1 WHERE b=10 LIMIT 10
|
||||
} {
|
||||
{eq 1}
|
||||
{limit 0}
|
||||
}
|
||||
|
||||
do_xbestindex_test 1.7 {
|
||||
SELECT * FROM t1 WHERE even(b,?) LIMIT 10
|
||||
} {
|
||||
{152 1}
|
||||
{limit 0}
|
||||
}
|
||||
|
||||
do_xbestindex_test 1.8 {
|
||||
SELECT * FROM t1 WHERE b!=? LIMIT 10
|
||||
} {
|
||||
{ne 1}
|
||||
{limit 0}
|
||||
}
|
||||
|
||||
do_xbestindex_test 1.9 {
|
||||
SELECT * FROM t1 WHERE ?=a LIMIT 10
|
||||
} {
|
||||
{eq 0}
|
||||
{limit 0}
|
||||
}
|
||||
|
||||
|
||||
finish_test
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue