github.com/jdgcs/sqlite3@v1.12.1-0.20210908114423-bc5f96e4dd51/testdata/tcl/orderby3.test (about) 1 # 2013 January 09 2 # 3 # The author disclaims copyright to this source code. In place of 4 # a legal notice, here is a blessing: 5 # 6 # May you do good and not evil. 7 # May you find forgiveness for yourself and forgive others. 8 # May you share freely, never taking more than you give. 9 # 10 #*********************************************************************** 11 # This file implements regression tests for SQLite library. The 12 # focus of this file is testing that the optimizations that disable 13 # ORDER BY clauses work correctly on a 3-way join. See ticket 14 # http://www.sqlite.org/src/956e4d7f89 15 # 16 17 18 set testdir [file dirname $argv0] 19 source $testdir/tester.tcl 20 set ::testprefix orderby3 21 22 # Generate test data for a join. Verify that the join gets the 23 # correct answer. 24 # 25 do_execsql_test 1.0 { 26 CREATE TABLE t1(a INTEGER PRIMARY KEY); 27 CREATE TABLE t2(b INTEGER PRIMARY KEY, c INTEGER); 28 CREATE TABLE t3(d INTEGER); 29 30 INSERT INTO t1 VALUES(1),(2),(3); 31 32 INSERT INTO t2 VALUES(3, 1); 33 INSERT INTO t2 VALUES(4, 2); 34 INSERT INTO t2 VALUES(5, 3); 35 36 INSERT INTO t3 VALUES(4),(3),(5); 37 } {} 38 do_execsql_test 1.1.asc { 39 SELECT t1.a 40 FROM t1, t2, t3 41 WHERE t1.a=t2.c AND t2.b=t3.d 42 ORDER BY t1.a; 43 } {1 2 3} 44 do_execsql_test 1.1.desc { 45 SELECT t1.a 46 FROM t1, t2, t3 47 WHERE t1.a=t2.c AND t2.b=t3.d 48 ORDER BY t1.a DESC; 49 } {3 2 1} 50 do_execsql_test 1.123.asc { 51 SELECT t1.a 52 FROM t1 CROSS JOIN t2 CROSS JOIN t3 53 WHERE t1.a=t2.c AND t2.b=t3.d 54 ORDER BY t1.a; 55 } {1 2 3} 56 do_execsql_test 1.123.desc { 57 SELECT t1.a 58 FROM t1 CROSS JOIN t2 CROSS JOIN t3 59 WHERE t1.a=t2.c AND t2.b=t3.d 60 ORDER BY t1.a DESC; 61 } {3 2 1} 62 do_execsql_test 1.132.asc { 63 SELECT t1.a 64 FROM t1 CROSS JOIN t3 CROSS JOIN t2 65 WHERE t1.a=t2.c AND t2.b=t3.d 66 ORDER BY t1.a; 67 } {1 2 3} 68 do_execsql_test 1.132.desc { 69 SELECT t1.a 70 FROM t1 CROSS JOIN t3 CROSS JOIN t2 71 WHERE t1.a=t2.c AND t2.b=t3.d 72 ORDER BY t1.a DESC; 73 } {3 2 1} 74 do_execsql_test 1.213.asc { 75 SELECT t1.a 76 FROM t2 CROSS JOIN t1 CROSS JOIN t3 77 WHERE t1.a=t2.c AND t2.b=t3.d 78 ORDER BY t1.a; 79 } {1 2 3} 80 do_execsql_test 1.213.desc { 81 SELECT t1.a 82 FROM t2 CROSS JOIN t1 CROSS JOIN t3 83 WHERE t1.a=t2.c AND t2.b=t3.d 84 ORDER BY t1.a DESC; 85 } {3 2 1} 86 do_execsql_test 1.231.asc { 87 SELECT t1.a 88 FROM t2 CROSS JOIN t3 CROSS JOIN t1 89 WHERE t1.a=t2.c AND t2.b=t3.d 90 ORDER BY t1.a; 91 } {1 2 3} 92 do_execsql_test 1.231.desc { 93 SELECT t1.a 94 FROM t2 CROSS JOIN t3 CROSS JOIN t1 95 WHERE t1.a=t2.c AND t2.b=t3.d 96 ORDER BY t1.a DESC; 97 } {3 2 1} 98 do_execsql_test 1.312.asc { 99 SELECT t1.a 100 FROM t3 CROSS JOIN t1 CROSS JOIN t2 101 WHERE t1.a=t2.c AND t2.b=t3.d 102 ORDER BY t1.a; 103 } {1 2 3} 104 do_execsql_test 1.312.desc { 105 SELECT t1.a 106 FROM t3 CROSS JOIN t1 CROSS JOIN t2 107 WHERE t1.a=t2.c AND t2.b=t3.d 108 ORDER BY t1.a DESC; 109 } {3 2 1} 110 do_execsql_test 1.321.asc { 111 SELECT t1.a 112 FROM t3 CROSS JOIN t2 CROSS JOIN t1 113 WHERE t1.a=t2.c AND t2.b=t3.d 114 ORDER BY t1.a; 115 } {1 2 3} 116 do_execsql_test 1.321.desc { 117 SELECT t1.a 118 FROM t3 CROSS JOIN t2 CROSS JOIN t1 119 WHERE t1.a=t2.c AND t2.b=t3.d 120 ORDER BY t1.a DESC; 121 } {3 2 1} 122 123 finish_test