Annotation of embedaddon/sqlite3/test/selectA.test, revision 1.1
1.1 ! misho 1: # 2008 June 24
! 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.
! 12: #
! 13: # The focus of this file is testing the compound-SELECT merge
! 14: # optimization. Or, in other words, making sure that all
! 15: # possible combinations of UNION, UNION ALL, EXCEPT, and
! 16: # INTERSECT work together with an ORDER BY clause (with or w/o
! 17: # explicit sort order and explicit collating secquites) and
! 18: # with and without optional LIMIT and OFFSET clauses.
! 19: #
! 20: # $Id: selectA.test,v 1.6 2008/08/21 14:24:29 drh Exp $
! 21:
! 22: set testdir [file dirname $argv0]
! 23: source $testdir/tester.tcl
! 24:
! 25: ifcapable !compound {
! 26: finish_test
! 27: return
! 28: }
! 29:
! 30: do_test selectA-1.0 {
! 31: execsql {
! 32: CREATE TABLE t1(a,b,c COLLATE NOCASE);
! 33: INSERT INTO t1 VALUES(1,'a','a');
! 34: INSERT INTO t1 VALUES(9.9, 'b', 'B');
! 35: INSERT INTO t1 VALUES(NULL, 'C', 'c');
! 36: INSERT INTO t1 VALUES('hello', 'd', 'D');
! 37: INSERT INTO t1 VALUES(x'616263', 'e', 'e');
! 38: SELECT * FROM t1;
! 39: }
! 40: } {1 a a 9.9 b B {} C c hello d D abc e e}
! 41: do_test selectA-1.1 {
! 42: execsql {
! 43: CREATE TABLE t2(x,y,z COLLATE NOCASE);
! 44: INSERT INTO t2 VALUES(NULL,'U','u');
! 45: INSERT INTO t2 VALUES('mad', 'Z', 'z');
! 46: INSERT INTO t2 VALUES(x'68617265', 'm', 'M');
! 47: INSERT INTO t2 VALUES(5.2e6, 'X', 'x');
! 48: INSERT INTO t2 VALUES(-23, 'Y', 'y');
! 49: SELECT * FROM t2;
! 50: }
! 51: } {{} U u mad Z z hare m M 5200000.0 X x -23 Y y}
! 52: do_test selectA-1.2 {
! 53: execsql {
! 54: CREATE TABLE t3(a,b,c COLLATE NOCASE);
! 55: INSERT INTO t3 SELECT * FROM t1;
! 56: INSERT INTO t3 SELECT * FROM t2;
! 57: INSERT INTO t3 SELECT * FROM t1;
! 58: INSERT INTO t3 SELECT * FROM t2;
! 59: INSERT INTO t3 SELECT * FROM t1;
! 60: INSERT INTO t3 SELECT * FROM t2;
! 61: SELECT count(*) FROM t3;
! 62: }
! 63: } {30}
! 64:
! 65: do_test selectA-2.1 {
! 66: execsql {
! 67: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 68: ORDER BY a,b,c
! 69: }
! 70: } {{} 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}
! 71: do_test selectA-2.1.1 { # Ticket #3314
! 72: execsql {
! 73: SELECT t1.a, t1.b, t1.c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 74: ORDER BY a,b,c
! 75: }
! 76: } {{} 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}
! 77: do_test selectA-2.1.2 { # Ticket #3314
! 78: execsql {
! 79: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 80: ORDER BY t1.a, t1.b, t1.c
! 81: }
! 82: } {{} 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}
! 83: do_test selectA-2.2 {
! 84: execsql {
! 85: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 86: ORDER BY a DESC,b,c
! 87: }
! 88: } {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}
! 89: do_test selectA-2.3 {
! 90: execsql {
! 91: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 92: ORDER BY a,c,b
! 93: }
! 94: } {{} 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}
! 95: do_test selectA-2.4 {
! 96: execsql {
! 97: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 98: ORDER BY b,a,c
! 99: }
! 100: } {{} 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}
! 101: do_test selectA-2.5 {
! 102: execsql {
! 103: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 104: ORDER BY b COLLATE NOCASE,a,c
! 105: }
! 106: } {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}
! 107: do_test selectA-2.6 {
! 108: execsql {
! 109: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 110: ORDER BY b COLLATE NOCASE DESC,a,c
! 111: }
! 112: } {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}
! 113: do_test selectA-2.7 {
! 114: execsql {
! 115: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 116: ORDER BY c,b,a
! 117: }
! 118: } {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}
! 119: do_test selectA-2.8 {
! 120: execsql {
! 121: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 122: ORDER BY c,a,b
! 123: }
! 124: } {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}
! 125: do_test selectA-2.9 {
! 126: execsql {
! 127: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 128: ORDER BY c DESC,a,b
! 129: }
! 130: } {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}
! 131: do_test selectA-2.10 {
! 132: execsql {
! 133: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 134: ORDER BY c COLLATE BINARY DESC,a,b
! 135: }
! 136: } {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}
! 137: do_test selectA-2.11 {
! 138: execsql {
! 139: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 140: ORDER BY a,b,c
! 141: }
! 142: } {{} 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}
! 143: do_test selectA-2.12 {
! 144: execsql {
! 145: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 146: ORDER BY a DESC,b,c
! 147: }
! 148: } {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}
! 149: do_test selectA-2.13 {
! 150: execsql {
! 151: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 152: ORDER BY a,c,b
! 153: }
! 154: } {{} 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}
! 155: do_test selectA-2.14 {
! 156: execsql {
! 157: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 158: ORDER BY b,a,c
! 159: }
! 160: } {{} 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}
! 161: do_test selectA-2.15 {
! 162: execsql {
! 163: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 164: ORDER BY b COLLATE NOCASE,a,c
! 165: }
! 166: } {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}
! 167: do_test selectA-2.16 {
! 168: execsql {
! 169: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 170: ORDER BY b COLLATE NOCASE DESC,a,c
! 171: }
! 172: } {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}
! 173: do_test selectA-2.17 {
! 174: execsql {
! 175: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 176: ORDER BY c,b,a
! 177: }
! 178: } {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}
! 179: do_test selectA-2.18 {
! 180: execsql {
! 181: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 182: ORDER BY c,a,b
! 183: }
! 184: } {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}
! 185: do_test selectA-2.19 {
! 186: execsql {
! 187: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 188: ORDER BY c DESC,a,b
! 189: }
! 190: } {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}
! 191: do_test selectA-2.20 {
! 192: execsql {
! 193: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 194: ORDER BY c COLLATE BINARY DESC,a,b
! 195: }
! 196: } {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}
! 197: do_test selectA-2.21 {
! 198: execsql {
! 199: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 200: ORDER BY a,b,c
! 201: }
! 202: } {{} 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}
! 203: do_test selectA-2.22 {
! 204: execsql {
! 205: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 206: ORDER BY a DESC,b,c
! 207: }
! 208: } {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}
! 209: do_test selectA-2.23 {
! 210: execsql {
! 211: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 212: ORDER BY a,c,b
! 213: }
! 214: } {{} 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}
! 215: do_test selectA-2.24 {
! 216: execsql {
! 217: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 218: ORDER BY b,a,c
! 219: }
! 220: } {{} 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}
! 221: do_test selectA-2.25 {
! 222: execsql {
! 223: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 224: ORDER BY b COLLATE NOCASE,a,c
! 225: }
! 226: } {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}
! 227: do_test selectA-2.26 {
! 228: execsql {
! 229: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 230: ORDER BY b COLLATE NOCASE DESC,a,c
! 231: }
! 232: } {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}
! 233: do_test selectA-2.27 {
! 234: execsql {
! 235: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 236: ORDER BY c,b,a
! 237: }
! 238: } {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}
! 239: do_test selectA-2.28 {
! 240: execsql {
! 241: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 242: ORDER BY c,a,b
! 243: }
! 244: } {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}
! 245: do_test selectA-2.29 {
! 246: execsql {
! 247: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 248: ORDER BY c DESC,a,b
! 249: }
! 250: } {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}
! 251: do_test selectA-2.30 {
! 252: execsql {
! 253: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 254: ORDER BY c COLLATE BINARY DESC,a,b
! 255: }
! 256: } {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}
! 257: do_test selectA-2.31 {
! 258: execsql {
! 259: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 260: ORDER BY a,b,c
! 261: }
! 262: } {{} 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}
! 263: do_test selectA-2.32 {
! 264: execsql {
! 265: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 266: ORDER BY a DESC,b,c
! 267: }
! 268: } {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}
! 269: do_test selectA-2.33 {
! 270: execsql {
! 271: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 272: ORDER BY a,c,b
! 273: }
! 274: } {{} 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}
! 275: do_test selectA-2.34 {
! 276: execsql {
! 277: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 278: ORDER BY b,a,c
! 279: }
! 280: } {{} 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}
! 281: do_test selectA-2.35 {
! 282: execsql {
! 283: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 284: ORDER BY b COLLATE NOCASE,a,c
! 285: }
! 286: } {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}
! 287: do_test selectA-2.36 {
! 288: execsql {
! 289: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 290: ORDER BY b COLLATE NOCASE DESC,a,c
! 291: }
! 292: } {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}
! 293: do_test selectA-2.37 {
! 294: execsql {
! 295: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 296: ORDER BY c,b,a
! 297: }
! 298: } {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}
! 299: do_test selectA-2.38 {
! 300: execsql {
! 301: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 302: ORDER BY c,a,b
! 303: }
! 304: } {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}
! 305: do_test selectA-2.39 {
! 306: execsql {
! 307: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 308: ORDER BY c DESC,a,b
! 309: }
! 310: } {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}
! 311: do_test selectA-2.40 {
! 312: execsql {
! 313: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 314: ORDER BY c COLLATE BINARY DESC,a,b
! 315: }
! 316: } {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}
! 317: do_test selectA-2.41 {
! 318: execsql {
! 319: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
! 320: ORDER BY a,b,c
! 321: }
! 322: } {{} C c 1 a a 9.9 b B}
! 323: do_test selectA-2.42 {
! 324: execsql {
! 325: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
! 326: ORDER BY a,b,c
! 327: }
! 328: } {hello d D abc e e}
! 329: do_test selectA-2.43 {
! 330: execsql {
! 331: SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
! 332: ORDER BY a,b,c
! 333: }
! 334: } {hello d D abc e e}
! 335: do_test selectA-2.44 {
! 336: execsql {
! 337: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
! 338: ORDER BY a,b,c
! 339: }
! 340: } {hello d D abc e e}
! 341: do_test selectA-2.45 {
! 342: execsql {
! 343: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 344: ORDER BY a,b,c
! 345: }
! 346: } {{} C c 1 a a 9.9 b B}
! 347: do_test selectA-2.46 {
! 348: execsql {
! 349: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
! 350: ORDER BY a,b,c
! 351: }
! 352: } {{} C c 1 a a 9.9 b B}
! 353: do_test selectA-2.47 {
! 354: execsql {
! 355: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
! 356: ORDER BY a DESC
! 357: }
! 358: } {9.9 b B 1 a a {} C c}
! 359: do_test selectA-2.48 {
! 360: execsql {
! 361: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
! 362: ORDER BY a DESC
! 363: }
! 364: } {abc e e hello d D}
! 365: do_test selectA-2.49 {
! 366: execsql {
! 367: SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
! 368: ORDER BY a DESC
! 369: }
! 370: } {abc e e hello d D}
! 371: do_test selectA-2.50 {
! 372: execsql {
! 373: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
! 374: ORDER BY a DESC
! 375: }
! 376: } {abc e e hello d D}
! 377: do_test selectA-2.51 {
! 378: execsql {
! 379: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 380: ORDER BY a DESC
! 381: }
! 382: } {9.9 b B 1 a a {} C c}
! 383: do_test selectA-2.52 {
! 384: execsql {
! 385: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
! 386: ORDER BY a DESC
! 387: }
! 388: } {9.9 b B 1 a a {} C c}
! 389: do_test selectA-2.53 {
! 390: execsql {
! 391: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
! 392: ORDER BY b, a DESC
! 393: }
! 394: } {{} C c 1 a a 9.9 b B}
! 395: do_test selectA-2.54 {
! 396: execsql {
! 397: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
! 398: ORDER BY b
! 399: }
! 400: } {hello d D abc e e}
! 401: do_test selectA-2.55 {
! 402: execsql {
! 403: SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
! 404: ORDER BY b DESC, c
! 405: }
! 406: } {abc e e hello d D}
! 407: do_test selectA-2.56 {
! 408: execsql {
! 409: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
! 410: ORDER BY b, c DESC, a
! 411: }
! 412: } {hello d D abc e e}
! 413: do_test selectA-2.57 {
! 414: execsql {
! 415: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 416: ORDER BY b COLLATE NOCASE
! 417: }
! 418: } {1 a a 9.9 b B {} C c}
! 419: do_test selectA-2.58 {
! 420: execsql {
! 421: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
! 422: ORDER BY b
! 423: }
! 424: } {{} C c 1 a a 9.9 b B}
! 425: do_test selectA-2.59 {
! 426: execsql {
! 427: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
! 428: ORDER BY c, a DESC
! 429: }
! 430: } {1 a a 9.9 b B {} C c}
! 431: do_test selectA-2.60 {
! 432: execsql {
! 433: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
! 434: ORDER BY c
! 435: }
! 436: } {hello d D abc e e}
! 437: do_test selectA-2.61 {
! 438: execsql {
! 439: SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
! 440: ORDER BY c COLLATE BINARY, b DESC, c, a, b, c, a, b, c
! 441: }
! 442: } {hello d D abc e e}
! 443: do_test selectA-2.62 {
! 444: execsql {
! 445: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
! 446: ORDER BY c DESC, a
! 447: }
! 448: } {abc e e hello d D}
! 449: do_test selectA-2.63 {
! 450: execsql {
! 451: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 452: ORDER BY c COLLATE NOCASE
! 453: }
! 454: } {1 a a 9.9 b B {} C c}
! 455: do_test selectA-2.64 {
! 456: execsql {
! 457: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
! 458: ORDER BY c
! 459: }
! 460: } {1 a a 9.9 b B {} C c}
! 461: do_test selectA-2.65 {
! 462: execsql {
! 463: SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 464: ORDER BY c COLLATE NOCASE
! 465: }
! 466: } {1 a a 9.9 b B {} C c}
! 467: do_test selectA-2.66 {
! 468: execsql {
! 469: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3
! 470: ORDER BY c
! 471: }
! 472: } {1 a a 9.9 b B {} C c}
! 473: do_test selectA-2.67 {
! 474: execsql {
! 475: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d'
! 476: ORDER BY c DESC, a
! 477: }
! 478: } {abc e e hello d D}
! 479: do_test selectA-2.68 {
! 480: execsql {
! 481: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
! 482: INTERSECT SELECT a,b,c FROM t3
! 483: EXCEPT SELECT b,c,a FROM t3
! 484: ORDER BY c DESC, a
! 485: }
! 486: } {abc e e hello d D}
! 487: do_test selectA-2.69 {
! 488: execsql {
! 489: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 490: INTERSECT SELECT a,b,c FROM t3
! 491: EXCEPT SELECT b,c,a FROM t3
! 492: ORDER BY c COLLATE NOCASE
! 493: }
! 494: } {1 a a 9.9 b B {} C c}
! 495: do_test selectA-2.70 {
! 496: execsql {
! 497: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
! 498: INTERSECT SELECT a,b,c FROM t3
! 499: EXCEPT SELECT b,c,a FROM t3
! 500: ORDER BY c
! 501: }
! 502: } {1 a a 9.9 b B {} C c}
! 503: do_test selectA-2.71 {
! 504: execsql {
! 505: SELECT a,b,c FROM t1 WHERE b<'d'
! 506: INTERSECT SELECT a,b,c FROM t1
! 507: INTERSECT SELECT a,b,c FROM t3
! 508: EXCEPT SELECT b,c,a FROM t3
! 509: INTERSECT SELECT a,b,c FROM t1
! 510: EXCEPT SELECT x,y,z FROM t2
! 511: INTERSECT SELECT a,b,c FROM t3
! 512: EXCEPT SELECT y,x,z FROM t2
! 513: INTERSECT SELECT a,b,c FROM t1
! 514: EXCEPT SELECT c,b,a FROM t3
! 515: ORDER BY c
! 516: }
! 517: } {1 a a 9.9 b B {} C c}
! 518: do_test selectA-2.72 {
! 519: execsql {
! 520: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 521: ORDER BY a,b,c
! 522: }
! 523: } {{} 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}
! 524: do_test selectA-2.73 {
! 525: execsql {
! 526: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 527: ORDER BY a DESC,b,c
! 528: }
! 529: } {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}
! 530: do_test selectA-2.74 {
! 531: execsql {
! 532: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 533: ORDER BY a,c,b
! 534: }
! 535: } {{} 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}
! 536: do_test selectA-2.75 {
! 537: execsql {
! 538: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 539: ORDER BY b,a,c
! 540: }
! 541: } {{} 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}
! 542: do_test selectA-2.76 {
! 543: execsql {
! 544: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 545: ORDER BY b COLLATE NOCASE,a,c
! 546: }
! 547: } {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}
! 548: do_test selectA-2.77 {
! 549: execsql {
! 550: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 551: ORDER BY b COLLATE NOCASE DESC,a,c
! 552: }
! 553: } {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}
! 554: do_test selectA-2.78 {
! 555: execsql {
! 556: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 557: ORDER BY c,b,a
! 558: }
! 559: } {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}
! 560: do_test selectA-2.79 {
! 561: execsql {
! 562: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 563: ORDER BY c,a,b
! 564: }
! 565: } {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}
! 566: do_test selectA-2.80 {
! 567: execsql {
! 568: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 569: ORDER BY c DESC,a,b
! 570: }
! 571: } {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}
! 572: do_test selectA-2.81 {
! 573: execsql {
! 574: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 575: ORDER BY c COLLATE BINARY DESC,a,b
! 576: }
! 577: } {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}
! 578: do_test selectA-2.82 {
! 579: execsql {
! 580: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 581: ORDER BY a,b,c
! 582: }
! 583: } {{} 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}
! 584: do_test selectA-2.83 {
! 585: execsql {
! 586: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 587: ORDER BY a DESC,b,c
! 588: }
! 589: } {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}
! 590: do_test selectA-2.84 {
! 591: execsql {
! 592: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 593: ORDER BY a,c,b
! 594: }
! 595: } {{} 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}
! 596: do_test selectA-2.85 {
! 597: execsql {
! 598: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 599: ORDER BY b,a,c
! 600: }
! 601: } {{} 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}
! 602: do_test selectA-2.86 {
! 603: execsql {
! 604: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 605: ORDER BY b COLLATE NOCASE,a,c
! 606: }
! 607: } {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}
! 608: do_test selectA-2.87 {
! 609: execsql {
! 610: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 611: ORDER BY y COLLATE NOCASE DESC,x,z
! 612: }
! 613: } {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}
! 614: do_test selectA-2.88 {
! 615: execsql {
! 616: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 617: ORDER BY c,b,a
! 618: }
! 619: } {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}
! 620: do_test selectA-2.89 {
! 621: execsql {
! 622: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 623: ORDER BY c,a,b
! 624: }
! 625: } {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}
! 626: do_test selectA-2.90 {
! 627: execsql {
! 628: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 629: ORDER BY c DESC,a,b
! 630: }
! 631: } {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}
! 632: do_test selectA-2.91 {
! 633: execsql {
! 634: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 635: ORDER BY c COLLATE BINARY DESC,a,b
! 636: }
! 637: } {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}
! 638: do_test selectA-2.92 {
! 639: execsql {
! 640: SELECT x,y,z FROM t2
! 641: INTERSECT SELECT a,b,c FROM t3
! 642: EXCEPT SELECT c,b,a FROM t1
! 643: UNION SELECT a,b,c FROM t3
! 644: INTERSECT SELECT a,b,c FROM t3
! 645: EXCEPT SELECT c,b,a FROM t1
! 646: UNION SELECT a,b,c FROM t3
! 647: ORDER BY y COLLATE NOCASE DESC,x,z
! 648: }
! 649: } {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}
! 650: do_test selectA-2.93 {
! 651: execsql {
! 652: SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1));
! 653: }
! 654: } {A}
! 655: do_test selectA-2.94 {
! 656: execsql {
! 657: SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1));
! 658: }
! 659: } {a}
! 660: do_test selectA-2.95 {
! 661: execsql {
! 662: SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1));
! 663: }
! 664: } {{}}
! 665: do_test selectA-2.96 {
! 666: execsql {
! 667: SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1));
! 668: }
! 669: } {m}
! 670:
! 671:
! 672: do_test selectA-3.0 {
! 673: execsql {
! 674: CREATE UNIQUE INDEX t1a ON t1(a);
! 675: CREATE UNIQUE INDEX t1b ON t1(b);
! 676: CREATE UNIQUE INDEX t1c ON t1(c);
! 677: CREATE UNIQUE INDEX t2x ON t2(x);
! 678: CREATE UNIQUE INDEX t2y ON t2(y);
! 679: CREATE UNIQUE INDEX t2z ON t2(z);
! 680: SELECT name FROM sqlite_master WHERE type='index'
! 681: }
! 682: } {t1a t1b t1c t2x t2y t2z}
! 683: do_test selectA-3.1 {
! 684: execsql {
! 685: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 686: ORDER BY a,b,c
! 687: }
! 688: } {{} 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}
! 689: do_test selectA-3.1.1 { # Ticket #3314
! 690: execsql {
! 691: SELECT t1.a,b,t1.c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 692: ORDER BY a,t1.b,t1.c
! 693: }
! 694: } {{} 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}
! 695: do_test selectA-3.2 {
! 696: execsql {
! 697: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 698: ORDER BY a DESC,b,c
! 699: }
! 700: } {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}
! 701: do_test selectA-3.3 {
! 702: execsql {
! 703: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 704: ORDER BY a,c,b
! 705: }
! 706: } {{} 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}
! 707: do_test selectA-3.4 {
! 708: execsql {
! 709: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 710: ORDER BY b,a,c
! 711: }
! 712: } {{} 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}
! 713: do_test selectA-3.5 {
! 714: execsql {
! 715: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 716: ORDER BY b COLLATE NOCASE,a,c
! 717: }
! 718: } {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}
! 719: do_test selectA-3.6 {
! 720: execsql {
! 721: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 722: ORDER BY b COLLATE NOCASE DESC,a,c
! 723: }
! 724: } {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}
! 725: do_test selectA-3.7 {
! 726: execsql {
! 727: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 728: ORDER BY c,b,a
! 729: }
! 730: } {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}
! 731: do_test selectA-3.8 {
! 732: execsql {
! 733: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 734: ORDER BY c,a,b
! 735: }
! 736: } {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}
! 737: do_test selectA-3.9 {
! 738: execsql {
! 739: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 740: ORDER BY c DESC,a,b
! 741: }
! 742: } {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}
! 743: do_test selectA-3.10 {
! 744: execsql {
! 745: SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
! 746: ORDER BY c COLLATE BINARY DESC,a,b
! 747: }
! 748: } {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}
! 749: do_test selectA-3.11 {
! 750: execsql {
! 751: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 752: ORDER BY a,b,c
! 753: }
! 754: } {{} 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}
! 755: do_test selectA-3.12 {
! 756: execsql {
! 757: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 758: ORDER BY a DESC,b,c
! 759: }
! 760: } {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}
! 761: do_test selectA-3.13 {
! 762: execsql {
! 763: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 764: ORDER BY a,c,b
! 765: }
! 766: } {{} 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}
! 767: do_test selectA-3.14 {
! 768: execsql {
! 769: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 770: ORDER BY b,a,c
! 771: }
! 772: } {{} 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}
! 773: do_test selectA-3.15 {
! 774: execsql {
! 775: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 776: ORDER BY b COLLATE NOCASE,a,c
! 777: }
! 778: } {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}
! 779: do_test selectA-3.16 {
! 780: execsql {
! 781: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 782: ORDER BY b COLLATE NOCASE DESC,a,c
! 783: }
! 784: } {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}
! 785: do_test selectA-3.17 {
! 786: execsql {
! 787: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 788: ORDER BY c,b,a
! 789: }
! 790: } {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}
! 791: do_test selectA-3.18 {
! 792: execsql {
! 793: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 794: ORDER BY c,a,b
! 795: }
! 796: } {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}
! 797: do_test selectA-3.19 {
! 798: execsql {
! 799: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 800: ORDER BY c DESC,a,b
! 801: }
! 802: } {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}
! 803: do_test selectA-3.20 {
! 804: execsql {
! 805: SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
! 806: ORDER BY c COLLATE BINARY DESC,a,b
! 807: }
! 808: } {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}
! 809: do_test selectA-3.21 {
! 810: execsql {
! 811: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 812: ORDER BY a,b,c
! 813: }
! 814: } {{} 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}
! 815: do_test selectA-3.22 {
! 816: execsql {
! 817: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 818: ORDER BY a DESC,b,c
! 819: }
! 820: } {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}
! 821: do_test selectA-3.23 {
! 822: execsql {
! 823: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 824: ORDER BY a,c,b
! 825: }
! 826: } {{} 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}
! 827: do_test selectA-3.24 {
! 828: execsql {
! 829: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 830: ORDER BY b,a,c
! 831: }
! 832: } {{} 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}
! 833: do_test selectA-3.25 {
! 834: execsql {
! 835: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 836: ORDER BY b COLLATE NOCASE,a,c
! 837: }
! 838: } {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}
! 839: do_test selectA-3.26 {
! 840: execsql {
! 841: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 842: ORDER BY b COLLATE NOCASE DESC,a,c
! 843: }
! 844: } {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}
! 845: do_test selectA-3.27 {
! 846: execsql {
! 847: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 848: ORDER BY c,b,a
! 849: }
! 850: } {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}
! 851: do_test selectA-3.28 {
! 852: execsql {
! 853: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 854: ORDER BY c,a,b
! 855: }
! 856: } {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}
! 857: do_test selectA-3.29 {
! 858: execsql {
! 859: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 860: ORDER BY c DESC,a,b
! 861: }
! 862: } {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}
! 863: do_test selectA-3.30 {
! 864: execsql {
! 865: SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
! 866: ORDER BY c COLLATE BINARY DESC,a,b
! 867: }
! 868: } {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}
! 869: do_test selectA-3.31 {
! 870: execsql {
! 871: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 872: ORDER BY a,b,c
! 873: }
! 874: } {{} 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}
! 875: do_test selectA-3.32 {
! 876: execsql {
! 877: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 878: ORDER BY a DESC,b,c
! 879: }
! 880: } {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}
! 881: do_test selectA-3.33 {
! 882: execsql {
! 883: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 884: ORDER BY a,c,b
! 885: }
! 886: } {{} 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}
! 887: do_test selectA-3.34 {
! 888: execsql {
! 889: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 890: ORDER BY b,a,c
! 891: }
! 892: } {{} 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}
! 893: do_test selectA-3.35 {
! 894: execsql {
! 895: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 896: ORDER BY b COLLATE NOCASE,a,c
! 897: }
! 898: } {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}
! 899: do_test selectA-3.36 {
! 900: execsql {
! 901: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 902: ORDER BY b COLLATE NOCASE DESC,a,c
! 903: }
! 904: } {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}
! 905: do_test selectA-3.37 {
! 906: execsql {
! 907: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 908: ORDER BY c,b,a
! 909: }
! 910: } {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}
! 911: do_test selectA-3.38 {
! 912: execsql {
! 913: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 914: ORDER BY c,a,b
! 915: }
! 916: } {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}
! 917: do_test selectA-3.39 {
! 918: execsql {
! 919: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 920: ORDER BY c DESC,a,b
! 921: }
! 922: } {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}
! 923: do_test selectA-3.40 {
! 924: execsql {
! 925: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
! 926: ORDER BY c COLLATE BINARY DESC,a,b
! 927: }
! 928: } {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}
! 929: do_test selectA-3.41 {
! 930: execsql {
! 931: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
! 932: ORDER BY a,b,c
! 933: }
! 934: } {{} C c 1 a a 9.9 b B}
! 935: do_test selectA-3.42 {
! 936: execsql {
! 937: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
! 938: ORDER BY a,b,c
! 939: }
! 940: } {hello d D abc e e}
! 941: do_test selectA-3.43 {
! 942: execsql {
! 943: SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
! 944: ORDER BY a,b,c
! 945: }
! 946: } {hello d D abc e e}
! 947: do_test selectA-3.44 {
! 948: execsql {
! 949: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
! 950: ORDER BY a,b,c
! 951: }
! 952: } {hello d D abc e e}
! 953: do_test selectA-3.45 {
! 954: execsql {
! 955: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 956: ORDER BY a,b,c
! 957: }
! 958: } {{} C c 1 a a 9.9 b B}
! 959: do_test selectA-3.46 {
! 960: execsql {
! 961: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
! 962: ORDER BY a,b,c
! 963: }
! 964: } {{} C c 1 a a 9.9 b B}
! 965: do_test selectA-3.47 {
! 966: execsql {
! 967: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
! 968: ORDER BY a DESC
! 969: }
! 970: } {9.9 b B 1 a a {} C c}
! 971: do_test selectA-3.48 {
! 972: execsql {
! 973: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
! 974: ORDER BY a DESC
! 975: }
! 976: } {abc e e hello d D}
! 977: do_test selectA-3.49 {
! 978: execsql {
! 979: SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
! 980: ORDER BY a DESC
! 981: }
! 982: } {abc e e hello d D}
! 983: do_test selectA-3.50 {
! 984: execsql {
! 985: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
! 986: ORDER BY a DESC
! 987: }
! 988: } {abc e e hello d D}
! 989: do_test selectA-3.51 {
! 990: execsql {
! 991: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 992: ORDER BY a DESC
! 993: }
! 994: } {9.9 b B 1 a a {} C c}
! 995: do_test selectA-3.52 {
! 996: execsql {
! 997: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
! 998: ORDER BY a DESC
! 999: }
! 1000: } {9.9 b B 1 a a {} C c}
! 1001: do_test selectA-3.53 {
! 1002: execsql {
! 1003: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
! 1004: ORDER BY b, a DESC
! 1005: }
! 1006: } {{} C c 1 a a 9.9 b B}
! 1007: do_test selectA-3.54 {
! 1008: execsql {
! 1009: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
! 1010: ORDER BY b
! 1011: }
! 1012: } {hello d D abc e e}
! 1013: do_test selectA-3.55 {
! 1014: execsql {
! 1015: SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
! 1016: ORDER BY b DESC, c
! 1017: }
! 1018: } {abc e e hello d D}
! 1019: do_test selectA-3.56 {
! 1020: execsql {
! 1021: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
! 1022: ORDER BY b, c DESC, a
! 1023: }
! 1024: } {hello d D abc e e}
! 1025: do_test selectA-3.57 {
! 1026: execsql {
! 1027: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 1028: ORDER BY b COLLATE NOCASE
! 1029: }
! 1030: } {1 a a 9.9 b B {} C c}
! 1031: do_test selectA-3.58 {
! 1032: execsql {
! 1033: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
! 1034: ORDER BY b
! 1035: }
! 1036: } {{} C c 1 a a 9.9 b B}
! 1037: do_test selectA-3.59 {
! 1038: execsql {
! 1039: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
! 1040: ORDER BY c, a DESC
! 1041: }
! 1042: } {1 a a 9.9 b B {} C c}
! 1043: do_test selectA-3.60 {
! 1044: execsql {
! 1045: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
! 1046: ORDER BY c
! 1047: }
! 1048: } {hello d D abc e e}
! 1049: do_test selectA-3.61 {
! 1050: execsql {
! 1051: SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
! 1052: ORDER BY c COLLATE BINARY, b DESC, c, a, b, c, a, b, c
! 1053: }
! 1054: } {hello d D abc e e}
! 1055: do_test selectA-3.62 {
! 1056: execsql {
! 1057: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
! 1058: ORDER BY c DESC, a
! 1059: }
! 1060: } {abc e e hello d D}
! 1061: do_test selectA-3.63 {
! 1062: execsql {
! 1063: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 1064: ORDER BY c COLLATE NOCASE
! 1065: }
! 1066: } {1 a a 9.9 b B {} C c}
! 1067: do_test selectA-3.64 {
! 1068: execsql {
! 1069: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
! 1070: ORDER BY c
! 1071: }
! 1072: } {1 a a 9.9 b B {} C c}
! 1073: do_test selectA-3.65 {
! 1074: execsql {
! 1075: SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 1076: ORDER BY c COLLATE NOCASE
! 1077: }
! 1078: } {1 a a 9.9 b B {} C c}
! 1079: do_test selectA-3.66 {
! 1080: execsql {
! 1081: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3
! 1082: ORDER BY c
! 1083: }
! 1084: } {1 a a 9.9 b B {} C c}
! 1085: do_test selectA-3.67 {
! 1086: execsql {
! 1087: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d'
! 1088: ORDER BY c DESC, a
! 1089: }
! 1090: } {abc e e hello d D}
! 1091: do_test selectA-3.68 {
! 1092: execsql {
! 1093: SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
! 1094: INTERSECT SELECT a,b,c FROM t3
! 1095: EXCEPT SELECT b,c,a FROM t3
! 1096: ORDER BY c DESC, a
! 1097: }
! 1098: } {abc e e hello d D}
! 1099: do_test selectA-3.69 {
! 1100: execsql {
! 1101: SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
! 1102: INTERSECT SELECT a,b,c FROM t3
! 1103: EXCEPT SELECT b,c,a FROM t3
! 1104: ORDER BY c COLLATE NOCASE
! 1105: }
! 1106: } {1 a a 9.9 b B {} C c}
! 1107: do_test selectA-3.70 {
! 1108: execsql {
! 1109: SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
! 1110: INTERSECT SELECT a,b,c FROM t3
! 1111: EXCEPT SELECT b,c,a FROM t3
! 1112: ORDER BY c
! 1113: }
! 1114: } {1 a a 9.9 b B {} C c}
! 1115: do_test selectA-3.71 {
! 1116: execsql {
! 1117: SELECT a,b,c FROM t1 WHERE b<'d'
! 1118: INTERSECT SELECT a,b,c FROM t1
! 1119: INTERSECT SELECT a,b,c FROM t3
! 1120: EXCEPT SELECT b,c,a FROM t3
! 1121: INTERSECT SELECT a,b,c FROM t1
! 1122: EXCEPT SELECT x,y,z FROM t2
! 1123: INTERSECT SELECT a,b,c FROM t3
! 1124: EXCEPT SELECT y,x,z FROM t2
! 1125: INTERSECT SELECT a,b,c FROM t1
! 1126: EXCEPT SELECT c,b,a FROM t3
! 1127: ORDER BY c
! 1128: }
! 1129: } {1 a a 9.9 b B {} C c}
! 1130: do_test selectA-3.72 {
! 1131: execsql {
! 1132: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 1133: ORDER BY a,b,c
! 1134: }
! 1135: } {{} 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}
! 1136: do_test selectA-3.73 {
! 1137: execsql {
! 1138: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 1139: ORDER BY a DESC,b,c
! 1140: }
! 1141: } {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}
! 1142: do_test selectA-3.74 {
! 1143: execsql {
! 1144: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 1145: ORDER BY a,c,b
! 1146: }
! 1147: } {{} 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}
! 1148: do_test selectA-3.75 {
! 1149: execsql {
! 1150: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 1151: ORDER BY b,a,c
! 1152: }
! 1153: } {{} 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}
! 1154: do_test selectA-3.76 {
! 1155: execsql {
! 1156: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 1157: ORDER BY b COLLATE NOCASE,a,c
! 1158: }
! 1159: } {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}
! 1160: do_test selectA-3.77 {
! 1161: execsql {
! 1162: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 1163: ORDER BY b COLLATE NOCASE DESC,a,c
! 1164: }
! 1165: } {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}
! 1166: do_test selectA-3.78 {
! 1167: execsql {
! 1168: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 1169: ORDER BY c,b,a
! 1170: }
! 1171: } {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}
! 1172: do_test selectA-3.79 {
! 1173: execsql {
! 1174: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 1175: ORDER BY c,a,b
! 1176: }
! 1177: } {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}
! 1178: do_test selectA-3.80 {
! 1179: execsql {
! 1180: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 1181: ORDER BY c DESC,a,b
! 1182: }
! 1183: } {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}
! 1184: do_test selectA-3.81 {
! 1185: execsql {
! 1186: SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
! 1187: ORDER BY c COLLATE BINARY DESC,a,b
! 1188: }
! 1189: } {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}
! 1190: do_test selectA-3.82 {
! 1191: execsql {
! 1192: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 1193: ORDER BY a,b,c
! 1194: }
! 1195: } {{} 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}
! 1196: do_test selectA-3.83 {
! 1197: execsql {
! 1198: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 1199: ORDER BY a DESC,b,c
! 1200: }
! 1201: } {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}
! 1202: do_test selectA-3.84 {
! 1203: execsql {
! 1204: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 1205: ORDER BY a,c,b
! 1206: }
! 1207: } {{} 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}
! 1208: do_test selectA-3.85 {
! 1209: execsql {
! 1210: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 1211: ORDER BY b,a,c
! 1212: }
! 1213: } {{} 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}
! 1214: do_test selectA-3.86 {
! 1215: execsql {
! 1216: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 1217: ORDER BY b COLLATE NOCASE,a,c
! 1218: }
! 1219: } {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}
! 1220: do_test selectA-3.87 {
! 1221: execsql {
! 1222: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 1223: ORDER BY y COLLATE NOCASE DESC,x,z
! 1224: }
! 1225: } {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}
! 1226: do_test selectA-3.88 {
! 1227: execsql {
! 1228: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 1229: ORDER BY c,b,a
! 1230: }
! 1231: } {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}
! 1232: do_test selectA-3.89 {
! 1233: execsql {
! 1234: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 1235: ORDER BY c,a,b
! 1236: }
! 1237: } {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}
! 1238: do_test selectA-3.90 {
! 1239: execsql {
! 1240: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 1241: ORDER BY c DESC,a,b
! 1242: }
! 1243: } {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}
! 1244: do_test selectA-3.91 {
! 1245: execsql {
! 1246: SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
! 1247: ORDER BY c COLLATE BINARY DESC,a,b
! 1248: }
! 1249: } {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}
! 1250: do_test selectA-3.92 {
! 1251: execsql {
! 1252: SELECT x,y,z FROM t2
! 1253: INTERSECT SELECT a,b,c FROM t3
! 1254: EXCEPT SELECT c,b,a FROM t1
! 1255: UNION SELECT a,b,c FROM t3
! 1256: INTERSECT SELECT a,b,c FROM t3
! 1257: EXCEPT SELECT c,b,a FROM t1
! 1258: UNION SELECT a,b,c FROM t3
! 1259: ORDER BY y COLLATE NOCASE DESC,x,z
! 1260: }
! 1261: } {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}
! 1262: do_test selectA-3.93 {
! 1263: execsql {
! 1264: SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1));
! 1265: }
! 1266: } {A}
! 1267: do_test selectA-3.94 {
! 1268: execsql {
! 1269: SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1));
! 1270: }
! 1271: } {a}
! 1272: do_test selectA-3.95 {
! 1273: execsql {
! 1274: SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1));
! 1275: }
! 1276: } {{}}
! 1277: do_test selectA-3.96 {
! 1278: execsql {
! 1279: SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1));
! 1280: }
! 1281: } {m}
! 1282: do_test selectA-3.97 {
! 1283: execsql {
! 1284: SELECT upper((SELECT x FROM (
! 1285: SELECT x,y,z FROM t2
! 1286: INTERSECT SELECT a,b,c FROM t3
! 1287: EXCEPT SELECT c,b,a FROM t1
! 1288: UNION SELECT a,b,c FROM t3
! 1289: INTERSECT SELECT a,b,c FROM t3
! 1290: EXCEPT SELECT c,b,a FROM t1
! 1291: UNION SELECT a,b,c FROM t3
! 1292: ORDER BY y COLLATE NOCASE DESC,x,z)))
! 1293: }
! 1294: } {MAD}
! 1295:
! 1296: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>