]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Test case updates.
authordrh <drh@noemail.net>
Tue, 4 Jun 2013 15:31:16 +0000 (15:31 +0000)
committerdrh <drh@noemail.net>
Tue, 4 Jun 2013 15:31:16 +0000 (15:31 +0000)
FossilOrigin-Name: 0360fec7c093870269211447e9642b5ee34ff778

manifest
manifest.uuid
test/orderby1.test

index 7cdae30fd3cf5aae498541e17ed3a4f236d9fe67..076d503589f4201e0411ba21f25141bf8fa0b004 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Better\sdetermination\sof\swhen\san\sindex\sis\sUNIQUE.
-D 2013-06-04T13:37:26.983
+C Test\scase\supdates.
+D 2013-06-04T15:31:16.980
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -690,7 +690,7 @@ F test/notnull.test 2afad748d18fd66d01f66463de73b3e2501fb226
 F test/null.test a8b09b8ed87852742343b33441a9240022108993
 F test/numcast.test 5d126f7f581432e86a90d1e35cac625164aec4a1
 F test/openv2.test 0d3040974bf402e19b7df4b783e447289d7ab394
-F test/orderby1.test f33968647da5c546528fe4d2bf86c6a6a2e5a7ae
+F test/orderby1.test 3c5ff32c23364fb3d567ad53b945837736e701ce
 F test/orderby2.test bc11009f7cd99d96b1b11e57b199b00633eb5b04
 F test/orderby3.test 8619d06a3debdcd80a27c0fdea5c40b468854b99
 F test/orderby4.test 4d39bfbaaa3ae64d026ca2ff166353d2edca4ba4
@@ -1093,7 +1093,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P 8d9f29f847f38612447c79a5fb366a9143ef6205
-R 816acabe38521333f8c2b91e9413c2fb
+P 63fd025ad98c33826342824c51436ac92e2bb579
+R 67e11291890a37d4a1f5e5249ecb5cb8
 U drh
-Z 7aae80e9f7f08a338e021a4d83d77e82
+Z 7007403ff7385bdec3d57bd5a78d418a
index 603eff6cc44a79dfc6188e05d391c89d43c0a48f..314ab804b92a0c8666f5a1e9d4f9bae9f2e978f1 100644 (file)
@@ -1 +1 @@
-63fd025ad98c33826342824c51436ac92e2bb579
\ No newline at end of file
+0360fec7c093870269211447e9642b5ee34ff778
\ No newline at end of file
index f459fc81950cca48ca35e11c78801e519500f761..73ecb67dc77bfae1db05447df7574ad2da7145e5 100644 (file)
@@ -48,7 +48,7 @@ do_test 1.0 {
 } {}
 do_test 1.1a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn
   }
 } {one-a one-c two-a two-b three-a three-c}
 
@@ -66,7 +66,7 @@ do_test 1.1b {
 #
 do_test 1.2a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title, +tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title, +tn
   }
 } {one-a one-c two-a two-b three-a three-c}
 
@@ -75,7 +75,7 @@ do_test 1.2a {
 do_test 1.2b {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title, +tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title, +tn
   }
 } {/ORDER BY/}   ;# separate sorting pass due to "+" on ORDER BY terms
 
@@ -85,13 +85,13 @@ do_test 1.3a {
   optimization_control db order-by-idx-join 0
   db cache flush
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn
   }
 } {one-a one-c two-a two-b three-a three-c}
 do_test 1.3b {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn
   }
 } {/ORDER BY/}   ;# separate sorting pass due to disabled optimization
 optimization_control db all 1
@@ -101,55 +101,58 @@ db cache flush
 #
 do_test 1.4a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title DESC, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title DESC, tn
   }
 } {three-a three-c two-a two-b one-a one-c}
 do_test 1.4b {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title DESC, +tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title DESC, +tn
   }
 } {three-a three-c two-a two-b one-a one-c}  ;# verify same order after sorting
 do_test 1.4c {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title DESC, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title DESC, tn
   }
