SQLite
Check-in [598f5f7596]
Not logged in
Overview
SHA1 Hash:598f5f7596b0557b22f31e6643a59ff9096fd023
Date: 2013-01-09 11:25:27
User: drh
Edited Comment:Add a test case that demonstrates ticket [c997b11c4d53a2ee9983].
Original Comment:Add a test case that demonstrates ticket 956e4d7f8958e7065f.
Tags And Properties
Changes
hide diffs unified diffs patch

Added test/orderby3.test

> 1 # 2012 Sept 27 > 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