From: dan Date: Mon, 15 Nov 2010 16:12:58 +0000 (+0000) Subject: Change some test cases to account for the new EXPLAIN QUERY PLAN output. X-Git-Tag: version-3.7.4~57 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3985479b9df5282c425708b813b12ec1b55b8600;p=thirdparty%2Fsqlite.git Change some test cases to account for the new EXPLAIN QUERY PLAN output. FossilOrigin-Name: 88a854e18fc6bd619fa8d8a911abff50a9b76b9e --- diff --git a/ext/rtree/rtree6.test b/ext/rtree/rtree6.test index 0a65c15f50..0a29f44165 100644 --- a/ext/rtree/rtree6.test +++ b/ext/rtree/rtree6.test @@ -71,39 +71,39 @@ do_test rtree6-1.5 { rtree_strategy {SELECT * FROM t1,t2 WHERE k=+ii AND x1<10} } {Ca} -do_test rtree6.2.1 { - query_plan {SELECT * FROM t1,t2 WHERE k=+ii AND x1<10} -} [list \ - {TABLE t1 VIRTUAL TABLE INDEX 2:Ca} \ - {TABLE t2 USING PRIMARY KEY} \ -] - -do_test rtree6.2.2 { - query_plan {SELECT * FROM t1,t2 WHERE k=ii AND x1<10} -} [list \ - {TABLE t1 VIRTUAL TABLE INDEX 2:Ca} \ - {TABLE t2 USING PRIMARY KEY} \ -] - -do_test rtree6.2.3 { - query_plan {SELECT * FROM t1,t2 WHERE k=ii} -} [list \ - {TABLE t1 VIRTUAL TABLE INDEX 2:} \ - {TABLE t2 USING PRIMARY KEY} \ -] - -do_test rtree6.2.4 { - query_plan {SELECT * FROM t1,t2 WHERE v=10 and x1<10 and x2>10} -} [list \ - {TABLE t1 VIRTUAL TABLE INDEX 2:CaEb} \ - {TABLE t2} \ -] - -do_test rtree6.2.5 { - query_plan {SELECT * FROM t1,t2 WHERE k=ii AND x110 +} { + 0 0 0 {SCAN TABLE t1 VIRTUAL TABLE INDEX 2:CaEb (~0 rows)} + 0 1 1 {SCAN TABLE t2 (~100000 rows)} +} + +do_eqp_test rtree6.2.5 { + SELECT * FROM t1,t2 WHERE k=ii AND x1500 AND y>700" -} {0 0 {TABLE t1 WITH INDEX t1_y}} -do_test analyze2-2.3 { - eqp "SELECT * FROM t1 WHERE x>700 AND y>500" -} {0 0 {TABLE t1 WITH INDEX t1_x}} -do_test analyze2-2.3 { - eqp "SELECT * FROM t1 WHERE y>700 AND x>500" -} {0 0 {TABLE t1 WITH INDEX t1_y}} -do_test analyze2-2.4 { - eqp "SELECT * FROM t1 WHERE y>500 AND x>700" -} {0 0 {TABLE t1 WITH INDEX t1_x}} -do_test analyze2-2.5 { - eqp "SELECT * FROM t1 WHERE x BETWEEN 100 AND 200 AND y BETWEEN 400 AND 700" -} {0 0 {TABLE t1 WITH INDEX t1_x}} -do_test analyze2-2.6 { - eqp "SELECT * FROM t1 WHERE x BETWEEN 100 AND 500 AND y BETWEEN 400 AND 700" -} {0 0 {TABLE t1 WITH INDEX t1_y}} -do_test analyze2-2.7 { - eqp "SELECT * FROM t1 WHERE x BETWEEN -400 AND -300 AND y BETWEEN 100 AND 300" -} {0 0 {TABLE t1 WITH INDEX t1_x}} -do_test analyze2-2.8 { - eqp "SELECT * FROM t1 WHERE x BETWEEN 100 AND 300 AND y BETWEEN -400 AND -300" -} {0 0 {TABLE t1 WITH INDEX t1_y}} -do_test analyze2-2.9 { - eqp "SELECT * FROM t1 WHERE x BETWEEN 500 AND 100 AND y BETWEEN 100 AND 300" -} {0 0 {TABLE t1 WITH INDEX t1_x}} -do_test analyze2-2.10 { - eqp "SELECT * FROM t1 WHERE x BETWEEN 100 AND 300 AND y BETWEEN 500 AND 100" -} {0 0 {TABLE t1 WITH INDEX t1_y}} +do_eqp_test 2.2 { + SELECT * FROM t1 WHERE x>500 AND y>700 +} { + 0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~100 rows)} +} +do_eqp_test 2.3 { + SELECT * FROM t1 WHERE x>700 AND y>500 +} { + 0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x>?) (~100 rows)} +} +do_eqp_test 2.3 { + SELECT * FROM t1 WHERE y>700 AND x>500 +} { + 0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~100 rows)} +} +do_eqp_test 2.4 { + SELECT * FROM t1 WHERE y>500 AND x>700 +} { + 0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x>?) (~100 rows)} +} +do_eqp_test 2.5 { + SELECT * FROM t1 WHERE x BETWEEN 100 AND 200 AND y BETWEEN 400 AND 700 +} { + 0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x>? AND x? AND y? AND x? AND y? AND x? AND y'h'" -} {0 0 {TABLE t1 WITH INDEX t1_y}} -do_test analyze2-3.6 { - eqp "SELECT * FROM t1 WHERE x<444 AND y>'h'" -} {0 0 {TABLE t1 WITH INDEX t1_y}} -do_test analyze2-3.7 { - eqp "SELECT * FROM t1 WHERE x<221 AND y>'g'" -} {0 0 {TABLE t1 WITH INDEX t1_x}} +do_eqp_test 3.3 { + SELECT * FROM t1 WHERE x BETWEEN 100 AND 500 AND y BETWEEN 'a' AND 'b' +} { + 0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>? AND y? AND x'h' +} { + 0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~66 rows)} +} +do_eqp_test 3.6 { + SELECT * FROM t1 WHERE x<444 AND y>'h' +} { + 0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~66 rows)} +} +do_eqp_test 3.7 { + SELECT * FROM t1 WHERE x<221 AND y>'g' +} { + 0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x 'A' AND a < 'C' AND b > 'A' AND b < 'C'" -} {0 0 {TABLE t3 WITH INDEX t3b}} -do_test analyze2-4.5 { - eqp "SELECT * FROM t3 WHERE a > 'A' AND a < 'c' AND b > 'A' AND b < 'c'" -} {0 0 {TABLE t3 WITH INDEX t3a}} +do_eqp_test 4.4 { + SELECT * FROM t3 WHERE a > 'A' AND a < 'C' AND b > 'A' AND b < 'C' +} { + 0 0 0 {SEARCH TABLE t3 USING INDEX t3b (b>? AND b 'A' AND a < 'c' AND b > 'A' AND b < 'c' +} { + 0 0 0 {SEARCH TABLE t3 USING INDEX t3a (a>? AND a'ccc'" - } {0 0 {TABLE t4 WITH INDEX t4x}} - do_test analyze2-5.4 { - eqp "SELECT * FROM t4 AS t41, t4 AS t42 WHERE t41.x>'ccc' AND t42.x>'ggg'" - } {0 1 {TABLE t4 AS t42 WITH INDEX t4x} 1 0 {TABLE t4 AS t41 WITH INDEX t4x}} - do_test analyze2-5.5 { - eqp "SELECT * FROM t4 AS t41, t4 AS t42 WHERE t41.x>'ddd' AND t42.x>'ccc'" - } {0 0 {TABLE t4 AS t41 WITH INDEX t4x} 1 1 {TABLE t4 AS t42 WITH INDEX t4x}} + do_eqp_test 5.3 { + SELECT * FROM t4 WHERE x>'ccc' + } {0 0 0 {SEARCH TABLE t4 USING COVERING INDEX t4x (x>?) (~800 rows)}} + do_eqp_test 5.4 { + SELECT * FROM t4 AS t41, t4 AS t42 WHERE t41.x>'ccc' AND t42.x>'ggg' + } { + 0 0 1 {SEARCH TABLE t4 AS t42 USING COVERING INDEX t4x (x>?) (~300 rows)} + 0 1 0 {SEARCH TABLE t4 AS t41 USING COVERING INDEX t4x (x>?) (~800 rows)} + } + do_eqp_test 5.5 { + SELECT * FROM t4 AS t41, t4 AS t42 WHERE t41.x>'ddd' AND t42.x>'ccc' + } { + 0 0 0 {SEARCH TABLE t4 AS t41 USING COVERING INDEX t4x (x>?) (~700 rows)} + 0 1 1 {SEARCH TABLE t4 AS t42 USING COVERING INDEX t4x (x>?) (~800 rows)} + } } #-------------------------------------------------------------------- @@ -306,7 +348,7 @@ do_test analyze2-6.1.1 { t5.a = 1 AND t6.a = 1 AND t6.b = 1 } -} {0 1 {TABLE t6 WITH INDEX t6i} 1 0 {TABLE t5 USING PRIMARY KEY}} +} {0 0 1 {SEARCH TABLE t6 USING COVERING INDEX t6i (a=? AND b=?) (~9 rows)} 0 1 0 {SEARCH TABLE t5 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-6.1.2 { db cache flush execsql ANALYZE @@ -314,14 +356,14 @@ do_test analyze2-6.1.2 { t5.a = 1 AND t6.a = 1 AND t6.b = 1 } -} {0 0 {TABLE t5 WITH INDEX t5i} 1 1 {TABLE t6 USING PRIMARY KEY}} +} {0 0 0 {SEARCH TABLE t5 USING COVERING INDEX t5i (a=?) (~1 rows)} 0 1 1 {SEARCH TABLE t6 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-6.1.3 { sqlite3 db test.db eqp { SELECT * FROM t5,t6 WHERE t5.rowid=t6.rowid AND t5.a = 1 AND t6.a = 1 AND t6.b = 1 } -} {0 0 {TABLE t5 WITH INDEX t5i} 1 1 {TABLE t6 USING PRIMARY KEY}} +} {0 0 0 {SEARCH TABLE t5 USING COVERING INDEX t5i (a=?) (~1 rows)} 0 1 1 {SEARCH TABLE t6 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-6.1.4 { execsql { PRAGMA writable_schema = 1; @@ -332,7 +374,7 @@ do_test analyze2-6.1.4 { t5.a = 1 AND t6.a = 1 AND t6.b = 1 } -} {0 0 {TABLE t5 WITH INDEX t5i} 1 1 {TABLE t6 USING PRIMARY KEY}} +} {0 0 0 {SEARCH TABLE t5 USING COVERING INDEX t5i (a=?) (~1 rows)} 0 1 1 {SEARCH TABLE t6 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-6.1.5 { execsql { PRAGMA writable_schema = 1; @@ -343,7 +385,7 @@ do_test analyze2-6.1.5 { t5.a = 1 AND t6.a = 1 AND t6.b = 1 } -} {0 1 {TABLE t6 WITH INDEX t6i} 1 0 {TABLE t5 USING PRIMARY KEY}} +} {0 0 1 {SEARCH TABLE t6 USING COVERING INDEX t6i (a=? AND b=?) (~9 rows)} 0 1 0 {SEARCH TABLE t5 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-6.1.6 { execsql { PRAGMA writable_schema = 1; @@ -354,7 +396,7 @@ do_test analyze2-6.1.6 { t5.a = 1 AND t6.a = 1 AND t6.b = 1 } -} {0 0 {TABLE t5 WITH INDEX t5i} 1 1 {TABLE t6 USING PRIMARY KEY}} +} {0 0 0 {SEARCH TABLE t5 USING COVERING INDEX t5i (a=?) (~1 rows)} 0 1 1 {SEARCH TABLE t6 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-6.2.1 { execsql { @@ -366,7 +408,7 @@ do_test analyze2-6.2.1 { t5.a>1 AND t5.a<15 AND t6.a>1 } -} {0 0 {TABLE t5 WITH INDEX t5i} 1 1 {TABLE t6 USING PRIMARY KEY}} +} {0 0 0 {SEARCH TABLE t5 USING COVERING INDEX t5i (a>? AND a1 AND t5.a<15 AND t6.a>1 } -} {0 1 {TABLE t6 WITH INDEX t6i} 1 0 {TABLE t5 USING PRIMARY KEY}} +} {0 0 1 {SEARCH TABLE t6 USING COVERING INDEX t6i (a>?) (~2 rows)} 0 1 0 {SEARCH TABLE t5 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-6.2.3 { sqlite3 db test.db eqp { SELECT * FROM t5,t6 WHERE t5.rowid=t6.rowid AND t5.a>1 AND t5.a<15 AND t6.a>1 } -} {0 1 {TABLE t6 WITH INDEX t6i} 1 0 {TABLE t5 USING PRIMARY KEY}} +} {0 0 1 {SEARCH TABLE t6 USING COVERING INDEX t6i (a>?) (~2 rows)} 0 1 0 {SEARCH TABLE t5 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-6.2.4 { execsql { PRAGMA writable_schema = 1; @@ -392,7 +434,7 @@ do_test analyze2-6.2.4 { t5.a>1 AND t5.a<15 AND t6.a>1 } -} {0 0 {TABLE t5 WITH INDEX t5i} 1 1 {TABLE t6 USING PRIMARY KEY}} +} {0 0 0 {SEARCH TABLE t5 USING COVERING INDEX t5i (a>? AND a1 AND t5.a<15 AND t6.a>1 } -} {0 0 {TABLE t5 WITH INDEX t5i} 1 1 {TABLE t6 USING PRIMARY KEY}} +} {0 0 0 {SEARCH TABLE t5 USING COVERING INDEX t5i (a>? AND a1 AND t5.a<15 AND t6.a>1 } -} {0 1 {TABLE t6 WITH INDEX t6i} 1 0 {TABLE t5 USING PRIMARY KEY}} +} {0 0 1 {SEARCH TABLE t6 USING COVERING INDEX t6i (a>?) (~2 rows)} 0 1 0 {SEARCH TABLE t5 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} #-------------------------------------------------------------------- # These tests, analyze2-7.*, test that the sqlite_stat2 functionality @@ -459,7 +501,7 @@ ifcapable shared_cache { t5.a>1 AND t5.a<15 AND t6.a>1 } db1 - } {0 1 {TABLE t6 WITH INDEX t6i} 1 0 {TABLE t5 USING PRIMARY KEY}} + } {0 0 1 {SEARCH TABLE t6 USING COVERING INDEX t6i (a>?) (~2 rows)} 0 1 0 {SEARCH TABLE t5 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-7.6 { incr_schema_cookie test.db execsql { SELECT * FROM sqlite_master } db2 @@ -467,7 +509,7 @@ ifcapable shared_cache { t5.a>1 AND t5.a<15 AND t6.a>1 } db2 - } {0 1 {TABLE t6 WITH INDEX t6i} 1 0 {TABLE t5 USING PRIMARY KEY}} + } {0 0 1 {SEARCH TABLE t6 USING COVERING INDEX t6i (a>?) (~2 rows)} 0 1 0 {SEARCH TABLE t5 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-7.7 { incr_schema_cookie test.db execsql { SELECT * FROM sqlite_master } db1 @@ -475,7 +517,7 @@ ifcapable shared_cache { t5.a>1 AND t5.a<15 AND t6.a>1 } db1 - } {0 1 {TABLE t6 WITH INDEX t6i} 1 0 {TABLE t5 USING PRIMARY KEY}} + } {0 0 1 {SEARCH TABLE t6 USING COVERING INDEX t6i (a>?) (~2 rows)} 0 1 0 {SEARCH TABLE t5 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-7.8 { execsql { DELETE FROM sqlite_stat2 } db2 @@ -484,14 +526,14 @@ ifcapable shared_cache { t5.a>1 AND t5.a<15 AND t6.a>1 } db1 - } {0 1 {TABLE t6 WITH INDEX t6i} 1 0 {TABLE t5 USING PRIMARY KEY}} + } {0 0 1 {SEARCH TABLE t6 USING COVERING INDEX t6i (a>?) (~2 rows)} 0 1 0 {SEARCH TABLE t5 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-7.9 { execsql { SELECT * FROM sqlite_master } db2 eqp { SELECT * FROM t5,t6 WHERE t5.rowid=t6.rowid AND t5.a>1 AND t5.a<15 AND t6.a>1 } db2 - } {0 1 {TABLE t6 WITH INDEX t6i} 1 0 {TABLE t5 USING PRIMARY KEY}} + } {0 0 1 {SEARCH TABLE t6 USING COVERING INDEX t6i (a>?) (~2 rows)} 0 1 0 {SEARCH TABLE t5 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}} do_test analyze2-7.10 { incr_schema_cookie test.db @@ -500,7 +542,7 @@ ifcapable shared_cache { t5.a>1 AND t5.a<15 AND t6.a>1 } db1 - } {0 0 {TABLE t5 WITH INDEX t5i} 1 1 {TABLE t6 USING PRIMARY KEY}} + } {0 0 0 {SEARCH TABLE t5 USING COVERING INDEX t5i (a>? AND a200 AND x<300 } -} {0 0 {TABLE t1 WITH INDEX i1}} -do_test analyze3-1.1.3 { - eqp { SELECT sum(y) FROM t1 WHERE x>0 AND x<1100 } -} {0 0 {TABLE t1}} +do_eqp_test analyze3-1.1.2 { + SELECT sum(y) FROM t1 WHERE x>200 AND x<300 +} {0 0 0 {SEARCH TABLE t1 USING INDEX i1 (x>? AND x0 AND x<1100 +} {0 0 0 {SCAN TABLE t1 (~111 rows)}} do_test analyze3-1.1.4 { sf_execsql { SELECT sum(y) FROM t1 WHERE x>200 AND x<300 } @@ -144,12 +144,12 @@ do_test analyze3-1.2.1 { ANALYZE; } } {} -do_test analyze3-1.2.2 { - eqp { SELECT sum(y) FROM t2 WHERE x>1 AND x<2 } -} {0 0 {TABLE t2 WITH INDEX i2}} -do_test analyze3-1.2.3 { - eqp { SELECT sum(y) FROM t2 WHERE x>0 AND x<99 } -} {0 0 {TABLE t2}} +do_eqp_test analyze3-1.2.2 { + SELECT sum(y) FROM t2 WHERE x>1 AND x<2 +} {0 0 0 {SEARCH TABLE t2 USING INDEX i2 (x>? AND x0 AND x<99 +} {0 0 0 {SCAN TABLE t2 (~111 rows)}} do_test analyze3-1.2.4 { sf_execsql { SELECT sum(y) FROM t2 WHERE x>12 AND x<20 } } {161 0 4760} @@ -191,12 +191,12 @@ do_test analyze3-1.3.1 { ANALYZE; } } {} -do_test analyze3-1.3.2 { - eqp { SELECT sum(y) FROM t3 WHERE x>200 AND x<300 } -} {0 0 {TABLE t3 WITH INDEX i3}} -do_test analyze3-1.3.3 { - eqp { SELECT sum(y) FROM t3 WHERE x>0 AND x<1100 } -} {0 0 {TABLE t3}} +do_eqp_test analyze3-1.3.2 { + SELECT sum(y) FROM t3 WHERE x>200 AND x<300 +} {0 0 0 {SEARCH TABLE t3 USING INDEX i3 (x>? AND x0 AND x<1100 +} {0 0 0 {SCAN TABLE t3 (~111 rows)}} do_test analyze3-1.3.4 { sf_execsql { SELECT sum(y) FROM t3 WHERE x>200 AND x<300 } @@ -246,12 +246,12 @@ do_test analyze3-2.1 { } execsql COMMIT } {} -do_test analyze3-2.2 { - eqp { SELECT count(a) FROM t1 WHERE b LIKE 'a%' } -} {0 0 {TABLE t1 WITH INDEX i1}} -do_test analyze3-2.3 { - eqp { SELECT count(a) FROM t1 WHERE b LIKE '%a' } -} {0 0 {TABLE t1}} +do_eqp_test analyze3-2.2 { + SELECT count(a) FROM t1 WHERE b LIKE 'a%' +} {0 0 0 {SEARCH TABLE t1 USING INDEX i1 (b>? AND b