-C Merge\slatest\strunk\schanges\sinto\sthis\sbranch.
-D 2016-08-02T16:24:10.101
+C Fix\sa\sproblem\swith\svector\srange\sconstraints\sand\smixed\sASC/DESC\sindexes.
+D 2016-08-02T17:07:51.146
F Makefile.in 6c20d44f72d4564f11652b26291a214c8367e5db
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 3340e479e5221f06c3d61726f8f7efff885e4233
F src/wal.c 02eeecc265f6ffd0597378f5d8ae9070b62a406a
F src/wal.h 6dd221ed384afdc204bc61e25c23ef7fd5a511f2
F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354
-F src/where.c 9dcbc1be0e8e84b1d323dae55983bbb902a6c484
+F src/where.c 25eae2e051809c75a8a1a23288f335382ac0215f
F src/whereInt.h 14dd243e13b81cbb0a66063d38b70f93a7d6e613
F src/wherecode.c c01c8af9311b5d6d65de311101f72d94a11ae506
F src/whereexpr.c 4a8cefc7c122132ac9f3ed125c61629a0e3de094
F test/rowid.test 5b7509f384f4f6fae1af3c8c104c8ca299fea18d
F test/rowvalue.test 56b34d31d91340a6e922e753b798880170cc1aa7
F test/rowvalue2.test 8d5dfe75b8f4d1868a2f91f0356f20d36cba64ff
-F test/rowvalue3.test 5127afb4414bf62546161497c04840c46e371770
-F test/rowvalue4.test 4480898d62d6813e3e38d9d38c02b9a0be5f94be
+F test/rowvalue3.test dbe935260851b197dfbbbcb0ac2a15cb5f324fd4
+F test/rowvalue4.test 9e720652d4db9ef3bea50227c69e33d7e64801c6
F test/rtree.test 0c8d9dd458d6824e59683c19ab2ffa9ef946f798
F test/run-wordcount.sh 891e89c4c2d16e629cd45951d4ed899ad12afc09
F test/savepoint.test c671fdbd34cd3bfe1518a777526ada595180cf8d
F test/temptable2.test cd396beb41117a5302fff61767c35fa4270a0d5e
F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637
F test/temptrigger.test 8ec228b0db5d7ebc4ee9b458fc28cb9e7873f5e1
-F test/tester.tcl 542e38e307a6c1c362122d186f580ec3e58a288c
+F test/tester.tcl 4ce5afd5e192db4cae178e1a983b060e0f08c5d6
F test/thread001.test 9f22fd3525a307ff42a326b6bc7b0465be1745a5
F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58
F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 6937677cc2c2db6b21f997559f88a339466cd15b b23c10ac8f65bc88a6c7d88e140217222eb4cbe5
-R bdbd7298ee0fa9cbc2f39cf393323b85
+P d468101b421e073e9debd7381bde1d36af31369e
+R e4db8db490358e0865afed7cef96935f
U dan
-Z eb5884061bde99d3b56b31ee8ac9fde1
+Z 8c6bb4cf90fd1cc092b885dc43b4c6ef
source $testdir/tester.tcl
set ::testprefix rowvalue4
-do_execsql_test 0 {
+#-------------------------------------------------------------------------
+# Test some error conditions:
+#
+# * row values used where they are not supported,
+# * row values or sub-selects that contain/return the wrong number
+# of elements.
+#
+do_execsql_test 1.0 {
CREATE TABLE t1(a, b, c);
CREATE INDEX t1bac ON t1(b, a, c);
}
do_catchsql_test 2.$tn "$s" [list 1 $error]
}
+#-------------------------------------------------------------------------
+do_execsql_test 2.0 {
+ CREATE TABLE t2(a, b, c, d);
+ INSERT INTO t2 VALUES(1, 1, 1, 1);
+ INSERT INTO t2 VALUES(1, 1, 2, 2);
+ INSERT INTO t2 VALUES(1, 1, 3, 3);
+ INSERT INTO t2 VALUES(1, 2, 1, 4);
+ INSERT INTO t2 VALUES(1, 2, 2, 5);
+ INSERT INTO t2 VALUES(1, 2, 3, 6);
+ INSERT INTO t2 VALUES(1, 3, 1, 7);
+ INSERT INTO t2 VALUES(1, 3, 2, 8);
+ INSERT INTO t2 VALUES(1, 3, 3, 9);
+
+ INSERT INTO t2 VALUES(2, 1, 1, 10);
+ INSERT INTO t2 VALUES(2, 1, 2, 11);
+ INSERT INTO t2 VALUES(2, 1, 3, 12);
+ INSERT INTO t2 VALUES(2, 2, 1, 13);
+ INSERT INTO t2 VALUES(2, 2, 2, 14);
+ INSERT INTO t2 VALUES(2, 2, 3, 15);
+ INSERT INTO t2 VALUES(2, 3, 1, 16);
+ INSERT INTO t2 VALUES(2, 3, 2, 17);
+ INSERT INTO t2 VALUES(2, 3, 3, 18);
+
+ INSERT INTO t2 VALUES(3, 1, 1, 19);
+ INSERT INTO t2 VALUES(3, 1, 2, 20);
+ INSERT INTO t2 VALUES(3, 1, 3, 21);
+ INSERT INTO t2 VALUES(3, 2, 1, 22);
+ INSERT INTO t2 VALUES(3, 2, 2, 23);
+ INSERT INTO t2 VALUES(3, 2, 3, 24);
+ INSERT INTO t2 VALUES(3, 3, 1, 25);
+ INSERT INTO t2 VALUES(3, 3, 2, 26);
+ INSERT INTO t2 VALUES(3, 3, 3, 27);
+}
+
+foreach {nm idx} {
+ idx1 {}
+ idx2 { CREATE INDEX t2abc ON t2(a, b, c); }
+ idx3 { CREATE INDEX t2abc ON t2(a, b DESC, c); }
+ idx4 { CREATE INDEX t2abc ON t2(a DESC, b DESC, c DESC); }
+ idx5 { CREATE INDEX t2abc ON t2(a ASC, b ASC, c ASC); }
+ idx6 { CREATE INDEX t2abc ON t2(a DESC, b, c); }
+} {
+ drop_all_indexes
+ execsql $idx
+
+ foreach {tn where res} {
+ 1 "(a, b, c) < (2, 2, 2)" {1 2 3 4 5 6 7 8 9 10 11 12 13}
+ 2 "(a, b, c) <= (2, 2, 2)" {1 2 3 4 5 6 7 8 9 10 11 12 13 14}
+ 3 "(a, b, c) > (2, 2, 2)" {15 16 17 18 19 20 21 22 23 24 25 26 27}
+ 4 "(a, b, c) >= (2, 2, 2)" {14 15 16 17 18 19 20 21 22 23 24 25 26 27}
+ } {
+ set result [db eval "SELECT d FROM t2 WHERE $where"]
+ do_test 2.$nm.$tn { lsort -integer $result } $res
+ }
+}
finish_test