-} {~/ORDER BY/}  ;# optimized out
+} {/ORDER BY/}  ;# separate sorting pass due to mixed DESC/ASC
 
 
 do_test 1.5a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn DESC
   }
 } {one-c one-a two-b two-a three-c three-a}
 do_test 1.5b {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title, +tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title, +tn DESC
   }
 } {one-c one-a two-b two-a three-c three-a}  ;# verify same order after sorting
 do_test 1.5c {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn DESC
   }
-} {~/ORDER BY/}  ;# optimized out
+} {/ORDER BY/}  ;# separate sorting pass due to mixed DESC/ASC
 
 do_test 1.6a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title DESC, tn DESC
+    SELECT name FROM album CROSS JOIN track USING (aid)
+     ORDER BY title DESC, tn DESC
   }
 } {three-c three-a two-b two-a one-c one-a}
 do_test 1.6b {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title DESC, +tn DESC
+    SELECT name FROM album CROSS JOIN track USING (aid)
+     ORDER BY +title DESC, +tn DESC
   }
 } {three-c three-a two-b two-a one-c one-a}  ;# verify same order after sorting
 do_test 1.6c {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title DESC, tn DESC
+    SELECT name FROM album CROSS JOIN track USING (aid)
+     ORDER BY title DESC, tn DESC
   }
-} {~/ORDER BY/}  ;# ORDER BY optimized-out
+} {~/ORDER BY/}  ;# ORDER BY 
 
 
 # Reconstruct the test data to use indices rather than integer primary keys.
@@ -183,7 +186,7 @@ do_test 2.0 {
 } {}
 do_test 2.1a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn
   }
 } {one-a one-c two-a two-b three-a three-c}
 
@@ -192,28 +195,28 @@ do_test 2.1a {
 do_test 2.1b {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn
   }
-} {~/ORDER BY/}  ;# ORDER BY optimized out
+} {/ORDER BY/}  ;# ORDER BY required because of missing aid term in ORDER BY
 
 do_test 2.1c {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, aid, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, aid, tn
   }
 } {one-a one-c two-a two-b three-a three-c}
 do_test 2.1d {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, aid, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, aid, tn
   }
-} {~/ORDER BY/}  ;# ORDER BY optimized out
+} {/ORDER BY/}  ;# ORDER BY required in this case
 
 # The same query with ORDER BY clause optimization disabled via + operators
 # should give exactly the same answer.
 #
 do_test 2.2a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title, +tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title, +tn
   }
 } {one-a one-c two-a two-b three-a three-c}
 
@@ -222,7 +225,7 @@ do_test 2.2a {
 do_test 2.2b {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title, +tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title, +tn
   }
 } {/ORDER BY/}   ;# separate sorting pass due to "+" on ORDER BY terms
 
@@ -232,13 +235,13 @@ do_test 2.3a {
   optimization_control db order-by-idx-join 0
   db cache flush
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn
   }
 } {one-a one-c two-a two-b three-a three-c}
 do_test 2.3b {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn
   }
 } {/ORDER BY/}   ;# separate sorting pass due to disabled optimization
 optimization_control db all 1
@@ -248,55 +251,55 @@ db cache flush
 #
 do_test 2.4a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title DESC, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title DESC, tn
   }
 } {three-a three-c two-a two-b one-a one-c}
 do_test 2.4b {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title DESC, +tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title DESC, +tn
   }
 } {three-a three-c two-a two-b one-a one-c}  ;# verify same order after sorting
 do_test 2.4c {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title DESC, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title DESC, tn
   }
-} {~/ORDER BY/}  ;# optimized out
+} {/ORDER BY/}  ;# separate sorting pass due to mixed DESC/ASC
 
 
 do_test 2.5a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn DESC
   }
 } {one-c one-a two-b two-a three-c three-a}
 do_test 2.5b {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title, +tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title, +tn DESC
   }
 } {one-c one-a two-b two-a three-c three-a}  ;# verify same order after sorting
 do_test 2.5c {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn DESC
   }
-} {~/ORDER BY/}  ;# optimized out
+} {/ORDER BY/}  ;# separate sorting pass due to mixed ASC/DESC
 
 do_test 2.6a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title DESC, tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title DESC, tn DESC
   }
 } {three-c three-a two-b two-a one-c one-a}
 do_test 2.6b {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title DESC, +tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title DESC, +tn DESC
   }
 } {three-c three-a two-b two-a one-c one-a}  ;# verify same order after sorting
 do_test 2.6c {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title DESC, tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title DESC, tn DESC
   }
