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