-C This\sadditional\sfix\sprevents\sa\spartial\sindex\sfrom\sbeing\squalified\sfor\suse\s\nif\sthe\sconstraint\sthat\squalifies\sthe\spartial\sindex\sis\spart\sof\sthe\sON\sclause\sof\na\sLEFT\sJOIN.
-D 2015-02-24T16:48:59.496
+C More\stest\scases\sto\shelp\sensure\sthat\spartial\sindexes\sdo\snot\sget\sused\sif\stheir\nqualifing\sconstraint\sis\sinside\sthe\sON\sclause\sof\sa\sLEFT\sJOIN.
+D 2015-02-24T18:39:00.173
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 6b9e7677829aa94b9f30949656e27312aefb9a46
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F test/index3.test 55a90cff99834305e8141df7afaef39674b57062
F test/index4.test ab92e736d5946840236cd61ac3191f91a7856bf6
F test/index5.test 25b0b451aceed4ac5f7d49f856f6de7257470b3e
-F test/index6.test fb370966ac3cd0989053dd5385757b5c3e24ab6a
+F test/index6.test c56852451b574ad5b2a1789e566e62e6ab244f42
F test/index7.test 917cf1e1c7439bb155abbeabec511b28945e157b
F test/indexedby.test b2f22f3e693a53813aa3f50b812eb609ba6df1ec
F test/indexfault.test 31d4ab9a7d2f6e9616933eb079722362a883eb1d
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P c0f4e308a508183b72ceda447dc3ac778cb85b9f
-R 4fd07aecba33e9248bb5425721691954
+P 1a1516e4da26dcee35e6fbb6604ce252faf3d116
+R 65a9e61b66b400145ad4b4adbab491c4
U drh
-Z 49115944492618e32f7d86cca0efe1da
+Z f7c7ecf68414d2c1e5314c6ea356d3c1
PRAGMA integrity_check;
} {ok}
+# Test case for ticket [2326c258d02ead33d69faa63de8f4686b9b1b9d9] on
+# 2015-02-24. Any use of a partial index qualifying constraint inside
+# the ON clause of a LEFT JOIN was causing incorrect results for all
+# versions of SQLite 3.8.0 through 3.8.8.
+#
+do_execsql_test index6-7.0 {
+ CREATE TABLE t7a(x);
+ CREATE TABLE t7b(y);
+ INSERT INTO t7a(x) VALUES(1);
+ CREATE INDEX t7ax ON t7a(x) WHERE x=99;
+ PRAGMA automatic_index=OFF;
+ SELECT * FROM t7a LEFT JOIN t7b ON (x=99) ORDER BY x;
+} {1 {}}
+do_execsql_test index6-7.1 {
+ INSERT INTO t7b(y) VALUES(2);
+ SELECT * FROM t7a JOIN t7b ON (x=99) ORDER BY x;
+} {}
+do_execsql_test index6-7.2 {
+ INSERT INTO t7a(x) VALUES(99);
+ SELECT * FROM t7a LEFT JOIN t7b ON (x=99) ORDER BY x;
+} {1 {} 99 2}
+do_execsql_test index6-7.3 {
+ SELECT * FROM t7a JOIN t7b ON (x=99) ORDER BY x;
+} {99 2}
+do_execsql_test index6-7.4 {
+ EXPLAIN QUERY PLAN
+ SELECT * FROM t7a JOIN t7b ON (x=99) ORDER BY x;
+} {/USING COVERING INDEX t7ax/}
finish_test