-} {~/ORDER BY/}  ;# ORDER BY optimized out
+} {/ORDER BY/}  ;# ORDER BY required
 
 
 # Generate another test dataset, but this time using mixed ASC/DESC indices.
@@ -348,7 +351,7 @@ do_test 3.1b {
 #
 do_test 3.2a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title, +tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title, +tn DESC
   }
 } {one-c one-a two-b two-a three-c three-a}
 
@@ -357,7 +360,7 @@ do_test 3.2a {
 do_test 3.2b {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title, +tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title, +tn DESC
   }
 } {/ORDER BY/}   ;# separate sorting pass due to "+" on ORDER BY terms
 
@@ -367,13 +370,13 @@ do_test 3.3a {
   optimization_control db order-by-idx-join 0
   db cache flush
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn DESC
   }
 } {one-c one-a two-b two-a three-c three-a}
 do_test 3.3b {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn DESC
   }
 } {/ORDER BY/}   ;# separate sorting pass due to disabled optimization
 optimization_control db all 1
@@ -383,38 +386,38 @@ db cache flush
 #
 do_test 3.4a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn
   }
 } {one-a one-c two-a two-b three-a three-c}
 do_test 3.4b {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title, +tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title, +tn
   }
 } {one-a one-c two-a two-b three-a three-c}  ;# verify same order after sorting
 do_test 3.4c {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title, tn
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn
   }
-} {~/ORDER BY/}  ;# optimized out
+} {/ORDER BY/}  ;# separate sorting pass due to mismatched DESC/ASC
 
 
 do_test 3.5a {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title DESC, tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title DESC, tn DESC
   }
 } {three-c three-a two-b two-a one-c one-a}
 do_test 3.5b {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title DESC, +tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY +title DESC, +tn DESC
   }
 } {three-c three-a two-b two-a one-c one-a}  ;# verify same order after sorting
 do_test 3.5c {
   db eval {
     EXPLAIN QUERY PLAN
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY title DESC, tn DESC
+    SELECT name FROM album JOIN track USING (aid) ORDER BY title DESC, tn DESC
   }
-} {~/ORDER BY/}  ;# optimzed out
+} {/ORDER BY/}  ;# separate sorting pass due to mismatched ASC/DESC
 
 
 do_test 3.6a {
@@ -424,7 +427,8 @@ do_test 3.6a {
 } {three-a three-c two-a two-b one-a one-c}
 do_test 3.6b {
   db eval {
-    SELECT name FROM album CROSS JOIN track USING (aid) ORDER BY +title DESC, +tn
+    SELECT name FROM album CROSS JOIN track USING (aid)
+     ORDER BY +title DESC, +tn
   }
 } {three-a three-c two-a two-b one-a one-c}  ;# verify same order after sorting
 do_test 3.6c {
@@ -434,5 +438,22 @@ do_test 3.6c {
   }
 } {~/ORDER BY/}  ;# inverted ASC/DESC is optimized out
 
+# Ticket 5ed1772895bf3deeab78c5e3519b1da9165c541b (2013-06-04)
+# Incorrect ORDER BY on an indexed JOIN
+#
+do_test 4.0 {
+  db eval {
+    CREATE TABLE t41(a INT UNIQUE NOT NULL, b INT NOT NULL);
+    CREATE INDEX t41ba ON t41(b,a);
+    CREATE TABLE t42(x INT NOT NULL REFERENCES t41(a), y INT NOT NULL);
+    CREATE UNIQUE INDEX t42xy ON t42(x,y);
+    INSERT INTO t41 VALUES(1,1),(3,1);
+    INSERT INTO t42 VALUES(1,13),(1,15),(3,14),(3,16);
+    
+    SELECT b, y FROM t41 CROSS JOIN t42 ON x=a ORDER BY b, y;
+  }
+} {1 13 1 14 1 15 1 16}
+
+
 
 finish_test