Add a test case to check that the previous commit is effective.

FossilOrigin-Name: 948d6e5d07bc14b6de32ec2144c716a5532f894c
This commit is contained in:
dan 2014-11-05 14:19:05 +00:00
parent e0de876e27
commit 937994aa65
3 changed files with 63 additions and 8 deletions

View File

@ -1,5 +1,5 @@
C Enhance\swhereLoopCheaperProperSubset(X,Y)\sso\sthat\sit\sdoes\snot\sreport\strue\nif\sX\suses\sskip-scan\sless\sthan\sY,\ssince\sin\sthat\scase\sX\smight\ndeserve\sto\sbe\scheaper\seven\sif\sit\sis\sa\sproper\ssubset.
D 2014-11-05T13:13:13.983
C Add\sa\stest\scase\sto\scheck\sthat\sthe\sprevious\scommit\sis\seffective.
D 2014-11-05T14:19:05.905
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@ -849,7 +849,7 @@ F test/skipscan1.test 7e15e1cc524524e7b2c4595ec85c75501d22f4ff
F test/skipscan2.test d1d1450952b7275f0b0a3a981f0230532743951a
F test/skipscan3.test ec5bab3f81c7038b43450e7b3062e04a198bdbb5
F test/skipscan5.test 67817a4b6857c47e0e33ba3e506da6f23ef68de2
F test/skipscan6.test 3a891b45d6df266ced861a2ad9d03fca2bc7fcc5
F test/skipscan6.test 5866039d03a56f5bd0b3d172a012074a1d90a15b
F test/soak.test 0b5b6375c9f4110c828070b826b3b4b0bb65cd5f
F test/softheap1.test 40562fe6cac6d9827b7b42b86d45aedf12c15e24
F test/sort.test c4400e7533748f6bd7413851ff148645e82b9e2d
@ -1211,7 +1211,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P 7974c0ed10ffdc960a43fed89845c2bed428958d
R 418c93fe7ac7140cffa87d5f3271cb48
U drh
Z 68c42aaa0a73598a09ed4215a5cfd466
P c106b755369c1f8546e897ecd2ac56fd09d6e885
R 27944d6d7573adcf0b31a08e199961ff
U dan
Z 1a8729ffc04f45ef7b13c20540a14cbb

View File

@ -1 +1 @@
c106b755369c1f8546e897ecd2ac56fd09d6e885
948d6e5d07bc14b6de32ec2144c716a5532f894c

View File

@ -141,5 +141,60 @@ do_execsql_test 2.2 {
} {/INDEX good .bb=. AND aa=. AND dd>. AND dd<../}
# Create a table containing 100 rows. Column "a" contains a copy of the
# rowid value - sequentially increasing integers from 1 to 100. Column
# "b" contains the value of (a % 5). Columns "c" and "d" both contain
# constant values (i.e. the same for every row).
#
# Then create a second table t2. t2 is the same as t3 except for the
# order in which the indexes are created.
#
do_execsql_test 3.0 {
CREATE TABLE t3(a, b, c, d);
CREATE INDEX t3_ba ON t3(b, a, c);
CREATE INDEX t3_a ON t3(a);
WITH d(a, b) AS (
SELECT 1, 1
UNION ALL
SELECT a+1, (a+1) % 5 FROM d WHERE a<100
)
INSERT INTO t3 SELECT a, b, 'c', 'd' FROM d;
CREATE TABLE t2(a, b, c, d);
CREATE INDEX t2_a ON t2(a);
CREATE INDEX t2_ba ON t2(b, a, c);
INSERT INTO t2 SELECT * FROM t3;
ANALYZE;
SELECT * FROM sqlite_stat1;
} {
t2 t2_ba {100 20 1 1}
t2 t2_a {100 1}
t3 t3_a {100 1}
t3 t3_ba {100 20 1 1}
}
# Use index "t3_a", as (a=?) is expected to match only a single row.
#
do_eqp_test 3.1 {
SELECT * FROM t3 WHERE a = ? AND c = ?
} {
0 0 0 {SEARCH TABLE t3 USING INDEX t3_a (a=?)}
}
# The same query on table t2. This should use index "t2_a", for the
# same reason. At one point though, it was mistakenly using a skip-scan.
#
do_eqp_test 3.2 {
SELECT * FROM t2 WHERE a = ? AND c = ?
} {
0 0 0 {SEARCH TABLE t2 USING INDEX t2_a (a=?)}
}
finish_test
finish_test