📄 where.test
字号:
} {100 1 10201 99 2 10000 98 3 9801 sort}do_test where-6.14 { cksort { SELECT * FROM t3 ORDER BY b LIMIT 3 }} {100 1 10201 99 2 10000 98 3 9801 nosort}do_test where-6.15 { cksort { SELECT t3.a, t1.x FROM t3, t1 WHERE t3.a=t1.w ORDER BY t3.a LIMIT 3 }} {1 0 2 1 3 1 nosort}do_test where-6.16 { cksort { SELECT t3.a, t1.x FROM t3, t1 WHERE t3.a=t1.w ORDER BY t1.x, t3.a LIMIT 3 }} {1 0 2 1 3 1 sort}do_test where-6.19 { cksort { SELECT y FROM t1 ORDER BY w LIMIT 3; }} {4 9 16 nosort}do_test where-6.20 { cksort { SELECT y FROM t1 ORDER BY rowid LIMIT 3; }} {4 9 16 nosort}do_test where-6.21 { cksort { SELECT y FROM t1 ORDER BY rowid, y LIMIT 3; }} {4 9 16 nosort}do_test where-6.22 { cksort { SELECT y FROM t1 ORDER BY rowid, y DESC LIMIT 3; }} {4 9 16 nosort}do_test where-6.23 { cksort { SELECT y FROM t1 WHERE y>4 ORDER BY rowid, w, x LIMIT 3; }} {9 16 25 nosort}do_test where-6.24 { cksort { SELECT y FROM t1 WHERE y>=9 ORDER BY rowid, x DESC, w LIMIT 3; }} {9 16 25 nosort}do_test where-6.25 { cksort { SELECT y FROM t1 WHERE y>4 AND y<25 ORDER BY rowid; }} {9 16 nosort}do_test where-6.26 { cksort { SELECT y FROM t1 WHERE y>=4 AND y<=25 ORDER BY oid; }} {4 9 16 25 nosort}do_test where-6.27 { cksort { SELECT y FROM t1 WHERE y<=25 ORDER BY _rowid_, w+y; }} {4 9 16 25 nosort}# Tests for reverse-order sorting.#do_test where-7.1 { cksort { SELECT w FROM t1 WHERE x=3 ORDER BY y; }} {8 9 10 11 12 13 14 15 nosort}do_test where-7.2 { cksort { SELECT w FROM t1 WHERE x=3 ORDER BY y DESC; }} {15 14 13 12 11 10 9 8 nosort}do_test where-7.3 { cksort { SELECT w FROM t1 WHERE x=3 AND y>100 ORDER BY y LIMIT 3; }} {10 11 12 nosort}do_test where-7.4 { cksort { SELECT w FROM t1 WHERE x=3 AND y>100 ORDER BY y DESC LIMIT 3; }} {15 14 13 nosort}do_test where-7.5 { cksort { SELECT w FROM t1 WHERE x=3 AND y>121 ORDER BY y DESC; }} {15 14 13 12 11 nosort}do_test where-7.6 { cksort { SELECT w FROM t1 WHERE x=3 AND y>=121 ORDER BY y DESC; }} {15 14 13 12 11 10 nosort}do_test where-7.7 { cksort { SELECT w FROM t1 WHERE x=3 AND y>=121 AND y<196 ORDER BY y DESC; }} {12 11 10 nosort}do_test where-7.8 { cksort { SELECT w FROM t1 WHERE x=3 AND y>=121 AND y<=196 ORDER BY y DESC; }} {13 12 11 10 nosort}do_test where-7.9 { cksort { SELECT w FROM t1 WHERE x=3 AND y>121 AND y<=196 ORDER BY y DESC; }} {13 12 11 nosort}do_test where-7.10 { cksort { SELECT w FROM t1 WHERE x=3 AND y>100 AND y<196 ORDER BY y DESC; }} {12 11 10 nosort}do_test where-7.11 { cksort { SELECT w FROM t1 WHERE x=3 AND y>=121 AND y<196 ORDER BY y; }} {10 11 12 nosort}do_test where-7.12 { cksort { SELECT w FROM t1 WHERE x=3 AND y>=121 AND y<=196 ORDER BY y; }} {10 11 12 13 nosort}do_test where-7.13 { cksort { SELECT w FROM t1 WHERE x=3 AND y>121 AND y<=196 ORDER BY y; }} {11 12 13 nosort}do_test where-7.14 { cksort { SELECT w FROM t1 WHERE x=3 AND y>100 AND y<196 ORDER BY y; }} {10 11 12 nosort}do_test where-7.15 { cksort { SELECT w FROM t1 WHERE x=3 AND y<81 ORDER BY y; }} {nosort}do_test where-7.16 { cksort { SELECT w FROM t1 WHERE x=3 AND y<=81 ORDER BY y; }} {8 nosort}do_test where-7.17 { cksort { SELECT w FROM t1 WHERE x=3 AND y>256 ORDER BY y; }} {nosort}do_test where-7.18 { cksort { SELECT w FROM t1 WHERE x=3 AND y>=256 ORDER BY y; }} {15 nosort}do_test where-7.19 { cksort { SELECT w FROM t1 WHERE x=3 AND y<81 ORDER BY y DESC; }} {nosort}do_test where-7.20 { cksort { SELECT w FROM t1 WHERE x=3 AND y<=81 ORDER BY y DESC; }} {8 nosort}do_test where-7.21 { cksort { SELECT w FROM t1 WHERE x=3 AND y>256 ORDER BY y DESC; }} {nosort}do_test where-7.22 { cksort { SELECT w FROM t1 WHERE x=3 AND y>=256 ORDER BY y DESC; }} {15 nosort}do_test where-7.23 { cksort { SELECT w FROM t1 WHERE x=0 AND y<4 ORDER BY y; }} {nosort}do_test where-7.24 { cksort { SELECT w FROM t1 WHERE x=0 AND y<=4 ORDER BY y; }} {1 nosort}do_test where-7.25 { cksort { SELECT w FROM t1 WHERE x=6 AND y>10201 ORDER BY y; }} {nosort}do_test where-7.26 { cksort { SELECT w FROM t1 WHERE x=6 AND y>=10201 ORDER BY y; }} {100 nosort}do_test where-7.27 { cksort { SELECT w FROM t1 WHERE x=0 AND y<4 ORDER BY y DESC; }} {nosort}do_test where-7.28 { cksort { SELECT w FROM t1 WHERE x=0 AND y<=4 ORDER BY y DESC; }} {1 nosort}do_test where-7.29 { cksort { SELECT w FROM t1 WHERE x=6 AND y>10201 ORDER BY y DESC; }} {nosort}do_test where-7.30 { cksort { SELECT w FROM t1 WHERE x=6 AND y>=10201 ORDER BY y DESC; }} {100 nosort}do_test where-7.31 { cksort { SELECT y FROM t1 ORDER BY rowid DESC LIMIT 3 }} {10201 10000 9801 nosort}do_test where-7.32 { cksort { SELECT y FROM t1 WHERE y<25 ORDER BY rowid DESC }} {16 9 4 nosort}do_test where-7.33 { cksort { SELECT y FROM t1 WHERE y<=25 ORDER BY rowid DESC }} {25 16 9 4 nosort}do_test where-7.34 { cksort { SELECT y FROM t1 WHERE y<25 AND y>4 ORDER BY rowid DESC, y DESC }} {16 9 nosort}do_test where-7.35 { cksort { SELECT y FROM t1 WHERE y<25 AND y>=4 ORDER BY rowid DESC }} {16 9 4 nosort}do_test where-8.1 { execsql { CREATE TABLE t4 AS SELECT * FROM t1; CREATE INDEX i4xy ON t4(x,y); } cksort { SELECT w FROM t4 WHERE x=4 and y<1000 ORDER BY y DESC limit 3; }} {30 29 28 nosort}do_test where-8.2 { execsql { DELETE FROM t4; } cksort { SELECT w FROM t4 WHERE x=4 and y<1000 ORDER BY y DESC limit 3; }} {nosort}# Make sure searches with an index work with an empty table.#do_test where-9.1 { execsql { CREATE TABLE t5(x PRIMARY KEY); SELECT * FROM t5 WHERE x<10; }} {}do_test where-9.2 { execsql { SELECT * FROM t5 WHERE x<10 ORDER BY x DESC; }} {}do_test where-9.3 { execsql { SELECT * FROM t5 WHERE x=10; }} {}do_test where-10.1 { execsql { SELECT 1 WHERE abs(random())<0 }} {}do_test where-10.2 { proc tclvar_func {vname} {return [set ::$vname]} db function tclvar tclvar_func set ::v1 0 execsql { SELECT count(*) FROM t1 WHERE tclvar('v1'); }} {0}do_test where-10.3 { set ::v1 1 execsql { SELECT count(*) FROM t1 WHERE tclvar('v1'); }} {100}do_test where-10.4 { set ::v1 1 proc tclvar_func {vname} { upvar #0 $vname v set v [expr {!$v}] return $v } execsql { SELECT count(*) FROM t1 WHERE tclvar('v1'); }} {50}# Ticket #1376. The query below was causing a segfault.# The problem was the age-old error of calling realloc() on an# array while there are still pointers to individual elements of# that array.#do_test where-11.1 { execsql { CREATE TABLE t99(Dte INT, X INT); DELETE FROM t99 WHERE (Dte = 2451337) OR (Dte = 2451339) OR (Dte BETWEEN 2451345 AND 2451347) OR (Dte = 2451351) OR (Dte BETWEEN 2451355 AND 2451356) OR (Dte = 2451358) OR (Dte = 2451362) OR (Dte = 2451365) OR (Dte = 2451367) OR (Dte BETWEEN 2451372 AND 2451376) OR (Dte BETWEEN 2451382 AND 2451384) OR (Dte = 2451387) OR (Dte BETWEEN 2451389 AND 2451391) OR (Dte BETWEEN 2451393 AND 2451395) OR (Dte = 2451400) OR (Dte = 2451402) OR (Dte = 2451404) OR (Dte BETWEEN 2451416 AND 2451418) OR (Dte = 2451422) OR (Dte = 2451426) OR (Dte BETWEEN 2451445 AND 2451446) OR (Dte = 2451456) OR (Dte = 2451458) OR (Dte BETWEEN 2451465 AND 2451467) OR (Dte BETWEEN 2451469 AND 2451471) OR (Dte = 2451474) OR (Dte BETWEEN 2451477 AND 2451501) OR (Dte BETWEEN 2451503 AND 2451509) OR (Dte BETWEEN 2451511 AND 2451514) OR (Dte BETWEEN 2451518 AND 2451521) OR (Dte BETWEEN 2451523 AND 2451531) OR (Dte BETWEEN 2451533 AND 2451537) OR (Dte BETWEEN 2451539 AND 2451544) OR (Dte BETWEEN 2451546 AND 2451551) OR (Dte BETWEEN 2451553 AND 2451555) OR (Dte = 2451557) OR (Dte BETWEEN 2451559 AND 2451561) OR (Dte = 2451563) OR (Dte BETWEEN 2451565 AND 2451566) OR (Dte BETWEEN 2451569 AND 2451571) OR (Dte = 2451573) OR (Dte = 2451575) OR (Dte = 2451577) OR (Dte = 2451581) OR (Dte BETWEEN 2451583 AND 2451586) OR (Dte BETWEEN 2451588 AND 2451592) OR (Dte BETWEEN 2451596 AND 2451598) OR (Dte = 2451600) OR (Dte BETWEEN 2451602 AND 2451603) OR (Dte = 2451606) OR (Dte = 2451611); }} {}# Ticket #2116: Make sure sorting by index works well with nn INTEGER PRIMARY# KEY.#do_test where-12.1 { execsql { CREATE TABLE t6(a INTEGER PRIMARY KEY, b TEXT); INSERT INTO t6 VALUES(1,'one'); INSERT INTO t6 VALUES(4,'four'); CREATE INDEX t6i1 ON t6(b); } cksort { SELECT * FROM t6 ORDER BY b; }} {4 four 1 one nosort}do_test where-12.2 { cksort { SELECT * FROM t6 ORDER BY b, a; }} {4 four 1 one nosort}do_test where-12.3 { cksort { SELECT * FROM t6 ORDER BY a; }} {1 one 4 four nosort}do_test where-12.4 { cksort { SELECT * FROM t6 ORDER BY a, b; }} {1 one 4 four nosort}do_test where-12.5 { cksort { SELECT * FROM t6 ORDER BY b DESC; }} {1 one 4 four nosort}do_test where-12.6 { cksort { SELECT * FROM t6 ORDER BY b DESC, a DESC; }} {1 one 4 four nosort}do_test where-12.7 { cksort { SELECT * FROM t6 ORDER BY b DESC, a ASC; }} {1 one 4 four sort}do_test where-12.8 { cksort { SELECT * FROM t6 ORDER BY b ASC, a DESC; }} {4 four 1 one sort}do_test where-12.9 { cksort { SELECT * FROM t6 ORDER BY a DESC; }} {4 four 1 one nosort}do_test where-12.10 { cksort { SELECT * FROM t6 ORDER BY a DESC, b DESC; }} {4 four 1 one nosort}do_test where-12.11 { cksort { SELECT * FROM t6 ORDER BY a DESC, b ASC; }} {4 four 1 one nosort}do_test where-12.12 { cksort { SELECT * FROM t6 ORDER BY a ASC, b DESC; }} {1 one 4 four nosort}do_test where-13.1 { execsql { CREATE TABLE t7(a INTEGER PRIMARY KEY, b TEXT); INSERT INTO t7 VALUES(1,'one'); INSERT INTO t7 VALUES(4,'four'); CREATE INDEX t7i1 ON t7(b); } cksort { SELECT * FROM t7 ORDER BY b; }} {4 four 1 one nosort}do_test where-13.2 { cksort { SELECT * FROM t7 ORDER BY b, a; }} {4 four 1 one nosort}do_test where-13.3 { cksort { SELECT * FROM t7 ORDER BY a; }} {1 one 4 four nosort}do_test where-13.4 { cksort { SELECT * FROM t7 ORDER BY a, b; }} {1 one 4 four nosort}do_test where-13.5 { cksort { SELECT * FROM t7 ORDER BY b DESC; }} {1 one 4 four nosort}do_test where-13.6 { cksort { SELECT * FROM t7 ORDER BY b DESC, a DESC; }} {1 one 4 four nosort}do_test where-13.7 { cksort { SELECT * FROM t7 ORDER BY b DESC, a ASC; }} {1 one 4 four sort}do_test where-13.8 { cksort { SELECT * FROM t7 ORDER BY b ASC, a DESC; }} {4 four 1 one sort}do_test where-13.9 { cksort { SELECT * FROM t7 ORDER BY a DESC; }} {4 four 1 one nosort}do_test where-13.10 { cksort { SELECT * FROM t7 ORDER BY a DESC, b DESC; }} {4 four 1 one nosort}do_test where-13.11 { cksort { SELECT * FROM t7 ORDER BY a DESC, b ASC; }} {4 four 1 one nosort}do_test where-13.12 { cksort { SELECT * FROM t7 ORDER BY a ASC, b DESC; }} {1 one 4 four nosort}# Ticket #2211.## When optimizing out ORDER BY clauses, make sure that trailing terms# of the ORDER BY clause do not reference other tables in a join.#do_test where-14.1 { execsql { CREATE TABLE t8(a INTEGER PRIMARY KEY, b TEXT UNIQUE); INSERT INTO t8 VALUES(1,'one'); INSERT INTO t8 VALUES(4,'four'); } cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.a, y.b } } {1/4 1/1 4/4 4/1 sort}do_test where-14.2 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.a, y.b DESC } } {1/1 1/4 4/1 4/4 sort}do_test where-14.3 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.a, x.b } } {1/1 1/4 4/1 4/4 nosort}do_test where-14.4 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.a, x.b DESC } } {1/1 1/4 4/1 4/4 nosort}btree_breakpointdo_test where-14.5 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.b, x.a||x.b } } {4/1 4/4 1/1 1/4 nosort}do_test where-14.6 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.b, x.a||x.b DESC } } {4/1 4/4 1/1 1/4 nosort}do_test where-14.7 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.b, y.a||y.b } } {4/1 4/4 1/1 1/4 sort}do_test where-14.7.1 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.b, x.a, y.a||y.b } } {4/1 4/4 1/1 1/4 sort}do_test where-14.7.2 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.b, x.a, x.a||x.b } } {4/1 4/4 1/1 1/4 nosort}do_test where-14.8 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.b, y.a||y.b DESC } } {4/4 4/1 1/4 1/1 sort}do_test where-14.9 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.b, x.a||y.b } } {4/4 4/1 1/4 1/1 sort}do_test where-14.10 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.b, x.a||y.b DESC } } {4/1 4/4 1/1 1/4 sort}do_test where-14.11 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.b, y.a||x.b } } {4/1 4/4 1/1 1/4 sort}do_test where-14.12 { cksort { SELECT x.a || '/' || y.a FROM t8 x, t8 y ORDER BY x.b, y.a||x.b DESC } } {4/4 4/1 1/4 1/1 sort}# Ticket #2445.## There was a crash that could occur when a where clause contains an# alias for an expression in the result set, and that expression retrieves# a column of the second or subsequent table in a join.#do_test where-15.1 { execsql { CREATE TEMP TABLE t1 (a, b, c, d, e); CREATE TEMP TABLE t2 (f); SELECT t1.e AS alias FROM t2, t1 WHERE alias = 1 ; }} {}integrity_check {where-99.0}finish_test
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -