1fae37af1Sdrh# 2008 June 24 2fae37af1Sdrh# 3fae37af1Sdrh# The author disclaims copyright to this source code. In place of 4fae37af1Sdrh# a legal notice, here is a blessing: 5fae37af1Sdrh# 6fae37af1Sdrh# May you do good and not evil. 7fae37af1Sdrh# May you find forgiveness for yourself and forgive others. 8fae37af1Sdrh# May you share freely, never taking more than you give. 9fae37af1Sdrh# 10fae37af1Sdrh#*********************************************************************** 11fae37af1Sdrh# This file implements regression tests for SQLite library. 12fae37af1Sdrh# 13fae37af1Sdrh# The focus of this file is testing the compound-SELECT merge 14fae37af1Sdrh# optimization. Or, in other words, making sure that all 15fae37af1Sdrh# possible combinations of UNION, UNION ALL, EXCEPT, and 16fae37af1Sdrh# INTERSECT work together with an ORDER BY clause (with or w/o 17fae37af1Sdrh# explicit sort order and explicit collating secquites) and 18fae37af1Sdrh# with and without optional LIMIT and OFFSET clauses. 19fae37af1Sdrh# 2074073b6dSdrh# $Id: selectA.test,v 1.6 2008/08/21 14:24:29 drh Exp $ 21fae37af1Sdrh 22fae37af1Sdrhset testdir [file dirname $argv0] 23fae37af1Sdrhsource $testdir/tester.tcl 2438524132Sdanset testprefix selectA 25fae37af1Sdrh 26de3e41e3Sdanielk1977ifcapable !compound { 27de3e41e3Sdanielk1977 finish_test 28de3e41e3Sdanielk1977 return 29de3e41e3Sdanielk1977} 30de3e41e3Sdanielk1977 31fae37af1Sdrhdo_test selectA-1.0 { 32fae37af1Sdrh execsql { 33fae37af1Sdrh CREATE TABLE t1(a,b,c COLLATE NOCASE); 34fae37af1Sdrh INSERT INTO t1 VALUES(1,'a','a'); 35fae37af1Sdrh INSERT INTO t1 VALUES(9.9, 'b', 'B'); 36fae37af1Sdrh INSERT INTO t1 VALUES(NULL, 'C', 'c'); 37fae37af1Sdrh INSERT INTO t1 VALUES('hello', 'd', 'D'); 38fae37af1Sdrh INSERT INTO t1 VALUES(x'616263', 'e', 'e'); 39fae37af1Sdrh SELECT * FROM t1; 40fae37af1Sdrh } 41fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e} 42fae37af1Sdrhdo_test selectA-1.1 { 43fae37af1Sdrh execsql { 44fae37af1Sdrh CREATE TABLE t2(x,y,z COLLATE NOCASE); 45fae37af1Sdrh INSERT INTO t2 VALUES(NULL,'U','u'); 46fae37af1Sdrh INSERT INTO t2 VALUES('mad', 'Z', 'z'); 47fae37af1Sdrh INSERT INTO t2 VALUES(x'68617265', 'm', 'M'); 48fae37af1Sdrh INSERT INTO t2 VALUES(5.2e6, 'X', 'x'); 49fae37af1Sdrh INSERT INTO t2 VALUES(-23, 'Y', 'y'); 50fae37af1Sdrh SELECT * FROM t2; 51fae37af1Sdrh } 52fae37af1Sdrh} {{} U u mad Z z hare m M 5200000.0 X x -23 Y y} 533f994d06Sdrhdo_test selectA-1.2 { 543f994d06Sdrh execsql { 553f994d06Sdrh CREATE TABLE t3(a,b,c COLLATE NOCASE); 563f994d06Sdrh INSERT INTO t3 SELECT * FROM t1; 573f994d06Sdrh INSERT INTO t3 SELECT * FROM t2; 583f994d06Sdrh INSERT INTO t3 SELECT * FROM t1; 593f994d06Sdrh INSERT INTO t3 SELECT * FROM t2; 603f994d06Sdrh INSERT INTO t3 SELECT * FROM t1; 613f994d06Sdrh INSERT INTO t3 SELECT * FROM t2; 623f994d06Sdrh SELECT count(*) FROM t3; 633f994d06Sdrh } 643f994d06Sdrh} {30} 65fae37af1Sdrh 66fae37af1Sdrhdo_test selectA-2.1 { 67fae37af1Sdrh execsql { 68fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 69fae37af1Sdrh ORDER BY a,b,c 70fae37af1Sdrh } 71fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 7274073b6dSdrhdo_test selectA-2.1.1 { # Ticket #3314 7374073b6dSdrh execsql { 7474073b6dSdrh SELECT t1.a, t1.b, t1.c FROM t1 UNION ALL SELECT x,y,z FROM t2 7574073b6dSdrh ORDER BY a,b,c 7674073b6dSdrh } 7774073b6dSdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 7874073b6dSdrhdo_test selectA-2.1.2 { # Ticket #3314 7974073b6dSdrh execsql { 8074073b6dSdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 8174073b6dSdrh ORDER BY t1.a, t1.b, t1.c 8274073b6dSdrh } 8374073b6dSdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 84fae37af1Sdrhdo_test selectA-2.2 { 85fae37af1Sdrh execsql { 86fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 87fae37af1Sdrh ORDER BY a DESC,b,c 88fae37af1Sdrh } 89fae37af1Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 90fae37af1Sdrhdo_test selectA-2.3 { 91fae37af1Sdrh execsql { 92fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 93fae37af1Sdrh ORDER BY a,c,b 94fae37af1Sdrh } 95fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 96fae37af1Sdrhdo_test selectA-2.4 { 97fae37af1Sdrh execsql { 98fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 99fae37af1Sdrh ORDER BY b,a,c 100fae37af1Sdrh } 101fae37af1Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 102fae37af1Sdrhdo_test selectA-2.5 { 103fae37af1Sdrh execsql { 104fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 105fae37af1Sdrh ORDER BY b COLLATE NOCASE,a,c 106fae37af1Sdrh } 107fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 108fae37af1Sdrhdo_test selectA-2.6 { 109fae37af1Sdrh execsql { 110fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 111fae37af1Sdrh ORDER BY b COLLATE NOCASE DESC,a,c 112fae37af1Sdrh } 113fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 114fae37af1Sdrhdo_test selectA-2.7 { 115fae37af1Sdrh execsql { 116fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 117fae37af1Sdrh ORDER BY c,b,a 118fae37af1Sdrh } 119fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 120fae37af1Sdrhdo_test selectA-2.8 { 121fae37af1Sdrh execsql { 122fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 123fae37af1Sdrh ORDER BY c,a,b 124fae37af1Sdrh } 125fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 126fae37af1Sdrhdo_test selectA-2.9 { 127fae37af1Sdrh execsql { 128fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 129fae37af1Sdrh ORDER BY c DESC,a,b 130fae37af1Sdrh } 131fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 132fae37af1Sdrhdo_test selectA-2.10 { 133fae37af1Sdrh execsql { 134fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 135fae37af1Sdrh ORDER BY c COLLATE BINARY DESC,a,b 136fae37af1Sdrh } 137fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 138fae37af1Sdrhdo_test selectA-2.11 { 139fae37af1Sdrh execsql { 140fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 141fae37af1Sdrh ORDER BY a,b,c 142fae37af1Sdrh } 143fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 144fae37af1Sdrhdo_test selectA-2.12 { 145fae37af1Sdrh execsql { 146fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 147fae37af1Sdrh ORDER BY a DESC,b,c 148fae37af1Sdrh } 149fae37af1Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 150fae37af1Sdrhdo_test selectA-2.13 { 151fae37af1Sdrh execsql { 152fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 153fae37af1Sdrh ORDER BY a,c,b 154fae37af1Sdrh } 155fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 156fae37af1Sdrhdo_test selectA-2.14 { 157fae37af1Sdrh execsql { 158fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 159fae37af1Sdrh ORDER BY b,a,c 160fae37af1Sdrh } 161fae37af1Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 162fae37af1Sdrhdo_test selectA-2.15 { 163fae37af1Sdrh execsql { 164fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 165fae37af1Sdrh ORDER BY b COLLATE NOCASE,a,c 166fae37af1Sdrh } 167fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 168fae37af1Sdrhdo_test selectA-2.16 { 169fae37af1Sdrh execsql { 170fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 171fae37af1Sdrh ORDER BY b COLLATE NOCASE DESC,a,c 172fae37af1Sdrh } 173fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 174fae37af1Sdrhdo_test selectA-2.17 { 175fae37af1Sdrh execsql { 176fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 177fae37af1Sdrh ORDER BY c,b,a 178fae37af1Sdrh } 179fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 180fae37af1Sdrhdo_test selectA-2.18 { 181fae37af1Sdrh execsql { 182fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 183fae37af1Sdrh ORDER BY c,a,b 184fae37af1Sdrh } 185fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 186fae37af1Sdrhdo_test selectA-2.19 { 187fae37af1Sdrh execsql { 188fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 189fae37af1Sdrh ORDER BY c DESC,a,b 190fae37af1Sdrh } 191fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 192fae37af1Sdrhdo_test selectA-2.20 { 193fae37af1Sdrh execsql { 194fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 195fae37af1Sdrh ORDER BY c COLLATE BINARY DESC,a,b 196fae37af1Sdrh } 197fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 198fae37af1Sdrhdo_test selectA-2.21 { 199fae37af1Sdrh execsql { 200fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 201fae37af1Sdrh ORDER BY a,b,c 202fae37af1Sdrh } 203fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 204fae37af1Sdrhdo_test selectA-2.22 { 205fae37af1Sdrh execsql { 206fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 207fae37af1Sdrh ORDER BY a DESC,b,c 208fae37af1Sdrh } 209fae37af1Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 210fae37af1Sdrhdo_test selectA-2.23 { 211fae37af1Sdrh execsql { 212fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 213fae37af1Sdrh ORDER BY a,c,b 214fae37af1Sdrh } 215fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 216fae37af1Sdrhdo_test selectA-2.24 { 217fae37af1Sdrh execsql { 218fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 219fae37af1Sdrh ORDER BY b,a,c 220fae37af1Sdrh } 221fae37af1Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 222fae37af1Sdrhdo_test selectA-2.25 { 223fae37af1Sdrh execsql { 224fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 225fae37af1Sdrh ORDER BY b COLLATE NOCASE,a,c 226fae37af1Sdrh } 227fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 228fae37af1Sdrhdo_test selectA-2.26 { 229fae37af1Sdrh execsql { 230fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 231fae37af1Sdrh ORDER BY b COLLATE NOCASE DESC,a,c 232fae37af1Sdrh } 233fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 234fae37af1Sdrhdo_test selectA-2.27 { 235fae37af1Sdrh execsql { 236fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 237fae37af1Sdrh ORDER BY c,b,a 238fae37af1Sdrh } 239fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 240fae37af1Sdrhdo_test selectA-2.28 { 241fae37af1Sdrh execsql { 242fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 243fae37af1Sdrh ORDER BY c,a,b 244fae37af1Sdrh } 245fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 246fae37af1Sdrhdo_test selectA-2.29 { 247fae37af1Sdrh execsql { 248fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 249fae37af1Sdrh ORDER BY c DESC,a,b 250fae37af1Sdrh } 251fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 252fae37af1Sdrhdo_test selectA-2.30 { 253fae37af1Sdrh execsql { 254fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 255fae37af1Sdrh ORDER BY c COLLATE BINARY DESC,a,b 256fae37af1Sdrh } 257fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 258fae37af1Sdrhdo_test selectA-2.31 { 259fae37af1Sdrh execsql { 260fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 261fae37af1Sdrh ORDER BY a,b,c 262fae37af1Sdrh } 263fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 264fae37af1Sdrhdo_test selectA-2.32 { 265fae37af1Sdrh execsql { 266fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 267fae37af1Sdrh ORDER BY a DESC,b,c 268fae37af1Sdrh } 269fae37af1Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 270fae37af1Sdrhdo_test selectA-2.33 { 271fae37af1Sdrh execsql { 272fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 273fae37af1Sdrh ORDER BY a,c,b 274fae37af1Sdrh } 275fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 276fae37af1Sdrhdo_test selectA-2.34 { 277fae37af1Sdrh execsql { 278fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 279fae37af1Sdrh ORDER BY b,a,c 280fae37af1Sdrh } 281fae37af1Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 282fae37af1Sdrhdo_test selectA-2.35 { 283fae37af1Sdrh execsql { 284fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 285c01b7306Sdrh ORDER BY y COLLATE NOCASE,x,z 286fae37af1Sdrh } 287fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 288fae37af1Sdrhdo_test selectA-2.36 { 289fae37af1Sdrh execsql { 290fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 291c01b7306Sdrh ORDER BY y COLLATE NOCASE DESC,x,z 292fae37af1Sdrh } 293fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 294fae37af1Sdrhdo_test selectA-2.37 { 295fae37af1Sdrh execsql { 296fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 297fae37af1Sdrh ORDER BY c,b,a 298fae37af1Sdrh } 299fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 300fae37af1Sdrhdo_test selectA-2.38 { 301fae37af1Sdrh execsql { 302fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 303fae37af1Sdrh ORDER BY c,a,b 304fae37af1Sdrh } 305fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 306fae37af1Sdrhdo_test selectA-2.39 { 307fae37af1Sdrh execsql { 308fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 309fae37af1Sdrh ORDER BY c DESC,a,b 310fae37af1Sdrh } 311fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 312fae37af1Sdrhdo_test selectA-2.40 { 313fae37af1Sdrh execsql { 314fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 315c01b7306Sdrh ORDER BY z COLLATE BINARY DESC,x,y 316fae37af1Sdrh } 317fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 318fae37af1Sdrhdo_test selectA-2.41 { 319fae37af1Sdrh execsql { 320fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d' 321fae37af1Sdrh ORDER BY a,b,c 322fae37af1Sdrh } 323fae37af1Sdrh} {{} C c 1 a a 9.9 b B} 324fae37af1Sdrhdo_test selectA-2.42 { 325fae37af1Sdrh execsql { 326fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d' 327fae37af1Sdrh ORDER BY a,b,c 328fae37af1Sdrh } 329fae37af1Sdrh} {hello d D abc e e} 330fae37af1Sdrhdo_test selectA-2.43 { 331fae37af1Sdrh execsql { 332fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1 333fae37af1Sdrh ORDER BY a,b,c 334fae37af1Sdrh } 335fae37af1Sdrh} {hello d D abc e e} 336fae37af1Sdrhdo_test selectA-2.44 { 337fae37af1Sdrh execsql { 338fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d' 339fae37af1Sdrh ORDER BY a,b,c 340fae37af1Sdrh } 341fae37af1Sdrh} {hello d D abc e e} 342fae37af1Sdrhdo_test selectA-2.45 { 343fae37af1Sdrh execsql { 344fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 345fae37af1Sdrh ORDER BY a,b,c 346fae37af1Sdrh } 347fae37af1Sdrh} {{} C c 1 a a 9.9 b B} 348fae37af1Sdrhdo_test selectA-2.46 { 349fae37af1Sdrh execsql { 350fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1 351fae37af1Sdrh ORDER BY a,b,c 352fae37af1Sdrh } 353fae37af1Sdrh} {{} C c 1 a a 9.9 b B} 354fae37af1Sdrhdo_test selectA-2.47 { 355fae37af1Sdrh execsql { 356fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d' 357fae37af1Sdrh ORDER BY a DESC 358fae37af1Sdrh } 359fae37af1Sdrh} {9.9 b B 1 a a {} C c} 360fae37af1Sdrhdo_test selectA-2.48 { 361fae37af1Sdrh execsql { 362fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d' 363fae37af1Sdrh ORDER BY a DESC 364fae37af1Sdrh } 365fae37af1Sdrh} {abc e e hello d D} 366fae37af1Sdrhdo_test selectA-2.49 { 367fae37af1Sdrh execsql { 368fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1 369fae37af1Sdrh ORDER BY a DESC 370fae37af1Sdrh } 371fae37af1Sdrh} {abc e e hello d D} 372fae37af1Sdrhdo_test selectA-2.50 { 373fae37af1Sdrh execsql { 374fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d' 375fae37af1Sdrh ORDER BY a DESC 376fae37af1Sdrh } 377fae37af1Sdrh} {abc e e hello d D} 378fae37af1Sdrhdo_test selectA-2.51 { 379fae37af1Sdrh execsql { 380fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 381fae37af1Sdrh ORDER BY a DESC 382fae37af1Sdrh } 383fae37af1Sdrh} {9.9 b B 1 a a {} C c} 384fae37af1Sdrhdo_test selectA-2.52 { 385fae37af1Sdrh execsql { 386fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1 387fae37af1Sdrh ORDER BY a DESC 388fae37af1Sdrh } 389fae37af1Sdrh} {9.9 b B 1 a a {} C c} 390fae37af1Sdrhdo_test selectA-2.53 { 391fae37af1Sdrh execsql { 392fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d' 393fae37af1Sdrh ORDER BY b, a DESC 394fae37af1Sdrh } 395fae37af1Sdrh} {{} C c 1 a a 9.9 b B} 396fae37af1Sdrhdo_test selectA-2.54 { 397fae37af1Sdrh execsql { 398fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d' 399fae37af1Sdrh ORDER BY b 400fae37af1Sdrh } 401fae37af1Sdrh} {hello d D abc e e} 402fae37af1Sdrhdo_test selectA-2.55 { 403fae37af1Sdrh execsql { 404fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1 405fae37af1Sdrh ORDER BY b DESC, c 406fae37af1Sdrh } 407fae37af1Sdrh} {abc e e hello d D} 408fae37af1Sdrhdo_test selectA-2.56 { 409fae37af1Sdrh execsql { 410fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d' 411fae37af1Sdrh ORDER BY b, c DESC, a 412fae37af1Sdrh } 413fae37af1Sdrh} {hello d D abc e e} 414fae37af1Sdrhdo_test selectA-2.57 { 415fae37af1Sdrh execsql { 416fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 417fae37af1Sdrh ORDER BY b COLLATE NOCASE 418fae37af1Sdrh } 419fae37af1Sdrh} {1 a a 9.9 b B {} C c} 420fae37af1Sdrhdo_test selectA-2.58 { 421fae37af1Sdrh execsql { 422fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1 423fae37af1Sdrh ORDER BY b 424fae37af1Sdrh } 425fae37af1Sdrh} {{} C c 1 a a 9.9 b B} 426fae37af1Sdrhdo_test selectA-2.59 { 427fae37af1Sdrh execsql { 428fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d' 429fae37af1Sdrh ORDER BY c, a DESC 430fae37af1Sdrh } 431fae37af1Sdrh} {1 a a 9.9 b B {} C c} 432fae37af1Sdrhdo_test selectA-2.60 { 433fae37af1Sdrh execsql { 434fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d' 435fae37af1Sdrh ORDER BY c 436fae37af1Sdrh } 437fae37af1Sdrh} {hello d D abc e e} 438fae37af1Sdrhdo_test selectA-2.61 { 439fae37af1Sdrh execsql { 440fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1 441fae37af1Sdrh ORDER BY c COLLATE BINARY, b DESC, c, a, b, c, a, b, c 442fae37af1Sdrh } 443fae37af1Sdrh} {hello d D abc e e} 444fae37af1Sdrhdo_test selectA-2.62 { 445fae37af1Sdrh execsql { 446fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d' 447fae37af1Sdrh ORDER BY c DESC, a 448fae37af1Sdrh } 449fae37af1Sdrh} {abc e e hello d D} 450fae37af1Sdrhdo_test selectA-2.63 { 451fae37af1Sdrh execsql { 452fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 453fae37af1Sdrh ORDER BY c COLLATE NOCASE 454fae37af1Sdrh } 455fae37af1Sdrh} {1 a a 9.9 b B {} C c} 456fae37af1Sdrhdo_test selectA-2.64 { 457fae37af1Sdrh execsql { 458fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1 459fae37af1Sdrh ORDER BY c 460fae37af1Sdrh } 461fae37af1Sdrh} {1 a a 9.9 b B {} C c} 4623f994d06Sdrhdo_test selectA-2.65 { 4633f994d06Sdrh execsql { 4643f994d06Sdrh SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 4653f994d06Sdrh ORDER BY c COLLATE NOCASE 4663f994d06Sdrh } 4673f994d06Sdrh} {1 a a 9.9 b B {} C c} 4683f994d06Sdrhdo_test selectA-2.66 { 4693f994d06Sdrh execsql { 4703f994d06Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3 4713f994d06Sdrh ORDER BY c 4723f994d06Sdrh } 4733f994d06Sdrh} {1 a a 9.9 b B {} C c} 4743f994d06Sdrhdo_test selectA-2.67 { 4753f994d06Sdrh execsql { 4763f994d06Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d' 4773f994d06Sdrh ORDER BY c DESC, a 4783f994d06Sdrh } 4793f994d06Sdrh} {abc e e hello d D} 4803f994d06Sdrhdo_test selectA-2.68 { 4813f994d06Sdrh execsql { 4823f994d06Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d' 4833f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 4843f994d06Sdrh EXCEPT SELECT b,c,a FROM t3 4853f994d06Sdrh ORDER BY c DESC, a 4863f994d06Sdrh } 4873f994d06Sdrh} {abc e e hello d D} 4883f994d06Sdrhdo_test selectA-2.69 { 4893f994d06Sdrh execsql { 4903f994d06Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 4913f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 4923f994d06Sdrh EXCEPT SELECT b,c,a FROM t3 4933f994d06Sdrh ORDER BY c COLLATE NOCASE 4943f994d06Sdrh } 4953f994d06Sdrh} {1 a a 9.9 b B {} C c} 4963f994d06Sdrhdo_test selectA-2.70 { 4973f994d06Sdrh execsql { 4983f994d06Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1 4993f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 5003f994d06Sdrh EXCEPT SELECT b,c,a FROM t3 5013f994d06Sdrh ORDER BY c 5023f994d06Sdrh } 5033f994d06Sdrh} {1 a a 9.9 b B {} C c} 5043f994d06Sdrhdo_test selectA-2.71 { 5053f994d06Sdrh execsql { 5063f994d06Sdrh SELECT a,b,c FROM t1 WHERE b<'d' 5073f994d06Sdrh INTERSECT SELECT a,b,c FROM t1 5083f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 5093f994d06Sdrh EXCEPT SELECT b,c,a FROM t3 5103f994d06Sdrh INTERSECT SELECT a,b,c FROM t1 5113f994d06Sdrh EXCEPT SELECT x,y,z FROM t2 5123f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 5133f994d06Sdrh EXCEPT SELECT y,x,z FROM t2 5143f994d06Sdrh INTERSECT SELECT a,b,c FROM t1 5153f994d06Sdrh EXCEPT SELECT c,b,a FROM t3 5163f994d06Sdrh ORDER BY c 5173f994d06Sdrh } 5183f994d06Sdrh} {1 a a 9.9 b B {} C c} 5193f994d06Sdrhdo_test selectA-2.72 { 5203f994d06Sdrh execsql { 5213f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 5223f994d06Sdrh ORDER BY a,b,c 5233f994d06Sdrh } 5243f994d06Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 5253f994d06Sdrhdo_test selectA-2.73 { 5263f994d06Sdrh execsql { 5273f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 5283f994d06Sdrh ORDER BY a DESC,b,c 5293f994d06Sdrh } 5303f994d06Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 5313f994d06Sdrhdo_test selectA-2.74 { 5323f994d06Sdrh execsql { 5333f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 5343f994d06Sdrh ORDER BY a,c,b 5353f994d06Sdrh } 5363f994d06Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 5373f994d06Sdrhdo_test selectA-2.75 { 5383f994d06Sdrh execsql { 5393f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 5403f994d06Sdrh ORDER BY b,a,c 5413f994d06Sdrh } 5423f994d06Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 5433f994d06Sdrhdo_test selectA-2.76 { 5443f994d06Sdrh execsql { 5453f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 5463f994d06Sdrh ORDER BY b COLLATE NOCASE,a,c 5473f994d06Sdrh } 5483f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 5493f994d06Sdrhdo_test selectA-2.77 { 5503f994d06Sdrh execsql { 5513f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 5523f994d06Sdrh ORDER BY b COLLATE NOCASE DESC,a,c 5533f994d06Sdrh } 5543f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 5553f994d06Sdrhdo_test selectA-2.78 { 5563f994d06Sdrh execsql { 5573f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 5583f994d06Sdrh ORDER BY c,b,a 5593f994d06Sdrh } 5603f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 5613f994d06Sdrhdo_test selectA-2.79 { 5623f994d06Sdrh execsql { 5633f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 5643f994d06Sdrh ORDER BY c,a,b 5653f994d06Sdrh } 5663f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 5673f994d06Sdrhdo_test selectA-2.80 { 5683f994d06Sdrh execsql { 5693f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 5703f994d06Sdrh ORDER BY c DESC,a,b 5713f994d06Sdrh } 5723f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 5733f994d06Sdrhdo_test selectA-2.81 { 5743f994d06Sdrh execsql { 5753f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 5763f994d06Sdrh ORDER BY c COLLATE BINARY DESC,a,b 5773f994d06Sdrh } 5783f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 5793f994d06Sdrhdo_test selectA-2.82 { 5803f994d06Sdrh execsql { 5813f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 5823f994d06Sdrh ORDER BY a,b,c 5833f994d06Sdrh } 5843f994d06Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 5853f994d06Sdrhdo_test selectA-2.83 { 5863f994d06Sdrh execsql { 5873f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 5883f994d06Sdrh ORDER BY a DESC,b,c 5893f994d06Sdrh } 5903f994d06Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 5913f994d06Sdrhdo_test selectA-2.84 { 5923f994d06Sdrh execsql { 5933f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 5943f994d06Sdrh ORDER BY a,c,b 5953f994d06Sdrh } 5963f994d06Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 5973f994d06Sdrhdo_test selectA-2.85 { 5983f994d06Sdrh execsql { 5993f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 6003f994d06Sdrh ORDER BY b,a,c 6013f994d06Sdrh } 6023f994d06Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 6033f994d06Sdrhdo_test selectA-2.86 { 6043f994d06Sdrh execsql { 6053f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 606c01b7306Sdrh ORDER BY y COLLATE NOCASE,x,z 6073f994d06Sdrh } 6083f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 6093f994d06Sdrhdo_test selectA-2.87 { 6103f994d06Sdrh execsql { 6113f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 6123f994d06Sdrh ORDER BY y COLLATE NOCASE DESC,x,z 6133f994d06Sdrh } 6143f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 6153f994d06Sdrhdo_test selectA-2.88 { 6163f994d06Sdrh execsql { 6173f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 6183f994d06Sdrh ORDER BY c,b,a 6193f994d06Sdrh } 6203f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 6213f994d06Sdrhdo_test selectA-2.89 { 6223f994d06Sdrh execsql { 6233f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 6243f994d06Sdrh ORDER BY c,a,b 6253f994d06Sdrh } 6263f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 6273f994d06Sdrhdo_test selectA-2.90 { 6283f994d06Sdrh execsql { 6293f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 6303f994d06Sdrh ORDER BY c DESC,a,b 6313f994d06Sdrh } 6323f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 6333f994d06Sdrhdo_test selectA-2.91 { 6343f994d06Sdrh execsql { 6353f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 636c01b7306Sdrh ORDER BY z COLLATE BINARY DESC,x,y 6373f994d06Sdrh } 6383f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 6393f994d06Sdrhdo_test selectA-2.92 { 6403f994d06Sdrh execsql { 6413f994d06Sdrh SELECT x,y,z FROM t2 6423f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 6433f994d06Sdrh EXCEPT SELECT c,b,a FROM t1 6443f994d06Sdrh UNION SELECT a,b,c FROM t3 6453f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 6463f994d06Sdrh EXCEPT SELECT c,b,a FROM t1 6473f994d06Sdrh UNION SELECT a,b,c FROM t3 6483f994d06Sdrh ORDER BY y COLLATE NOCASE DESC,x,z 6493f994d06Sdrh } 6503f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 65185e9e22bSdrhdo_test selectA-2.93 { 65285e9e22bSdrh execsql { 65385e9e22bSdrh SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1)); 65485e9e22bSdrh } 65585e9e22bSdrh} {A} 65685e9e22bSdrhdo_test selectA-2.94 { 65785e9e22bSdrh execsql { 65885e9e22bSdrh SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1)); 65985e9e22bSdrh } 66085e9e22bSdrh} {a} 66185e9e22bSdrhdo_test selectA-2.95 { 66285e9e22bSdrh execsql { 66385e9e22bSdrh SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1)); 66485e9e22bSdrh } 66585e9e22bSdrh} {{}} 66685e9e22bSdrhdo_test selectA-2.96 { 66785e9e22bSdrh execsql { 66885e9e22bSdrh SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1)); 66985e9e22bSdrh } 67085e9e22bSdrh} {m} 6713f994d06Sdrh 672fae37af1Sdrh 673fae37af1Sdrhdo_test selectA-3.0 { 674fae37af1Sdrh execsql { 675fae37af1Sdrh CREATE UNIQUE INDEX t1a ON t1(a); 676fae37af1Sdrh CREATE UNIQUE INDEX t1b ON t1(b); 677fae37af1Sdrh CREATE UNIQUE INDEX t1c ON t1(c); 678fae37af1Sdrh CREATE UNIQUE INDEX t2x ON t2(x); 679fae37af1Sdrh CREATE UNIQUE INDEX t2y ON t2(y); 680fae37af1Sdrh CREATE UNIQUE INDEX t2z ON t2(z); 681fae37af1Sdrh SELECT name FROM sqlite_master WHERE type='index' 682fae37af1Sdrh } 683fae37af1Sdrh} {t1a t1b t1c t2x t2y t2z} 684fae37af1Sdrhdo_test selectA-3.1 { 685fae37af1Sdrh execsql { 686fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 687fae37af1Sdrh ORDER BY a,b,c 688fae37af1Sdrh } 689fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 69074073b6dSdrhdo_test selectA-3.1.1 { # Ticket #3314 69174073b6dSdrh execsql { 69274073b6dSdrh SELECT t1.a,b,t1.c FROM t1 UNION ALL SELECT x,y,z FROM t2 69374073b6dSdrh ORDER BY a,t1.b,t1.c 69474073b6dSdrh } 69574073b6dSdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 696fae37af1Sdrhdo_test selectA-3.2 { 697fae37af1Sdrh execsql { 698fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 699fae37af1Sdrh ORDER BY a DESC,b,c 700fae37af1Sdrh } 701fae37af1Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 702fae37af1Sdrhdo_test selectA-3.3 { 703fae37af1Sdrh execsql { 704fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 705fae37af1Sdrh ORDER BY a,c,b 706fae37af1Sdrh } 707fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 708fae37af1Sdrhdo_test selectA-3.4 { 709fae37af1Sdrh execsql { 710fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 711fae37af1Sdrh ORDER BY b,a,c 712fae37af1Sdrh } 713fae37af1Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 714fae37af1Sdrhdo_test selectA-3.5 { 715fae37af1Sdrh execsql { 716fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 717fae37af1Sdrh ORDER BY b COLLATE NOCASE,a,c 718fae37af1Sdrh } 719fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 720fae37af1Sdrhdo_test selectA-3.6 { 721fae37af1Sdrh execsql { 722fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 723fae37af1Sdrh ORDER BY b COLLATE NOCASE DESC,a,c 724fae37af1Sdrh } 725fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 726fae37af1Sdrhdo_test selectA-3.7 { 727fae37af1Sdrh execsql { 728fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 729fae37af1Sdrh ORDER BY c,b,a 730fae37af1Sdrh } 731fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 732fae37af1Sdrhdo_test selectA-3.8 { 733fae37af1Sdrh execsql { 734fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 735fae37af1Sdrh ORDER BY c,a,b 736fae37af1Sdrh } 737fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 738fae37af1Sdrhdo_test selectA-3.9 { 739fae37af1Sdrh execsql { 740fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 741fae37af1Sdrh ORDER BY c DESC,a,b 742fae37af1Sdrh } 743fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 744fae37af1Sdrhdo_test selectA-3.10 { 745fae37af1Sdrh execsql { 746fae37af1Sdrh SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2 747fae37af1Sdrh ORDER BY c COLLATE BINARY DESC,a,b 748fae37af1Sdrh } 749fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 750fae37af1Sdrhdo_test selectA-3.11 { 751fae37af1Sdrh execsql { 752fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 753fae37af1Sdrh ORDER BY a,b,c 754fae37af1Sdrh } 755fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 756fae37af1Sdrhdo_test selectA-3.12 { 757fae37af1Sdrh execsql { 758fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 759fae37af1Sdrh ORDER BY a DESC,b,c 760fae37af1Sdrh } 761fae37af1Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 762fae37af1Sdrhdo_test selectA-3.13 { 763fae37af1Sdrh execsql { 764fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 765fae37af1Sdrh ORDER BY a,c,b 766fae37af1Sdrh } 767fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 768fae37af1Sdrhdo_test selectA-3.14 { 769fae37af1Sdrh execsql { 770fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 771fae37af1Sdrh ORDER BY b,a,c 772fae37af1Sdrh } 773fae37af1Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 774fae37af1Sdrhdo_test selectA-3.15 { 775fae37af1Sdrh execsql { 776fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 777fae37af1Sdrh ORDER BY b COLLATE NOCASE,a,c 778fae37af1Sdrh } 779fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 780fae37af1Sdrhdo_test selectA-3.16 { 781fae37af1Sdrh execsql { 782fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 783fae37af1Sdrh ORDER BY b COLLATE NOCASE DESC,a,c 784fae37af1Sdrh } 785fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 786fae37af1Sdrhdo_test selectA-3.17 { 787fae37af1Sdrh execsql { 788fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 789fae37af1Sdrh ORDER BY c,b,a 790fae37af1Sdrh } 791fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 792fae37af1Sdrhdo_test selectA-3.18 { 793fae37af1Sdrh execsql { 794fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 795fae37af1Sdrh ORDER BY c,a,b 796fae37af1Sdrh } 797fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 798fae37af1Sdrhdo_test selectA-3.19 { 799fae37af1Sdrh execsql { 800fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 801fae37af1Sdrh ORDER BY c DESC,a,b 802fae37af1Sdrh } 803fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 804fae37af1Sdrhdo_test selectA-3.20 { 805fae37af1Sdrh execsql { 806fae37af1Sdrh SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1 807fae37af1Sdrh ORDER BY c COLLATE BINARY DESC,a,b 808fae37af1Sdrh } 809fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 810fae37af1Sdrhdo_test selectA-3.21 { 811fae37af1Sdrh execsql { 812fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 813fae37af1Sdrh ORDER BY a,b,c 814fae37af1Sdrh } 815fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 816fae37af1Sdrhdo_test selectA-3.22 { 817fae37af1Sdrh execsql { 818fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 819fae37af1Sdrh ORDER BY a DESC,b,c 820fae37af1Sdrh } 821fae37af1Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 822fae37af1Sdrhdo_test selectA-3.23 { 823fae37af1Sdrh execsql { 824fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 825fae37af1Sdrh ORDER BY a,c,b 826fae37af1Sdrh } 827fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 828fae37af1Sdrhdo_test selectA-3.24 { 829fae37af1Sdrh execsql { 830fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 831fae37af1Sdrh ORDER BY b,a,c 832fae37af1Sdrh } 833fae37af1Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 834fae37af1Sdrhdo_test selectA-3.25 { 835fae37af1Sdrh execsql { 836fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 837fae37af1Sdrh ORDER BY b COLLATE NOCASE,a,c 838fae37af1Sdrh } 839fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 840fae37af1Sdrhdo_test selectA-3.26 { 841fae37af1Sdrh execsql { 842fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 843fae37af1Sdrh ORDER BY b COLLATE NOCASE DESC,a,c 844fae37af1Sdrh } 845fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 846fae37af1Sdrhdo_test selectA-3.27 { 847fae37af1Sdrh execsql { 848fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 849fae37af1Sdrh ORDER BY c,b,a 850fae37af1Sdrh } 851fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 852fae37af1Sdrhdo_test selectA-3.28 { 853fae37af1Sdrh execsql { 854fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 855fae37af1Sdrh ORDER BY c,a,b 856fae37af1Sdrh } 857fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 858fae37af1Sdrhdo_test selectA-3.29 { 859fae37af1Sdrh execsql { 860fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 861fae37af1Sdrh ORDER BY c DESC,a,b 862fae37af1Sdrh } 863fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 864fae37af1Sdrhdo_test selectA-3.30 { 865fae37af1Sdrh execsql { 866fae37af1Sdrh SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2 867fae37af1Sdrh ORDER BY c COLLATE BINARY DESC,a,b 868fae37af1Sdrh } 869fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 870fae37af1Sdrhdo_test selectA-3.31 { 871fae37af1Sdrh execsql { 872fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 873fae37af1Sdrh ORDER BY a,b,c 874fae37af1Sdrh } 875fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 876fae37af1Sdrhdo_test selectA-3.32 { 877fae37af1Sdrh execsql { 878fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 879fae37af1Sdrh ORDER BY a DESC,b,c 880fae37af1Sdrh } 881fae37af1Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 882fae37af1Sdrhdo_test selectA-3.33 { 883fae37af1Sdrh execsql { 884fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 885fae37af1Sdrh ORDER BY a,c,b 886fae37af1Sdrh } 887fae37af1Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 888fae37af1Sdrhdo_test selectA-3.34 { 889fae37af1Sdrh execsql { 890fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 891fae37af1Sdrh ORDER BY b,a,c 892fae37af1Sdrh } 893fae37af1Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 894fae37af1Sdrhdo_test selectA-3.35 { 895fae37af1Sdrh execsql { 896fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 897c01b7306Sdrh ORDER BY y COLLATE NOCASE,x,z 898fae37af1Sdrh } 899fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 900fae37af1Sdrhdo_test selectA-3.36 { 901fae37af1Sdrh execsql { 902fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 903c01b7306Sdrh ORDER BY y COLLATE NOCASE DESC,x,z 904fae37af1Sdrh } 905fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 906fae37af1Sdrhdo_test selectA-3.37 { 907fae37af1Sdrh execsql { 908fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 909fae37af1Sdrh ORDER BY c,b,a 910fae37af1Sdrh } 911fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 912fae37af1Sdrhdo_test selectA-3.38 { 913fae37af1Sdrh execsql { 914fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 915fae37af1Sdrh ORDER BY c,a,b 916fae37af1Sdrh } 917fae37af1Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 918fae37af1Sdrhdo_test selectA-3.39 { 919fae37af1Sdrh execsql { 920fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 921fae37af1Sdrh ORDER BY c DESC,a,b 922fae37af1Sdrh } 923fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 924fae37af1Sdrhdo_test selectA-3.40 { 925fae37af1Sdrh execsql { 926fae37af1Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 927c01b7306Sdrh ORDER BY z COLLATE BINARY DESC,x,y 928fae37af1Sdrh } 929fae37af1Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 930fae37af1Sdrhdo_test selectA-3.41 { 931fae37af1Sdrh execsql { 932fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d' 933fae37af1Sdrh ORDER BY a,b,c 934fae37af1Sdrh } 935fae37af1Sdrh} {{} C c 1 a a 9.9 b B} 936fae37af1Sdrhdo_test selectA-3.42 { 937fae37af1Sdrh execsql { 938fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d' 939fae37af1Sdrh ORDER BY a,b,c 940fae37af1Sdrh } 941fae37af1Sdrh} {hello d D abc e e} 942fae37af1Sdrhdo_test selectA-3.43 { 943fae37af1Sdrh execsql { 944fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1 945fae37af1Sdrh ORDER BY a,b,c 946fae37af1Sdrh } 947fae37af1Sdrh} {hello d D abc e e} 948fae37af1Sdrhdo_test selectA-3.44 { 949fae37af1Sdrh execsql { 950fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d' 951fae37af1Sdrh ORDER BY a,b,c 952fae37af1Sdrh } 953fae37af1Sdrh} {hello d D abc e e} 954fae37af1Sdrhdo_test selectA-3.45 { 955fae37af1Sdrh execsql { 956fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 957fae37af1Sdrh ORDER BY a,b,c 958fae37af1Sdrh } 959fae37af1Sdrh} {{} C c 1 a a 9.9 b B} 960fae37af1Sdrhdo_test selectA-3.46 { 961fae37af1Sdrh execsql { 962fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1 963fae37af1Sdrh ORDER BY a,b,c 964fae37af1Sdrh } 965fae37af1Sdrh} {{} C c 1 a a 9.9 b B} 966fae37af1Sdrhdo_test selectA-3.47 { 967fae37af1Sdrh execsql { 968fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d' 969fae37af1Sdrh ORDER BY a DESC 970fae37af1Sdrh } 971fae37af1Sdrh} {9.9 b B 1 a a {} C c} 972fae37af1Sdrhdo_test selectA-3.48 { 973fae37af1Sdrh execsql { 974fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d' 975fae37af1Sdrh ORDER BY a DESC 976fae37af1Sdrh } 977fae37af1Sdrh} {abc e e hello d D} 978fae37af1Sdrhdo_test selectA-3.49 { 979fae37af1Sdrh execsql { 980fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1 981fae37af1Sdrh ORDER BY a DESC 982fae37af1Sdrh } 983fae37af1Sdrh} {abc e e hello d D} 984fae37af1Sdrhdo_test selectA-3.50 { 985fae37af1Sdrh execsql { 986fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d' 987fae37af1Sdrh ORDER BY a DESC 988fae37af1Sdrh } 989fae37af1Sdrh} {abc e e hello d D} 990fae37af1Sdrhdo_test selectA-3.51 { 991fae37af1Sdrh execsql { 992fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 993fae37af1Sdrh ORDER BY a DESC 994fae37af1Sdrh } 995fae37af1Sdrh} {9.9 b B 1 a a {} C c} 996fae37af1Sdrhdo_test selectA-3.52 { 997fae37af1Sdrh execsql { 998fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1 999fae37af1Sdrh ORDER BY a DESC 1000fae37af1Sdrh } 1001fae37af1Sdrh} {9.9 b B 1 a a {} C c} 1002fae37af1Sdrhdo_test selectA-3.53 { 1003fae37af1Sdrh execsql { 1004fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d' 1005fae37af1Sdrh ORDER BY b, a DESC 1006fae37af1Sdrh } 1007fae37af1Sdrh} {{} C c 1 a a 9.9 b B} 1008fae37af1Sdrhdo_test selectA-3.54 { 1009fae37af1Sdrh execsql { 1010fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d' 1011fae37af1Sdrh ORDER BY b 1012fae37af1Sdrh } 1013fae37af1Sdrh} {hello d D abc e e} 1014fae37af1Sdrhdo_test selectA-3.55 { 1015fae37af1Sdrh execsql { 1016fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1 1017fae37af1Sdrh ORDER BY b DESC, c 1018fae37af1Sdrh } 1019fae37af1Sdrh} {abc e e hello d D} 1020fae37af1Sdrhdo_test selectA-3.56 { 1021fae37af1Sdrh execsql { 1022fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d' 1023fae37af1Sdrh ORDER BY b, c DESC, a 1024fae37af1Sdrh } 1025fae37af1Sdrh} {hello d D abc e e} 1026fae37af1Sdrhdo_test selectA-3.57 { 1027fae37af1Sdrh execsql { 1028fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 1029fae37af1Sdrh ORDER BY b COLLATE NOCASE 1030fae37af1Sdrh } 1031fae37af1Sdrh} {1 a a 9.9 b B {} C c} 1032fae37af1Sdrhdo_test selectA-3.58 { 1033fae37af1Sdrh execsql { 1034fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1 1035fae37af1Sdrh ORDER BY b 1036fae37af1Sdrh } 1037fae37af1Sdrh} {{} C c 1 a a 9.9 b B} 1038fae37af1Sdrhdo_test selectA-3.59 { 1039fae37af1Sdrh execsql { 1040fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d' 1041fae37af1Sdrh ORDER BY c, a DESC 1042fae37af1Sdrh } 1043fae37af1Sdrh} {1 a a 9.9 b B {} C c} 1044fae37af1Sdrhdo_test selectA-3.60 { 1045fae37af1Sdrh execsql { 1046fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d' 1047fae37af1Sdrh ORDER BY c 1048fae37af1Sdrh } 1049fae37af1Sdrh} {hello d D abc e e} 1050fae37af1Sdrhdo_test selectA-3.61 { 1051fae37af1Sdrh execsql { 1052fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1 1053fae37af1Sdrh ORDER BY c COLLATE BINARY, b DESC, c, a, b, c, a, b, c 1054fae37af1Sdrh } 1055fae37af1Sdrh} {hello d D abc e e} 1056fae37af1Sdrhdo_test selectA-3.62 { 1057fae37af1Sdrh execsql { 1058fae37af1Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d' 1059fae37af1Sdrh ORDER BY c DESC, a 1060fae37af1Sdrh } 1061fae37af1Sdrh} {abc e e hello d D} 1062fae37af1Sdrhdo_test selectA-3.63 { 1063fae37af1Sdrh execsql { 1064fae37af1Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 1065fae37af1Sdrh ORDER BY c COLLATE NOCASE 1066fae37af1Sdrh } 1067fae37af1Sdrh} {1 a a 9.9 b B {} C c} 1068fae37af1Sdrhdo_test selectA-3.64 { 1069fae37af1Sdrh execsql { 1070fae37af1Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1 1071fae37af1Sdrh ORDER BY c 1072fae37af1Sdrh } 1073fae37af1Sdrh} {1 a a 9.9 b B {} C c} 10743f994d06Sdrhdo_test selectA-3.65 { 10753f994d06Sdrh execsql { 10763f994d06Sdrh SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 10773f994d06Sdrh ORDER BY c COLLATE NOCASE 10783f994d06Sdrh } 10793f994d06Sdrh} {1 a a 9.9 b B {} C c} 10803f994d06Sdrhdo_test selectA-3.66 { 10813f994d06Sdrh execsql { 10823f994d06Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3 10833f994d06Sdrh ORDER BY c 10843f994d06Sdrh } 10853f994d06Sdrh} {1 a a 9.9 b B {} C c} 10863f994d06Sdrhdo_test selectA-3.67 { 10873f994d06Sdrh execsql { 10883f994d06Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d' 10893f994d06Sdrh ORDER BY c DESC, a 10903f994d06Sdrh } 10913f994d06Sdrh} {abc e e hello d D} 10923f994d06Sdrhdo_test selectA-3.68 { 10933f994d06Sdrh execsql { 10943f994d06Sdrh SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d' 10953f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 10963f994d06Sdrh EXCEPT SELECT b,c,a FROM t3 10973f994d06Sdrh ORDER BY c DESC, a 10983f994d06Sdrh } 10993f994d06Sdrh} {abc e e hello d D} 11003f994d06Sdrhdo_test selectA-3.69 { 11013f994d06Sdrh execsql { 11023f994d06Sdrh SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d' 11033f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 11043f994d06Sdrh EXCEPT SELECT b,c,a FROM t3 11053f994d06Sdrh ORDER BY c COLLATE NOCASE 11063f994d06Sdrh } 11073f994d06Sdrh} {1 a a 9.9 b B {} C c} 11083f994d06Sdrhdo_test selectA-3.70 { 11093f994d06Sdrh execsql { 11103f994d06Sdrh SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1 11113f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 11123f994d06Sdrh EXCEPT SELECT b,c,a FROM t3 11133f994d06Sdrh ORDER BY c 11143f994d06Sdrh } 11153f994d06Sdrh} {1 a a 9.9 b B {} C c} 11163f994d06Sdrhdo_test selectA-3.71 { 11173f994d06Sdrh execsql { 11183f994d06Sdrh SELECT a,b,c FROM t1 WHERE b<'d' 11193f994d06Sdrh INTERSECT SELECT a,b,c FROM t1 11203f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 11213f994d06Sdrh EXCEPT SELECT b,c,a FROM t3 11223f994d06Sdrh INTERSECT SELECT a,b,c FROM t1 11233f994d06Sdrh EXCEPT SELECT x,y,z FROM t2 11243f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 11253f994d06Sdrh EXCEPT SELECT y,x,z FROM t2 11263f994d06Sdrh INTERSECT SELECT a,b,c FROM t1 11273f994d06Sdrh EXCEPT SELECT c,b,a FROM t3 11283f994d06Sdrh ORDER BY c 11293f994d06Sdrh } 11303f994d06Sdrh} {1 a a 9.9 b B {} C c} 11313f994d06Sdrhdo_test selectA-3.72 { 11323f994d06Sdrh execsql { 11333f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 11343f994d06Sdrh ORDER BY a,b,c 11353f994d06Sdrh } 11363f994d06Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 11373f994d06Sdrhdo_test selectA-3.73 { 11383f994d06Sdrh execsql { 11393f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 11403f994d06Sdrh ORDER BY a DESC,b,c 11413f994d06Sdrh } 11423f994d06Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 11433f994d06Sdrhdo_test selectA-3.74 { 11443f994d06Sdrh execsql { 11453f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 11463f994d06Sdrh ORDER BY a,c,b 11473f994d06Sdrh } 11483f994d06Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 11493f994d06Sdrhdo_test selectA-3.75 { 11503f994d06Sdrh execsql { 11513f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 11523f994d06Sdrh ORDER BY b,a,c 11533f994d06Sdrh } 11543f994d06Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 11553f994d06Sdrhdo_test selectA-3.76 { 11563f994d06Sdrh execsql { 11573f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 11583f994d06Sdrh ORDER BY b COLLATE NOCASE,a,c 11593f994d06Sdrh } 11603f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 11613f994d06Sdrhdo_test selectA-3.77 { 11623f994d06Sdrh execsql { 11633f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 11643f994d06Sdrh ORDER BY b COLLATE NOCASE DESC,a,c 11653f994d06Sdrh } 11663f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 11673f994d06Sdrhdo_test selectA-3.78 { 11683f994d06Sdrh execsql { 11693f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 11703f994d06Sdrh ORDER BY c,b,a 11713f994d06Sdrh } 11723f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 11733f994d06Sdrhdo_test selectA-3.79 { 11743f994d06Sdrh execsql { 11753f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 11763f994d06Sdrh ORDER BY c,a,b 11773f994d06Sdrh } 11783f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 11793f994d06Sdrhdo_test selectA-3.80 { 11803f994d06Sdrh execsql { 11813f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 11823f994d06Sdrh ORDER BY c DESC,a,b 11833f994d06Sdrh } 11843f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 11853f994d06Sdrhdo_test selectA-3.81 { 11863f994d06Sdrh execsql { 11873f994d06Sdrh SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2 11883f994d06Sdrh ORDER BY c COLLATE BINARY DESC,a,b 11893f994d06Sdrh } 11903f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 11913f994d06Sdrhdo_test selectA-3.82 { 11923f994d06Sdrh execsql { 11933f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 11943f994d06Sdrh ORDER BY a,b,c 11953f994d06Sdrh } 11963f994d06Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 11973f994d06Sdrhdo_test selectA-3.83 { 11983f994d06Sdrh execsql { 11993f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 12003f994d06Sdrh ORDER BY a DESC,b,c 12013f994d06Sdrh } 12023f994d06Sdrh} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u} 12033f994d06Sdrhdo_test selectA-3.84 { 12043f994d06Sdrh execsql { 12053f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 12063f994d06Sdrh ORDER BY a,c,b 12073f994d06Sdrh } 12083f994d06Sdrh} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M} 12093f994d06Sdrhdo_test selectA-3.85 { 12103f994d06Sdrh execsql { 12113f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 12123f994d06Sdrh ORDER BY b,a,c 12133f994d06Sdrh } 12143f994d06Sdrh} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M} 12153f994d06Sdrhdo_test selectA-3.86 { 12163f994d06Sdrh execsql { 12173f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 1218c01b7306Sdrh ORDER BY y COLLATE NOCASE,x,z 12193f994d06Sdrh } 12203f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 12213f994d06Sdrhdo_test selectA-3.87 { 12223f994d06Sdrh execsql { 12233f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 12243f994d06Sdrh ORDER BY y COLLATE NOCASE DESC,x,z 12253f994d06Sdrh } 12263f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 12273f994d06Sdrhdo_test selectA-3.88 { 12283f994d06Sdrh execsql { 12293f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 12303f994d06Sdrh ORDER BY c,b,a 12313f994d06Sdrh } 12323f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 12333f994d06Sdrhdo_test selectA-3.89 { 12343f994d06Sdrh execsql { 12353f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 12363f994d06Sdrh ORDER BY c,a,b 12373f994d06Sdrh } 12383f994d06Sdrh} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z} 12393f994d06Sdrhdo_test selectA-3.90 { 12403f994d06Sdrh execsql { 12413f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 12423f994d06Sdrh ORDER BY c DESC,a,b 12433f994d06Sdrh } 12443f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 12453f994d06Sdrhdo_test selectA-3.91 { 12463f994d06Sdrh execsql { 12473f994d06Sdrh SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 1248c01b7306Sdrh ORDER BY z COLLATE BINARY DESC,x,y 12493f994d06Sdrh } 12503f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B} 12513f994d06Sdrhdo_test selectA-3.92 { 12523f994d06Sdrh execsql { 12533f994d06Sdrh SELECT x,y,z FROM t2 12543f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 12553f994d06Sdrh EXCEPT SELECT c,b,a FROM t1 12563f994d06Sdrh UNION SELECT a,b,c FROM t3 12573f994d06Sdrh INTERSECT SELECT a,b,c FROM t3 12583f994d06Sdrh EXCEPT SELECT c,b,a FROM t1 12593f994d06Sdrh UNION SELECT a,b,c FROM t3 12603f994d06Sdrh ORDER BY y COLLATE NOCASE DESC,x,z 12613f994d06Sdrh } 12623f994d06Sdrh} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a} 126385e9e22bSdrhdo_test selectA-3.93 { 126485e9e22bSdrh execsql { 126585e9e22bSdrh SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1)); 126685e9e22bSdrh } 126785e9e22bSdrh} {A} 126885e9e22bSdrhdo_test selectA-3.94 { 126985e9e22bSdrh execsql { 127085e9e22bSdrh SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1)); 127185e9e22bSdrh } 127285e9e22bSdrh} {a} 127385e9e22bSdrhdo_test selectA-3.95 { 127485e9e22bSdrh execsql { 127585e9e22bSdrh SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1)); 127685e9e22bSdrh } 127785e9e22bSdrh} {{}} 127885e9e22bSdrhdo_test selectA-3.96 { 127985e9e22bSdrh execsql { 128085e9e22bSdrh SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1)); 128185e9e22bSdrh } 128285e9e22bSdrh} {m} 128385e9e22bSdrhdo_test selectA-3.97 { 128485e9e22bSdrh execsql { 128585e9e22bSdrh SELECT upper((SELECT x FROM ( 128685e9e22bSdrh SELECT x,y,z FROM t2 128785e9e22bSdrh INTERSECT SELECT a,b,c FROM t3 128885e9e22bSdrh EXCEPT SELECT c,b,a FROM t1 128985e9e22bSdrh UNION SELECT a,b,c FROM t3 129085e9e22bSdrh INTERSECT SELECT a,b,c FROM t3 129185e9e22bSdrh EXCEPT SELECT c,b,a FROM t1 129285e9e22bSdrh UNION SELECT a,b,c FROM t3 129385e9e22bSdrh ORDER BY y COLLATE NOCASE DESC,x,z))) 129485e9e22bSdrh } 129585e9e22bSdrh} {MAD} 1296a6e3a8c9Sdrhdo_execsql_test selectA-3.98 { 1297a6e3a8c9Sdrh WITH RECURSIVE 1298a6e3a8c9Sdrh xyz(n) AS ( 1299a6e3a8c9Sdrh SELECT upper((SELECT x FROM ( 1300a6e3a8c9Sdrh SELECT x,y,z FROM t2 1301a6e3a8c9Sdrh INTERSECT SELECT a,b,c FROM t3 1302a6e3a8c9Sdrh EXCEPT SELECT c,b,a FROM t1 1303a6e3a8c9Sdrh UNION SELECT a,b,c FROM t3 1304a6e3a8c9Sdrh INTERSECT SELECT a,b,c FROM t3 1305a6e3a8c9Sdrh EXCEPT SELECT c,b,a FROM t1 1306a6e3a8c9Sdrh UNION SELECT a,b,c FROM t3 1307a6e3a8c9Sdrh ORDER BY y COLLATE NOCASE DESC,x,z))) 1308a6e3a8c9Sdrh UNION ALL 1309a6e3a8c9Sdrh SELECT n || '+' FROM xyz WHERE length(n)<5 1310a6e3a8c9Sdrh ) 1311a6e3a8c9Sdrh SELECT n FROM xyz ORDER BY +n; 1312a6e3a8c9Sdrh} {MAD MAD+ MAD++} 1313fae37af1Sdrh 131438524132Sdan#------------------------------------------------------------------------- 131538524132Sdan# At one point the following code exposed a temp register reuse problem. 131638524132Sdan# 131738524132Sdanproc f {args} { return 1 } 131838524132Sdandb func f f 131938524132Sdan 132038524132Sdando_execsql_test 4.1.1 { 132138524132Sdan CREATE TABLE t4(a, b); 132238524132Sdan CREATE TABLE t5(c, d); 132338524132Sdan 132438524132Sdan INSERT INTO t5 VALUES(1, 'x'); 132538524132Sdan INSERT INTO t5 VALUES(2, 'x'); 132638524132Sdan INSERT INTO t4 VALUES(3, 'x'); 132738524132Sdan INSERT INTO t4 VALUES(4, 'x'); 132838524132Sdan 132938524132Sdan CREATE INDEX i1 ON t4(a); 133038524132Sdan CREATE INDEX i2 ON t5(c); 133138524132Sdan} 133238524132Sdan 133338524132Sdando_eqp_test 4.1.2 { 133438524132Sdan SELECT c, d FROM t5 133538524132Sdan UNION ALL 133638524132Sdan SELECT a, b FROM t4 WHERE f()==f() 133738524132Sdan ORDER BY 1,2 133838524132Sdan} { 1339b3f0276bSdrh QUERY PLAN 1340b3f0276bSdrh `--MERGE (UNION ALL) 1341b3f0276bSdrh |--LEFT 13428210233cSdrh | |--SCAN t5 USING INDEX i2 1343b3f0276bSdrh | `--USE TEMP B-TREE FOR RIGHT PART OF ORDER BY 1344b3f0276bSdrh `--RIGHT 13458210233cSdrh |--SCAN t4 USING INDEX i1 1346b3f0276bSdrh `--USE TEMP B-TREE FOR RIGHT PART OF ORDER BY 134738524132Sdan} 134838524132Sdan 134938524132Sdando_execsql_test 4.1.3 { 135038524132Sdan SELECT c, d FROM t5 135138524132Sdan UNION ALL 135238524132Sdan SELECT a, b FROM t4 WHERE f()==f() 135338524132Sdan ORDER BY 1,2 135438524132Sdan} { 135538524132Sdan 1 x 2 x 3 x 4 x 135638524132Sdan} 135738524132Sdan 135838524132Sdando_execsql_test 4.2.1 { 135938524132Sdan CREATE TABLE t6(a, b); 136038524132Sdan CREATE TABLE t7(c, d); 136138524132Sdan 136238524132Sdan INSERT INTO t7 VALUES(2, 9); 136338524132Sdan INSERT INTO t6 VALUES(3, 0); 136438524132Sdan INSERT INTO t6 VALUES(4, 1); 136538524132Sdan INSERT INTO t7 VALUES(5, 6); 136638524132Sdan INSERT INTO t6 VALUES(6, 0); 136738524132Sdan INSERT INTO t7 VALUES(7, 6); 136838524132Sdan 136938524132Sdan CREATE INDEX i6 ON t6(a); 137038524132Sdan CREATE INDEX i7 ON t7(c); 137138524132Sdan} 137238524132Sdan 137338524132Sdando_execsql_test 4.2.2 { 137438524132Sdan SELECT c, f(d,c,d,c,d) FROM t7 137538524132Sdan UNION ALL 137638524132Sdan SELECT a, b FROM t6 137738524132Sdan ORDER BY 1,2 137838524132Sdan} {/2 . 3 . 4 . 5 . 6 . 7 ./} 137938524132Sdan 138038524132Sdan 1381b33c50f2Sdanproc strip_rnd {explain} { 1382b33c50f2Sdan regexp -all {sqlite_sq_[0123456789ABCDEF]*} $explain sqlite_sq 1383b33c50f2Sdan} 1384b33c50f2Sdan 1385b33c50f2Sdanproc do_same_test {tn q1 args} { 1386b33c50f2Sdan set r2 [strip_rnd [db eval "EXPLAIN $q1"]] 1387b33c50f2Sdan set i 1 1388b33c50f2Sdan foreach q $args { 1389b33c50f2Sdan set tst [subst -nocommands {strip_rnd [db eval "EXPLAIN $q"]}] 1390b33c50f2Sdan uplevel do_test $tn.$i [list $tst] [list $r2] 1391b33c50f2Sdan incr i 1392b33c50f2Sdan } 1393b33c50f2Sdan} 1394b33c50f2Sdan 1395b33c50f2Sdando_execsql_test 5.0 { 1396b33c50f2Sdan CREATE TABLE t8(a, b); 1397b33c50f2Sdan CREATE TABLE t9(c, d); 1398b33c50f2Sdan} {} 1399b33c50f2Sdan 1400b33c50f2Sdando_same_test 5.1 { 1401b33c50f2Sdan SELECT a, b FROM t8 INTERSECT SELECT c, d FROM t9 ORDER BY a; 1402b33c50f2Sdan} { 1403b33c50f2Sdan SELECT a, b FROM t8 INTERSECT SELECT c, d FROM t9 ORDER BY t8.a; 1404b33c50f2Sdan} { 1405b33c50f2Sdan SELECT a, b FROM t8 INTERSECT SELECT c, d FROM t9 ORDER BY 1; 1406b33c50f2Sdan} { 1407b33c50f2Sdan SELECT a, b FROM t8 INTERSECT SELECT c, d FROM t9 ORDER BY c; 1408b33c50f2Sdan} { 1409b33c50f2Sdan SELECT a, b FROM t8 INTERSECT SELECT c, d FROM t9 ORDER BY t9.c; 1410b33c50f2Sdan} 1411b33c50f2Sdan 1412b33c50f2Sdando_same_test 5.2 { 1413b33c50f2Sdan SELECT a, b FROM t8 UNION SELECT c, d FROM t9 ORDER BY a COLLATE NOCASE 1414b33c50f2Sdan} { 1415b33c50f2Sdan SELECT a, b FROM t8 UNION SELECT c, d FROM t9 ORDER BY t8.a COLLATE NOCASE 1416b33c50f2Sdan} { 1417b33c50f2Sdan SELECT a, b FROM t8 UNION SELECT c, d FROM t9 ORDER BY 1 COLLATE NOCASE 1418b33c50f2Sdan} { 1419b33c50f2Sdan SELECT a, b FROM t8 UNION SELECT c, d FROM t9 ORDER BY c COLLATE NOCASE 1420b33c50f2Sdan} { 1421b33c50f2Sdan SELECT a, b FROM t8 UNION SELECT c, d FROM t9 ORDER BY t9.c COLLATE NOCASE 1422b33c50f2Sdan} 1423b33c50f2Sdan 1424b33c50f2Sdando_same_test 5.3 { 1425b33c50f2Sdan SELECT a, b FROM t8 EXCEPT SELECT c, d FROM t9 ORDER BY b, c COLLATE NOCASE 1426b33c50f2Sdan} { 1427b33c50f2Sdan SELECT a, b FROM t8 EXCEPT SELECT c, d FROM t9 ORDER BY 2, 1 COLLATE NOCASE 1428b33c50f2Sdan} { 1429b33c50f2Sdan SELECT a, b FROM t8 EXCEPT SELECT c, d FROM t9 ORDER BY d, a COLLATE NOCASE 1430b33c50f2Sdan} { 1431b33c50f2Sdan SELECT a, b FROM t8 EXCEPT SELECT * FROM t9 ORDER BY t9.d, c COLLATE NOCASE 1432b33c50f2Sdan} { 1433b33c50f2Sdan SELECT * FROM t8 EXCEPT SELECT c, d FROM t9 ORDER BY d, t8.a COLLATE NOCASE 1434b33c50f2Sdan} 1435b33c50f2Sdan 1436b33c50f2Sdando_catchsql_test 5.4 { 1437b33c50f2Sdan SELECT * FROM t8 UNION SELECT * FROM t9 ORDER BY a+b COLLATE NOCASE 1438b33c50f2Sdan} {1 {1st ORDER BY term does not match any column in the result set}} 1439b33c50f2Sdan 14404b37cd49Sdrhdo_execsql_test 6.1 { 14414b37cd49Sdrh DROP TABLE IF EXISTS t1; 14424b37cd49Sdrh DROP TABLE IF EXISTS t2; 14434b37cd49Sdrh CREATE TABLE t1(a INTEGER); 14444b37cd49Sdrh CREATE TABLE t2(b TEXT); 14454b37cd49Sdrh INSERT INTO t2(b) VALUES('12345'); 14464b37cd49Sdrh SELECT * FROM (SELECT a FROM t1 UNION SELECT b FROM t2) WHERE a=a; 14474b37cd49Sdrh} {12345} 14484b37cd49Sdrh 1449b7cbf5c1Sdrh# 2020-06-15 ticket 8f157e8010b22af0 1450b7cbf5c1Sdrh# 1451b7cbf5c1Sdrhreset_db 1452b7cbf5c1Sdrhdo_execsql_test 7.1 { 1453b7cbf5c1Sdrh CREATE TABLE t1(c1); INSERT INTO t1 VALUES(12),(123),(1234),(NULL),('abc'); 1454b7cbf5c1Sdrh CREATE TABLE t2(c2); INSERT INTO t2 VALUES(44),(55),(123); 1455b7cbf5c1Sdrh CREATE TABLE t3(c3,c4); INSERT INTO t3 VALUES(66,1),(123,2),(77,3); 1456b7cbf5c1Sdrh CREATE VIEW t4 AS SELECT c3 FROM t3; 1457b7cbf5c1Sdrh CREATE VIEW t5 AS SELECT c3 FROM t3 ORDER BY c4; 1458b7cbf5c1Sdrh} 1459b7cbf5c1Sdrhdo_execsql_test 7.2 { 1460b7cbf5c1Sdrh SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t4) AND c1=123; 1461b7cbf5c1Sdrh} {123 123} 1462b7cbf5c1Sdrhdo_execsql_test 7.3 { 1463b7cbf5c1Sdrh SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t5) AND c1=123; 1464b7cbf5c1Sdrh} {123 123} 1465b7cbf5c1Sdrhdo_execsql_test 7.4 { 1466b7cbf5c1Sdrh CREATE TABLE a(b); 1467b7cbf5c1Sdrh CREATE VIEW c(d) AS SELECT b FROM a ORDER BY b; 1468b7cbf5c1Sdrh SELECT sum(d) OVER( PARTITION BY(SELECT 0 FROM c JOIN a WHERE b =(SELECT b INTERSECT SELECT d FROM c) AND b = 123)) FROM c; 1469b7cbf5c1Sdrh} {} 1470b33c50f2Sdan 1471cd0b2459Sdan#------------------------------------------------------------------------- 1472cd0b2459Sdanreset_db 1473cd0b2459Sdando_execsql_test 8.0 { 1474cd0b2459Sdan CREATE TABLE x1(x); 1475cd0b2459Sdan CREATE TABLE t1(a, b, c, d); 1476cd0b2459Sdan CREATE INDEX t1a ON t1(a); 1477cd0b2459Sdan CREATE INDEX t1b ON t1(b); 1478cd0b2459Sdan} 1479cd0b2459Sdan 1480cd0b2459Sdando_execsql_test 8.1 { 1481cd0b2459Sdan SELECT 'ABCD' FROM t1 1482cd0b2459Sdan WHERE (a=? OR b=?) 1483cd0b2459Sdan AND (0 OR (SELECT 'xyz' INTERSECT SELECT a ORDER BY 1)) 1484cd0b2459Sdan} {} 1485cd0b2459Sdan 1486*195687f1Sdan#------------------------------------------------------------------------- 1487*195687f1Sdan# dbsqlfuzz a34f455c91ad75a0cf8cd9476841903f42930a7a 1488*195687f1Sdan# 1489*195687f1Sdanreset_db 1490*195687f1Sdando_execsql_test 9.0 { 1491*195687f1Sdan CREATE TABLE t1(a COLLATE nocase); 1492*195687f1Sdan CREATE TABLE t2(b COLLATE nocase); 1493*195687f1Sdan 1494*195687f1Sdan INSERT INTO t1 VALUES('ABC'); 1495*195687f1Sdan INSERT INTO t2 VALUES('abc'); 1496*195687f1Sdan} 1497*195687f1Sdan 1498*195687f1Sdando_execsql_test 9.1 { 1499*195687f1Sdan SELECT a FROM t1 INTERSECT SELECT b FROM t2; 1500*195687f1Sdan} {ABC} 1501*195687f1Sdan 1502*195687f1Sdando_execsql_test 9.2 { 1503*195687f1Sdan SELECT * FROM ( 1504*195687f1Sdan SELECT a FROM t1 INTERSECT SELECT b FROM t2 1505*195687f1Sdan ) WHERE a||'' = 'ABC'; 1506*195687f1Sdan} {ABC} 1507*195687f1Sdan 1508*195687f1Sdan 1509*195687f1Sdan 1510fae37af1Sdrhfinish_test 1511