| Index: third_party/sqlite/src/test/where7.test
|
| diff --git a/third_party/sqlite/src/test/where7.test b/third_party/sqlite/src/test/where7.test
|
| index 10a94c137082cb220804d0cd47dc375fc92269e9..e34778c76311f076a8f54da088090125c7b7a8a6 100644
|
| --- a/third_party/sqlite/src/test/where7.test
|
| +++ b/third_party/sqlite/src/test/where7.test
|
| @@ -90,12 +90,10 @@ do_test where7-1.9 {
|
| }
|
| } {2 4 5 scan 0 sort 0}
|
| do_test where7-1.10 {
|
| -breakpoint
|
| count_steps {
|
| SELECT a FROM t1 WHERE (b=3 OR c>=10 OR c=4 OR b>10)
|
| }
|
| } {2 4 5 scan 0 sort 0}
|
| -breakpoint
|
| do_test where7-1.11 {
|
| count_steps {
|
| SELECT a FROM t1 WHERE (d=5 AND b=3) OR c==100 ORDER BY a;
|
| @@ -106,13 +104,7 @@ do_test where7-1.12 {
|
| SELECT a FROM t1 WHERE (b BETWEEN 2 AND 4) OR c=100 ORDER BY a
|
| }
|
| } {1 2 3 5 scan 0 sort 1}
|
| -do_test where7-1.13.1 {
|
| - count_steps {
|
| - SELECT a FROM t1 WHERE (b BETWEEN 0 AND 2) OR (c BETWEEN 9 AND 999)
|
| - ORDER BY a DESC
|
| - }
|
| -} {5 4 1 scan 4 sort 0}
|
| -do_test where7-1.13.2 {
|
| +do_test where7-1.13 {
|
| count_steps {
|
| SELECT a FROM t1 WHERE (b BETWEEN 0 AND 2) OR (c BETWEEN 9 AND 999)
|
| ORDER BY +a DESC
|
| @@ -23307,6 +23299,52 @@ do_test where7-2.1001.2 {
|
| OR a=91
|
| }
|
| } {2 22 23 28 54 80 91 scan 0 sort 0}
|
| -finish_test
|
| +
|
| +# test case for the performance regression fixed by
|
| +# check-in 28ba6255282b on 2010-10-21 02:05:06
|
| +#
|
| +# The test case that follows is code from an actual
|
| +# application with identifiers change and unused columns
|
| +# remove.
|
| +#
|
| +do_execsql_test where7-3.1 {
|
| + CREATE TABLE t301 (
|
| + c8 INTEGER PRIMARY KEY,
|
| + c6 INTEGER,
|
| + c4 INTEGER,
|
| + c7 INTEGER,
|
| + FOREIGN KEY (c4) REFERENCES series(c4)
|
| + );
|
| + CREATE INDEX t301_c6 on t301(c6);
|
| + CREATE INDEX t301_c4 on t301(c4);
|
| + CREATE INDEX t301_c7 on t301(c7);
|
| +
|
| + CREATE TABLE t302 (
|
| + c1 INTEGER PRIMARY KEY,
|
| + c8 INTEGER,
|
| + c5 INTEGER,
|
| + c3 INTEGER,
|
| + c2 INTEGER,
|
| + c4 INTEGER,
|
| + FOREIGN KEY (c8) REFERENCES t301(c8)
|
| + );
|
| + CREATE INDEX t302_c3 on t302(c3);
|
| + CREATE INDEX t302_c8_c3 on t302(c8, c3);
|
| + CREATE INDEX t302_c5 on t302(c5);
|
| +
|
| + EXPLAIN QUERY PLAN
|
| + SELECT t302.c1
|
| + FROM t302 JOIN t301 ON t302.c8 = t301.c8
|
| + WHERE t302.c2 = 19571
|
| + AND t302.c3 > 1287603136
|
| + AND (t301.c4 = 1407449685622784
|
| + OR t301.c8 = 1407424651264000)
|
| + ORDER BY t302.c5 LIMIT 200;
|
| +} {
|
| + 0 0 1 {SEARCH TABLE t301 USING COVERING INDEX t301_c4 (c4=?) (~10 rows)}
|
| + 0 0 1 {SEARCH TABLE t301 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}
|
| + 0 1 0 {SEARCH TABLE t302 USING INDEX t302_c8_c3 (c8=? AND c3>?) (~2 rows)}
|
| + 0 0 0 {USE TEMP B-TREE FOR ORDER BY}
|
| +}
|
|
|
| finish_test
|
|
|