]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add a test case that demonstrates ticket [956e4d7f8958e7065f].
authordrh <drh@noemail.net>
Wed, 9 Jan 2013 11:25:27 +0000 (11:25 +0000)
committerdrh <drh@noemail.net>
Wed, 9 Jan 2013 11:25:27 +0000 (11:25 +0000)
FossilOrigin-Name: 598f5f7596b0557b22f31e6643a59ff9096fd023

manifest
manifest.uuid
test/orderby3.test [new file with mode: 0644]

index cb6642955dcd24cda1d8eb96bff7c780c541edf2..1d1dc8b3b839ec01488543c378d18ea3f82db481 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Do\snot\sraise\san\serror\sif\san\sunknown\sSQL\sfunction\sis\sfound\sin\sa\sCHECK\nconstraint\swhile\sparsing\sthe\sschema\sof\san\sexisting\sdatabase.
-D 2013-01-08T12:48:10.683
+C Add\sa\stest\scase\sthat\sdemonstrates\sticket\s[956e4d7f8958e7065f].
+D 2013-01-09T11:25:27.507
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in a48faa9e7dd7d556d84f5456eabe5825dd8a6282
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -642,6 +642,7 @@ F test/null.test a8b09b8ed87852742343b33441a9240022108993
 F test/openv2.test 0d3040974bf402e19b7df4b783e447289d7ab394
 F test/orderby1.test f33968647da5c546528fe4d2bf86c6a6a2e5a7ae
 F test/orderby2.test bc11009f7cd99d96b1b11e57b199b00633eb5b04
+F test/orderby3.test 9b31f7688524250f5d74bc887bfae27f722ab1b4
 F test/oserror.test 50417780d0e0d7cd23cf12a8277bb44024765df3
 F test/pager1.test 8e14e7cfd2fbfe65eabead73af10ceeb2fc676aa
 F test/pager2.test 745b911dde3d1f24ae0870bd433dfa83d7c658c1
@@ -1031,7 +1032,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 7695b88fe0d73fd0a36fb7d8f95350b80615a89e
-R d208b87926befaabc0152564810a2c30
+P cda790280a52d65f98a45bacb9123367b159ac7c
+R 0a18eb1c0a86a8cbd651ecda4e319f37
 U drh
-Z 406b832608500677fb00b4e113908c12
+Z e4a4c2c77e3392dd7f778367ed007375
index 588a752de9973d04f15d5305bfbddefcb99bf3cd..88cc3a085cb8bc21123fbf9f30032f097c84a267 100644 (file)
@@ -1 +1 @@
-cda790280a52d65f98a45bacb9123367b159ac7c
\ No newline at end of file
+598f5f7596b0557b22f31e6643a59ff9096fd023
\ No newline at end of file
diff --git a/test/orderby3.test b/test/orderby3.test
new file mode 100644 (file)
index 0000000..edfb7c1
--- /dev/null
@@ -0,0 +1,123 @@
+# 2012 Sept 27
+#
+# The author disclaims copyright to this source code.  In place of
+# a legal notice, here is a blessing:
+#
+#    May you do good and not evil.
+#    May you find forgiveness for yourself and forgive others.
+#    May you share freely, never taking more than you give.
+#
+#***********************************************************************
+# This file implements regression tests for SQLite library.  The
+# focus of this file is testing that the optimizations that disable
+# ORDER BY clauses work correctly on a 3-way join.  See ticket
+# http://www.sqlite.org/src/956e4d7f89
+#
+
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+set ::testprefix orderby3
+
+# Generate test data for a join.  Verify that the join gets the
+# correct answer.
+#
+do_execsql_test 1.0 {
+  CREATE TABLE t1(a INTEGER PRIMARY KEY);
+  CREATE TABLE t2(b INTEGER PRIMARY KEY, c INTEGER);
+  CREATE TABLE t3(d INTEGER);
+    
+  INSERT INTO t1 VALUES(1),(2),(3);
+    
+  INSERT INTO t2 VALUES(3, 1);
+  INSERT INTO t2 VALUES(4, 2);
+  INSERT INTO t2 VALUES(5, 3);
+    
+  INSERT INTO t3 VALUES(4),(3),(5);
+} {}
+do_execsql_test 1.1.asc {
+  SELECT t1.a
+    FROM t1, t2, t3
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a;
+} {1 2 3}
+do_execsql_test 1.1.desc {
+  SELECT t1.a
+    FROM t1, t2, t3
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a DESC;
+} {3 2 1}
+do_execsql_test 1.123.asc {
+  SELECT t1.a
+    FROM t1 CROSS JOIN t2 CROSS JOIN t3
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a;
+} {1 2 3}
+do_execsql_test 1.123.desc {
+  SELECT t1.a
+    FROM t1 CROSS JOIN t2 CROSS JOIN t3
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a DESC;
+} {3 2 1}
+do_execsql_test 1.132.asc {
+  SELECT t1.a
+    FROM t1 CROSS JOIN t3 CROSS JOIN t2
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a;
+} {1 2 3}
+do_execsql_test 1.132.desc {
+  SELECT t1.a
+    FROM t1 CROSS JOIN t3 CROSS JOIN t2
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a DESC;
+} {3 2 1}
+do_execsql_test 1.213.asc {
+  SELECT t1.a
+    FROM t2 CROSS JOIN t1 CROSS JOIN t3
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a;
+} {1 2 3}
+do_execsql_test 1.213.desc {
+  SELECT t1.a
+    FROM t2 CROSS JOIN t1 CROSS JOIN t3
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a DESC;
+} {3 2 1}
+do_execsql_test 1.231.asc {
+  SELECT t1.a
+    FROM t2 CROSS JOIN t3 CROSS JOIN t1
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a;
+} {1 2 3}
+do_execsql_test 1.231.desc {
+  SELECT t1.a
+    FROM t2 CROSS JOIN t3 CROSS JOIN t1
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a DESC;
+} {3 2 1}
+do_execsql_test 1.312.asc {
+  SELECT t1.a
+    FROM t3 CROSS JOIN t1 CROSS JOIN t2
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a;
+} {1 2 3}
+do_execsql_test 1.312.desc {
+  SELECT t1.a
+    FROM t3 CROSS JOIN t1 CROSS JOIN t2
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a DESC;
+} {3 2 1}
+do_execsql_test 1.321.asc {
+  SELECT t1.a
+    FROM t3 CROSS JOIN t2 CROSS JOIN t1
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a;
+} {1 2 3}
+do_execsql_test 1.321.desc {
+  SELECT t1.a
+    FROM t3 CROSS JOIN t2 CROSS JOIN t1
+   WHERE t1.a=t2.c AND t2.b=t3.d
+   ORDER BY t1.a DESC;
+} {3 2 1}
+
+finish_test