/ Hex Artifact Content
Login

Artifact 77adaffe9704cb80e301ebaeff4b107b58d435c5:


0000: 23 20 32 30 30 38 20 4a 75 6e 65 20 32 34 0a 23  # 2008 June 24.#
0010: 0a 23 20 54 68 65 20 61 75 74 68 6f 72 20 64 69  .# The author di
0020: 73 63 6c 61 69 6d 73 20 63 6f 70 79 72 69 67 68  sclaims copyrigh
0030: 74 20 74 6f 20 74 68 69 73 20 73 6f 75 72 63 65  t to this source
0040: 20 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63 65   code.  In place
0050: 20 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e 6f   of.# a legal no
0060: 74 69 63 65 2c 20 68 65 72 65 20 69 73 20 61 20  tice, here is a 
0070: 62 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20 20  blessing:.#.#   
0080: 20 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f 64   May you do good
0090: 20 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a 23   and not evil..#
00a0: 20 20 20 20 4d 61 79 20 79 6f 75 20 66 69 6e 64      May you find
00b0: 20 66 6f 72 67 69 76 65 6e 65 73 73 20 66 6f 72   forgiveness for
00c0: 20 79 6f 75 72 73 65 6c 66 20 61 6e 64 20 66 6f   yourself and fo
00d0: 72 67 69 76 65 20 6f 74 68 65 72 73 2e 0a 23 20  rgive others..# 
00e0: 20 20 20 4d 61 79 20 79 6f 75 20 73 68 61 72 65     May you share
00f0: 20 66 72 65 65 6c 79 2c 20 6e 65 76 65 72 20 74   freely, never t
0100: 61 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20  aking more than 
0110: 79 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a 2a 2a  you give..#.#***
0120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 0a 23 20 54 68 69 73 20 66 69 6c 65  ****.# This file
0170: 20 69 6d 70 6c 65 6d 65 6e 74 73 20 72 65 67 72   implements regr
0180: 65 73 73 69 6f 6e 20 74 65 73 74 73 20 66 6f 72  ession tests for
0190: 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79 2e   SQLite library.
01a0: 20 0a 23 0a 23 20 54 68 65 20 66 6f 63 75 73 20   .#.# The focus 
01b0: 6f 66 20 74 68 69 73 20 66 69 6c 65 20 69 73 20  of this file is 
01c0: 74 65 73 74 69 6e 67 20 74 68 65 20 63 6f 6d 70  testing the comp
01d0: 6f 75 6e 64 2d 53 45 4c 45 43 54 20 6d 65 72 67  ound-SELECT merg
01e0: 65 0a 23 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  e.# optimization
01f0: 2e 20 20 4f 72 2c 20 69 6e 20 6f 74 68 65 72 20  .  Or, in other 
0200: 77 6f 72 64 73 2c 20 6d 61 6b 69 6e 67 20 73 75  words, making su
0210: 72 65 20 74 68 61 74 20 61 6c 6c 0a 23 20 70 6f  re that all.# po
0220: 73 73 69 62 6c 65 20 63 6f 6d 62 69 6e 61 74 69  ssible combinati
0230: 6f 6e 73 20 6f 66 20 55 4e 49 4f 4e 2c 20 55 4e  ons of UNION, UN
0240: 49 4f 4e 20 41 4c 4c 2c 20 45 58 43 45 50 54 2c  ION ALL, EXCEPT,
0250: 20 61 6e 64 0a 23 20 49 4e 54 45 52 53 45 43 54   and.# INTERSECT
0260: 20 77 6f 72 6b 20 74 6f 67 65 74 68 65 72 20 77   work together w
0270: 69 74 68 20 61 6e 20 4f 52 44 45 52 20 42 59 20  ith an ORDER BY 
0280: 63 6c 61 75 73 65 20 28 77 69 74 68 20 6f 72 20  clause (with or 
0290: 77 2f 6f 0a 23 20 65 78 70 6c 69 63 69 74 20 73  w/o.# explicit s
02a0: 6f 72 74 20 6f 72 64 65 72 20 61 6e 64 20 65 78  ort order and ex
02b0: 70 6c 69 63 69 74 20 63 6f 6c 6c 61 74 69 6e 67  plicit collating
02c0: 20 73 65 63 71 75 69 74 65 73 29 20 61 6e 64 0a   secquites) and.
02d0: 23 20 77 69 74 68 20 61 6e 64 20 77 69 74 68 6f  # with and witho
02e0: 75 74 20 6f 70 74 69 6f 6e 61 6c 20 4c 49 4d 49  ut optional LIMI
02f0: 54 20 61 6e 64 20 4f 46 46 53 45 54 20 63 6c 61  T and OFFSET cla
0300: 75 73 65 73 2e 0a 23 0a 23 20 24 49 64 3a 20 73  uses..#.# $Id: s
0310: 65 6c 65 63 74 41 2e 74 65 73 74 2c 76 20 31 2e  electA.test,v 1.
0320: 36 20 32 30 30 38 2f 30 38 2f 32 31 20 31 34 3a  6 2008/08/21 14:
0330: 32 34 3a 32 39 20 64 72 68 20 45 78 70 20 24 0a  24:29 drh Exp $.
0340: 0a 73 65 74 20 74 65 73 74 64 69 72 20 5b 66 69  .set testdir [fi
0350: 6c 65 20 64 69 72 6e 61 6d 65 20 24 61 72 67 76  le dirname $argv
0360: 30 5d 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64  0].source $testd
0370: 69 72 2f 74 65 73 74 65 72 2e 74 63 6c 0a 0a 69  ir/tester.tcl..i
0380: 66 63 61 70 61 62 6c 65 20 21 63 6f 6d 70 6f 75  fcapable !compou
0390: 6e 64 20 7b 0a 20 20 66 69 6e 69 73 68 5f 74 65  nd {.  finish_te
03a0: 73 74 0a 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 64  st.  return.}..d
03b0: 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 31  o_test selectA-1
03c0: 2e 30 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .0 {.  execsql {
03d0: 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c  .    CREATE TABL
03e0: 45 20 74 31 28 61 2c 62 2c 63 20 43 4f 4c 4c 41  E t1(a,b,c COLLA
03f0: 54 45 20 4e 4f 43 41 53 45 29 3b 0a 20 20 20 20  TE NOCASE);.    
0400: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56  INSERT INTO t1 V
0410: 41 4c 55 45 53 28 31 2c 27 61 27 2c 27 61 27 29  ALUES(1,'a','a')
0420: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
0430: 4f 20 74 31 20 56 41 4c 55 45 53 28 39 2e 39 2c  O t1 VALUES(9.9,
0440: 20 27 62 27 2c 20 27 42 27 29 3b 0a 20 20 20 20   'b', 'B');.    
0450: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56  INSERT INTO t1 V
0460: 41 4c 55 45 53 28 4e 55 4c 4c 2c 20 27 43 27 2c  ALUES(NULL, 'C',
0470: 20 27 63 27 29 3b 0a 20 20 20 20 49 4e 53 45 52   'c');.    INSER
0480: 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53  T INTO t1 VALUES
0490: 28 27 68 65 6c 6c 6f 27 2c 20 27 64 27 2c 20 27  ('hello', 'd', '
04a0: 44 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  D');.    INSERT 
04b0: 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28 78  INTO t1 VALUES(x
04c0: 27 36 31 36 32 36 33 27 2c 20 27 65 27 2c 20 27  '616263', 'e', '
04d0: 65 27 29 3b 0a 20 20 20 20 53 45 4c 45 43 54 20  e');.    SELECT 
04e0: 2a 20 46 52 4f 4d 20 74 31 3b 0a 20 20 7d 0a 7d  * FROM t1;.  }.}
04f0: 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20 42 20   {1 a a 9.9 b B 
0500: 7b 7d 20 43 20 63 20 68 65 6c 6c 6f 20 64 20 44  {} C c hello d D
0510: 20 61 62 63 20 65 20 65 7d 0a 64 6f 5f 74 65 73   abc e e}.do_tes
0520: 74 20 73 65 6c 65 63 74 41 2d 31 2e 31 20 7b 0a  t selectA-1.1 {.
0530: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
0540: 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 32 28  CREATE TABLE t2(
0550: 78 2c 79 2c 7a 20 43 4f 4c 4c 41 54 45 20 4e 4f  x,y,z COLLATE NO
0560: 43 41 53 45 29 3b 0a 20 20 20 20 49 4e 53 45 52  CASE);.    INSER
0570: 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53  T INTO t2 VALUES
0580: 28 4e 55 4c 4c 2c 27 55 27 2c 27 75 27 29 3b 0a  (NULL,'U','u');.
0590: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
05a0: 74 32 20 56 41 4c 55 45 53 28 27 6d 61 64 27 2c  t2 VALUES('mad',
05b0: 20 27 5a 27 2c 20 27 7a 27 29 3b 0a 20 20 20 20   'Z', 'z');.    
05c0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56  INSERT INTO t2 V
05d0: 41 4c 55 45 53 28 78 27 36 38 36 31 37 32 36 35  ALUES(x'68617265
05e0: 27 2c 20 27 6d 27 2c 20 27 4d 27 29 3b 0a 20 20  ', 'm', 'M');.  
05f0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32    INSERT INTO t2
0600: 20 56 41 4c 55 45 53 28 35 2e 32 65 36 2c 20 27   VALUES(5.2e6, '
0610: 58 27 2c 20 27 78 27 29 3b 0a 20 20 20 20 49 4e  X', 'x');.    IN
0620: 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c  SERT INTO t2 VAL
0630: 55 45 53 28 2d 32 33 2c 20 27 59 27 2c 20 27 79  UES(-23, 'Y', 'y
0640: 27 29 3b 0a 20 20 20 20 53 45 4c 45 43 54 20 2a  ');.    SELECT *
0650: 20 46 52 4f 4d 20 74 32 3b 0a 20 20 7d 0a 7d 20   FROM t2;.  }.} 
0660: 7b 7b 7d 20 55 20 75 20 6d 61 64 20 5a 20 7a 20  {{} U u mad Z z 
0670: 68 61 72 65 20 6d 20 4d 20 35 32 30 30 30 30 30  hare m M 5200000
0680: 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79 7d 0a  .0 X x -23 Y y}.
0690: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
06a0: 31 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  1.2 {.  execsql 
06b0: 7b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42  {.    CREATE TAB
06c0: 4c 45 20 74 33 28 61 2c 62 2c 63 20 43 4f 4c 4c  LE t3(a,b,c COLL
06d0: 41 54 45 20 4e 4f 43 41 53 45 29 3b 0a 20 20 20  ATE NOCASE);.   
06e0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
06f0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 31  SELECT * FROM t1
0700: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
0710: 4f 20 74 33 20 53 45 4c 45 43 54 20 2a 20 46 52  O t3 SELECT * FR
0720: 4f 4d 20 74 32 3b 0a 20 20 20 20 49 4e 53 45 52  OM t2;.    INSER
0730: 54 20 49 4e 54 4f 20 74 33 20 53 45 4c 45 43 54  T INTO t3 SELECT
0740: 20 2a 20 46 52 4f 4d 20 74 31 3b 0a 20 20 20 20   * FROM t1;.    
0750: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 53  INSERT INTO t3 S
0760: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32 3b  ELECT * FROM t2;
0770: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
0780: 20 74 33 20 53 45 4c 45 43 54 20 2a 20 46 52 4f   t3 SELECT * FRO
0790: 4d 20 74 31 3b 0a 20 20 20 20 49 4e 53 45 52 54  M t1;.    INSERT
07a0: 20 49 4e 54 4f 20 74 33 20 53 45 4c 45 43 54 20   INTO t3 SELECT 
07b0: 2a 20 46 52 4f 4d 20 74 32 3b 0a 20 20 20 20 53  * FROM t2;.    S
07c0: 45 4c 45 43 54 20 63 6f 75 6e 74 28 2a 29 20 46  ELECT count(*) F
07d0: 52 4f 4d 20 74 33 3b 0a 20 20 7d 0a 7d 20 7b 33  ROM t3;.  }.} {3
07e0: 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65  0}..do_test sele
07f0: 63 74 41 2d 32 2e 31 20 7b 0a 20 20 65 78 65 63  ctA-2.1 {.  exec
0800: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
0810: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 55   a,b,c FROM t1 U
0820: 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20  NION ALL SELECT 
0830: 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20  x,y,z FROM t2.  
0840: 20 20 4f 52 44 45 52 20 42 59 20 61 2c 62 2c 63    ORDER BY a,b,c
0850: 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b  .  }.} {{} C c {
0860: 7d 20 55 20 75 20 2d 32 33 20 59 20 79 20 31 20  } U u -23 Y y 1 
0870: 61 20 61 20 39 2e 39 20 62 20 42 20 35 32 30 30  a a 9.9 b B 5200
0880: 30 30 30 2e 30 20 58 20 78 20 68 65 6c 6c 6f 20  000.0 X x hello 
0890: 64 20 44 20 6d 61 64 20 5a 20 7a 20 61 62 63 20  d D mad Z z abc 
08a0: 65 20 65 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f  e e hare m M}.do
08b0: 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e  _test selectA-2.
08c0: 31 2e 31 20 7b 20 20 20 23 20 54 69 63 6b 65 74  1.1 {   # Ticket
08d0: 20 23 33 33 31 34 0a 20 20 65 78 65 63 73 71 6c   #3314.  execsql
08e0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
08f0: 2e 61 2c 20 74 31 2e 62 2c 20 74 31 2e 63 20 46  .a, t1.b, t1.c F
0900: 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 41 4c 4c  ROM t1 UNION ALL
0910: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
0920: 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20  OM t2.    ORDER 
0930: 42 59 20 61 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b  BY a,b,c.  }.} {
0940: 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 20 2d 32  {} C c {} U u -2
0950: 33 20 59 20 79 20 31 20 61 20 61 20 39 2e 39 20  3 Y y 1 a a 9.9 
0960: 62 20 42 20 35 32 30 30 30 30 30 2e 30 20 58 20  b B 5200000.0 X 
0970: 78 20 68 65 6c 6c 6f 20 64 20 44 20 6d 61 64 20  x hello d D mad 
0980: 5a 20 7a 20 61 62 63 20 65 20 65 20 68 61 72 65  Z z abc e e hare
0990: 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73 65   m M}.do_test se
09a0: 6c 65 63 74 41 2d 32 2e 31 2e 32 20 7b 20 20 20  lectA-2.1.2 {   
09b0: 23 20 54 69 63 6b 65 74 20 23 33 33 31 34 0a 20  # Ticket #3314. 
09c0: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
09d0: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
09e0: 20 74 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45   t1 UNION ALL SE
09f0: 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20  LECT x,y,z FROM 
0a00: 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t2.    ORDER BY 
0a10: 74 31 2e 61 2c 20 74 31 2e 62 2c 20 74 31 2e 63  t1.a, t1.b, t1.c
0a20: 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b  .  }.} {{} C c {
0a30: 7d 20 55 20 75 20 2d 32 33 20 59 20 79 20 31 20  } U u -23 Y y 1 
0a40: 61 20 61 20 39 2e 39 20 62 20 42 20 35 32 30 30  a a 9.9 b B 5200
0a50: 30 30 30 2e 30 20 58 20 78 20 68 65 6c 6c 6f 20  000.0 X x hello 
0a60: 64 20 44 20 6d 61 64 20 5a 20 7a 20 61 62 63 20  d D mad Z z abc 
0a70: 65 20 65 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f  e e hare m M}.do
0a80: 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e  _test selectA-2.
0a90: 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  2 {.  execsql {.
0aa0: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63      SELECT a,b,c
0ab0: 20 46 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 41   FROM t1 UNION A
0ac0: 4c 4c 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20  LL SELECT x,y,z 
0ad0: 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45  FROM t2.    ORDE
0ae0: 52 20 42 59 20 61 20 44 45 53 43 2c 62 2c 63 0a  R BY a DESC,b,c.
0af0: 20 20 7d 0a 7d 20 7b 68 61 72 65 20 6d 20 4d 20    }.} {hare m M 
0b00: 61 62 63 20 65 20 65 20 6d 61 64 20 5a 20 7a 20  abc e e mad Z z 
0b10: 68 65 6c 6c 6f 20 64 20 44 20 35 32 30 30 30 30  hello d D 520000
0b20: 30 2e 30 20 58 20 78 20 39 2e 39 20 62 20 42 20  0.0 X x 9.9 b B 
0b30: 31 20 61 20 61 20 2d 32 33 20 59 20 79 20 7b 7d  1 a a -23 Y y {}
0b40: 20 43 20 63 20 7b 7d 20 55 20 75 7d 0a 64 6f 5f   C c {} U u}.do_
0b50: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 33  test selectA-2.3
0b60: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
0b70: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
0b80: 46 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 41 4c  FROM t1 UNION AL
0b90: 4c 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46  L SELECT x,y,z F
0ba0: 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52  ROM t2.    ORDER
0bb0: 20 42 59 20 61 2c 63 2c 62 0a 20 20 7d 0a 7d 20   BY a,c,b.  }.} 
0bc0: 7b 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 20 2d  {{} C c {} U u -
0bd0: 32 33 20 59 20 79 20 31 20 61 20 61 20 39 2e 39  23 Y y 1 a a 9.9
0be0: 20 62 20 42 20 35 32 30 30 30 30 30 2e 30 20 58   b B 5200000.0 X
0bf0: 20 78 20 68 65 6c 6c 6f 20 64 20 44 20 6d 61 64   x hello d D mad
0c00: 20 5a 20 7a 20 61 62 63 20 65 20 65 20 68 61 72   Z z abc e e har
0c10: 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73  e m M}.do_test s
0c20: 65 6c 65 63 74 41 2d 32 2e 34 20 7b 0a 20 20 65  electA-2.4 {.  e
0c30: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
0c40: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
0c50: 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45  1 UNION ALL SELE
0c60: 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32  CT x,y,z FROM t2
0c70: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 62 2c  .    ORDER BY b,
0c80: 61 2c 63 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20  a,c.  }.} {{} C 
0c90: 63 20 7b 7d 20 55 20 75 20 35 32 30 30 30 30 30  c {} U u 5200000
0ca0: 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79 20 6d  .0 X x -23 Y y m
0cb0: 61 64 20 5a 20 7a 20 31 20 61 20 61 20 39 2e 39  ad Z z 1 a a 9.9
0cc0: 20 62 20 42 20 68 65 6c 6c 6f 20 64 20 44 20 61   b B hello d D a
0cd0: 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 7d  bc e e hare m M}
0ce0: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
0cf0: 2d 32 2e 35 20 7b 0a 20 20 65 78 65 63 73 71 6c  -2.5 {.  execsql
0d00: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
0d10: 62 2c 63 20 46 52 4f 4d 20 74 31 20 55 4e 49 4f  b,c FROM t1 UNIO
0d20: 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 78 2c 79  N ALL SELECT x,y
0d30: 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f  ,z FROM t2.    O
0d40: 52 44 45 52 20 42 59 20 62 20 43 4f 4c 4c 41 54  RDER BY b COLLAT
0d50: 45 20 4e 4f 43 41 53 45 2c 61 2c 63 0a 20 20 7d  E NOCASE,a,c.  }
0d60: 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20  .} {1 a a 9.9 b 
0d70: 42 20 7b 7d 20 43 20 63 20 68 65 6c 6c 6f 20 64  B {} C c hello d
0d80: 20 44 20 61 62 63 20 65 20 65 20 68 61 72 65 20   D abc e e hare 
0d90: 6d 20 4d 20 7b 7d 20 55 20 75 20 35 32 30 30 30  m M {} U u 52000
0da0: 30 30 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79  00.0 X x -23 Y y
0db0: 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73   mad Z z}.do_tes
0dc0: 74 20 73 65 6c 65 63 74 41 2d 32 2e 36 20 7b 0a  t selectA-2.6 {.
0dd0: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
0de0: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
0df0: 4d 20 74 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53  M t1 UNION ALL S
0e00: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
0e10: 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t2.    ORDER BY
0e20: 20 62 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53   b COLLATE NOCAS
0e30: 45 20 44 45 53 43 2c 61 2c 63 0a 20 20 7d 0a 7d  E DESC,a,c.  }.}
0e40: 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20   {mad Z z -23 Y 
0e50: 79 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  y 5200000.0 X x 
0e60: 7b 7d 20 55 20 75 20 68 61 72 65 20 6d 20 4d 20  {} U u hare m M 
0e70: 61 62 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20  abc e e hello d 
0e80: 44 20 7b 7d 20 43 20 63 20 39 2e 39 20 62 20 42  D {} C c 9.9 b B
0e90: 20 31 20 61 20 61 7d 0a 64 6f 5f 74 65 73 74 20   1 a a}.do_test 
0ea0: 73 65 6c 65 63 74 41 2d 32 2e 37 20 7b 0a 20 20  selectA-2.7 {.  
0eb0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
0ec0: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
0ed0: 74 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c  t1 UNION ALL SEL
0ee0: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
0ef0: 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 63  2.    ORDER BY c
0f00: 2c 62 2c 61 0a 20 20 7d 0a 7d 20 7b 31 20 61 20  ,b,a.  }.} {1 a 
0f10: 61 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20 63  a 9.9 b B {} C c
0f20: 20 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65   hello d D abc e
0f30: 20 65 20 68 61 72 65 20 6d 20 4d 20 7b 7d 20 55   e hare m M {} U
0f40: 20 75 20 35 32 30 30 30 30 30 2e 30 20 58 20 78   u 5200000.0 X x
0f50: 20 2d 32 33 20 59 20 79 20 6d 61 64 20 5a 20 7a   -23 Y y mad Z z
0f60: 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74  }.do_test select
0f70: 41 2d 32 2e 38 20 7b 0a 20 20 65 78 65 63 73 71  A-2.8 {.  execsq
0f80: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
0f90: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 55 4e 49  ,b,c FROM t1 UNI
0fa0: 4f 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 78 2c  ON ALL SELECT x,
0fb0: 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20 20  y,z FROM t2.    
0fc0: 4f 52 44 45 52 20 42 59 20 63 2c 61 2c 62 0a 20  ORDER BY c,a,b. 
0fd0: 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20   }.} {1 a a 9.9 
0fe0: 62 20 42 20 7b 7d 20 43 20 63 20 68 65 6c 6c 6f  b B {} C c hello
0ff0: 20 64 20 44 20 61 62 63 20 65 20 65 20 68 61 72   d D abc e e har
1000: 65 20 6d 20 4d 20 7b 7d 20 55 20 75 20 35 32 30  e m M {} U u 520
1010: 30 30 30 30 2e 30 20 58 20 78 20 2d 32 33 20 59  0000.0 X x -23 Y
1020: 20 79 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74   y mad Z z}.do_t
1030: 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 39 20  est selectA-2.9 
1040: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
1050: 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46    SELECT a,b,c F
1060: 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 41 4c 4c  ROM t1 UNION ALL
1070: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
1080: 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20  OM t2.    ORDER 
1090: 42 59 20 63 20 44 45 53 43 2c 61 2c 62 0a 20 20  BY c DESC,a,b.  
10a0: 7d 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33  }.} {mad Z z -23
10b0: 20 59 20 79 20 35 32 30 30 30 30 30 2e 30 20 58   Y y 5200000.0 X
10c0: 20 78 20 7b 7d 20 55 20 75 20 68 61 72 65 20 6d   x {} U u hare m
10d0: 20 4d 20 61 62 63 20 65 20 65 20 68 65 6c 6c 6f   M abc e e hello
10e0: 20 64 20 44 20 7b 7d 20 43 20 63 20 39 2e 39 20   d D {} C c 9.9 
10f0: 62 20 42 20 31 20 61 20 61 7d 0a 64 6f 5f 74 65  b B 1 a a}.do_te
1100: 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 31 30 20  st selectA-2.10 
1110: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
1120: 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46    SELECT a,b,c F
1130: 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 41 4c 4c  ROM t1 UNION ALL
1140: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
1150: 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20  OM t2.    ORDER 
1160: 42 59 20 63 20 43 4f 4c 4c 41 54 45 20 42 49 4e  BY c COLLATE BIN
1170: 41 52 59 20 44 45 53 43 2c 61 2c 62 0a 20 20 7d  ARY DESC,a,b.  }
1180: 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20  .} {mad Z z -23 
1190: 59 20 79 20 35 32 30 30 30 30 30 2e 30 20 58 20  Y y 5200000.0 X 
11a0: 78 20 7b 7d 20 55 20 75 20 61 62 63 20 65 20 65  x {} U u abc e e
11b0: 20 7b 7d 20 43 20 63 20 31 20 61 20 61 20 68 61   {} C c 1 a a ha
11c0: 72 65 20 6d 20 4d 20 68 65 6c 6c 6f 20 64 20 44  re m M hello d D
11d0: 20 39 2e 39 20 62 20 42 7d 0a 64 6f 5f 74 65 73   9.9 b B}.do_tes
11e0: 74 20 73 65 6c 65 63 74 41 2d 32 2e 31 31 20 7b  t selectA-2.11 {
11f0: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
1200: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
1210: 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 41 4c 4c 20  OM t2 UNION ALL 
1220: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
1230: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
1240: 59 20 61 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b 7b  Y a,b,c.  }.} {{
1250: 7d 20 43 20 63 20 7b 7d 20 55 20 75 20 2d 32 33  } C c {} U u -23
1260: 20 59 20 79 20 31 20 61 20 61 20 39 2e 39 20 62   Y y 1 a a 9.9 b
1270: 20 42 20 35 32 30 30 30 30 30 2e 30 20 58 20 78   B 5200000.0 X x
1280: 20 68 65 6c 6c 6f 20 64 20 44 20 6d 61 64 20 5a   hello d D mad Z
1290: 20 7a 20 61 62 63 20 65 20 65 20 68 61 72 65 20   z abc e e hare 
12a0: 6d 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  m M}.do_test sel
12b0: 65 63 74 41 2d 32 2e 31 32 20 7b 0a 20 20 65 78  ectA-2.12 {.  ex
12c0: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
12d0: 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32  CT x,y,z FROM t2
12e0: 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45 43   UNION ALL SELEC
12f0: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a  T a,b,c FROM t1.
1300: 20 20 20 20 4f 52 44 45 52 20 42 59 20 61 20 44      ORDER BY a D
1310: 45 53 43 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b 68  ESC,b,c.  }.} {h
1320: 61 72 65 20 6d 20 4d 20 61 62 63 20 65 20 65 20  are m M abc e e 
1330: 6d 61 64 20 5a 20 7a 20 68 65 6c 6c 6f 20 64 20  mad Z z hello d 
1340: 44 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  D 5200000.0 X x 
1350: 39 2e 39 20 62 20 42 20 31 20 61 20 61 20 2d 32  9.9 b B 1 a a -2
1360: 33 20 59 20 79 20 7b 7d 20 43 20 63 20 7b 7d 20  3 Y y {} C c {} 
1370: 55 20 75 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  U u}.do_test sel
1380: 65 63 74 41 2d 32 2e 31 33 20 7b 0a 20 20 65 78  ectA-2.13 {.  ex
1390: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
13a0: 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32  CT x,y,z FROM t2
13b0: 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45 43   UNION ALL SELEC
13c0: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a  T a,b,c FROM t1.
13d0: 20 20 20 20 4f 52 44 45 52 20 42 59 20 61 2c 63      ORDER BY a,c
13e0: 2c 62 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63  ,b.  }.} {{} C c
13f0: 20 7b 7d 20 55 20 75 20 2d 32 33 20 59 20 79 20   {} U u -23 Y y 
1400: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 35 32  1 a a 9.9 b B 52
1410: 30 30 30 30 30 2e 30 20 58 20 78 20 68 65 6c 6c  00000.0 X x hell
1420: 6f 20 64 20 44 20 6d 61 64 20 5a 20 7a 20 61 62  o d D mad Z z ab
1430: 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 7d 0a  c e e hare m M}.
1440: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
1450: 32 2e 31 34 20 7b 0a 20 20 65 78 65 63 73 71 6c  2.14 {.  execsql
1460: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78 2c   {.    SELECT x,
1470: 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f  y,z FROM t2 UNIO
1480: 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 61 2c 62  N ALL SELECT a,b
1490: 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f  ,c FROM t1.    O
14a0: 52 44 45 52 20 42 59 20 62 2c 61 2c 63 0a 20 20  RDER BY b,a,c.  
14b0: 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d 20 55  }.} {{} C c {} U
14c0: 20 75 20 35 32 30 30 30 30 30 2e 30 20 58 20 78   u 5200000.0 X x
14d0: 20 2d 32 33 20 59 20 79 20 6d 61 64 20 5a 20 7a   -23 Y y mad Z z
14e0: 20 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 68   1 a a 9.9 b B h
14f0: 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65  ello d D abc e e
1500: 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65   hare m M}.do_te
1510: 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 31 35 20  st selectA-2.15 
1520: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
1530: 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46    SELECT x,y,z F
1540: 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 41 4c 4c  ROM t2 UNION ALL
1550: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
1560: 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20  OM t1.    ORDER 
1570: 42 59 20 62 20 43 4f 4c 4c 41 54 45 20 4e 4f 43  BY b COLLATE NOC
1580: 41 53 45 2c 61 2c 63 0a 20 20 7d 0a 7d 20 7b 31  ASE,a,c.  }.} {1
1590: 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d 20   a a 9.9 b B {} 
15a0: 43 20 63 20 68 65 6c 6c 6f 20 64 20 44 20 61 62  C c hello d D ab
15b0: 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 20 7b  c e e hare m M {
15c0: 7d 20 55 20 75 20 35 32 30 30 30 30 30 2e 30 20  } U u 5200000.0 
15d0: 58 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64 20  X x -23 Y y mad 
15e0: 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  Z z}.do_test sel
15f0: 65 63 74 41 2d 32 2e 31 36 20 7b 0a 20 20 65 78  ectA-2.16 {.  ex
1600: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
1610: 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32  CT x,y,z FROM t2
1620: 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45 43   UNION ALL SELEC
1630: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a  T a,b,c FROM t1.
1640: 20 20 20 20 4f 52 44 45 52 20 42 59 20 62 20 43      ORDER BY b C
1650: 4f 4c 4c 41 54 45 20 4e 4f 43 41 53 45 20 44 45  OLLATE NOCASE DE
1660: 53 43 2c 61 2c 63 0a 20 20 7d 0a 7d 20 7b 6d 61  SC,a,c.  }.} {ma
1670: 64 20 5a 20 7a 20 2d 32 33 20 59 20 79 20 35 32  d Z z -23 Y y 52
1680: 30 30 30 30 30 2e 30 20 58 20 78 20 7b 7d 20 55  00000.0 X x {} U
1690: 20 75 20 68 61 72 65 20 6d 20 4d 20 61 62 63 20   u hare m M abc 
16a0: 65 20 65 20 68 65 6c 6c 6f 20 64 20 44 20 7b 7d  e e hello d D {}
16b0: 20 43 20 63 20 39 2e 39 20 62 20 42 20 31 20 61   C c 9.9 b B 1 a
16c0: 20 61 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65   a}.do_test sele
16d0: 63 74 41 2d 32 2e 31 37 20 7b 0a 20 20 65 78 65  ctA-2.17 {.  exe
16e0: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
16f0: 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20  T x,y,z FROM t2 
1700: 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45 43 54  UNION ALL SELECT
1710: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20   a,b,c FROM t1. 
1720: 20 20 20 4f 52 44 45 52 20 42 59 20 63 2c 62 2c     ORDER BY c,b,
1730: 61 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39  a.  }.} {1 a a 9
1740: 2e 39 20 62 20 42 20 7b 7d 20 43 20 63 20 68 65  .9 b B {} C c he
1750: 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65 20  llo d D abc e e 
1760: 68 61 72 65 20 6d 20 4d 20 7b 7d 20 55 20 75 20  hare m M {} U u 
1770: 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 2d 32  5200000.0 X x -2
1780: 33 20 59 20 79 20 6d 61 64 20 5a 20 7a 7d 0a 64  3 Y y mad Z z}.d
1790: 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 32  o_test selectA-2
17a0: 2e 31 38 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  .18 {.  execsql 
17b0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78 2c 79  {.    SELECT x,y
17c0: 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e  ,z FROM t2 UNION
17d0: 20 41 4c 4c 20 53 45 4c 45 43 54 20 61 2c 62 2c   ALL SELECT a,b,
17e0: 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52  c FROM t1.    OR
17f0: 44 45 52 20 42 59 20 63 2c 61 2c 62 0a 20 20 7d  DER BY c,a,b.  }
1800: 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20  .} {1 a a 9.9 b 
1810: 42 20 7b 7d 20 43 20 63 20 68 65 6c 6c 6f 20 64  B {} C c hello d
1820: 20 44 20 61 62 63 20 65 20 65 20 68 61 72 65 20   D abc e e hare 
1830: 6d 20 4d 20 7b 7d 20 55 20 75 20 35 32 30 30 30  m M {} U u 52000
1840: 30 30 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79  00.0 X x -23 Y y
1850: 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73   mad Z z}.do_tes
1860: 74 20 73 65 6c 65 63 74 41 2d 32 2e 31 39 20 7b  t selectA-2.19 {
1870: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
1880: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
1890: 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 41 4c 4c 20  OM t2 UNION ALL 
18a0: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
18b0: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
18c0: 59 20 63 20 44 45 53 43 2c 61 2c 62 0a 20 20 7d  Y c DESC,a,b.  }
18d0: 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20  .} {mad Z z -23 
18e0: 59 20 79 20 35 32 30 30 30 30 30 2e 30 20 58 20  Y y 5200000.0 X 
18f0: 78 20 7b 7d 20 55 20 75 20 68 61 72 65 20 6d 20  x {} U u hare m 
1900: 4d 20 61 62 63 20 65 20 65 20 68 65 6c 6c 6f 20  M abc e e hello 
1910: 64 20 44 20 7b 7d 20 43 20 63 20 39 2e 39 20 62  d D {} C c 9.9 b
1920: 20 42 20 31 20 61 20 61 7d 0a 64 6f 5f 74 65 73   B 1 a a}.do_tes
1930: 74 20 73 65 6c 65 63 74 41 2d 32 2e 32 30 20 7b  t selectA-2.20 {
1940: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
1950: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
1960: 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 41 4c 4c 20  OM t2 UNION ALL 
1970: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
1980: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
1990: 59 20 63 20 43 4f 4c 4c 41 54 45 20 42 49 4e 41  Y c COLLATE BINA
19a0: 52 59 20 44 45 53 43 2c 61 2c 62 0a 20 20 7d 0a  RY DESC,a,b.  }.
19b0: 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59  } {mad Z z -23 Y
19c0: 20 79 20 35 32 30 30 30 30 30 2e 30 20 58 20 78   y 5200000.0 X x
19d0: 20 7b 7d 20 55 20 75 20 61 62 63 20 65 20 65 20   {} U u abc e e 
19e0: 7b 7d 20 43 20 63 20 31 20 61 20 61 20 68 61 72  {} C c 1 a a har
19f0: 65 20 6d 20 4d 20 68 65 6c 6c 6f 20 64 20 44 20  e m M hello d D 
1a00: 39 2e 39 20 62 20 42 7d 0a 64 6f 5f 74 65 73 74  9.9 b B}.do_test
1a10: 20 73 65 6c 65 63 74 41 2d 32 2e 32 31 20 7b 0a   selectA-2.21 {.
1a20: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
1a30: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
1a40: 4d 20 74 31 20 55 4e 49 4f 4e 20 53 45 4c 45 43  M t1 UNION SELEC
1a50: 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a  T x,y,z FROM t2.
1a60: 20 20 20 20 4f 52 44 45 52 20 42 59 20 61 2c 62      ORDER BY a,b
1a70: 2c 63 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63  ,c.  }.} {{} C c
1a80: 20 7b 7d 20 55 20 75 20 2d 32 33 20 59 20 79 20   {} U u -23 Y y 
1a90: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 35 32  1 a a 9.9 b B 52
1aa0: 30 30 30 30 30 2e 30 20 58 20 78 20 68 65 6c 6c  00000.0 X x hell
1ab0: 6f 20 64 20 44 20 6d 61 64 20 5a 20 7a 20 61 62  o d D mad Z z ab
1ac0: 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 7d 0a  c e e hare m M}.
1ad0: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
1ae0: 32 2e 32 32 20 7b 0a 20 20 65 78 65 63 73 71 6c  2.22 {.  execsql
1af0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
1b00: 62 2c 63 20 46 52 4f 4d 20 74 31 20 55 4e 49 4f  b,c FROM t1 UNIO
1b10: 4e 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46  N SELECT x,y,z F
1b20: 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52  ROM t2.    ORDER
1b30: 20 42 59 20 61 20 44 45 53 43 2c 62 2c 63 0a 20   BY a DESC,b,c. 
1b40: 20 7d 0a 7d 20 7b 68 61 72 65 20 6d 20 4d 20 61   }.} {hare m M a
1b50: 62 63 20 65 20 65 20 6d 61 64 20 5a 20 7a 20 68  bc e e mad Z z h
1b60: 65 6c 6c 6f 20 64 20 44 20 35 32 30 30 30 30 30  ello d D 5200000
1b70: 2e 30 20 58 20 78 20 39 2e 39 20 62 20 42 20 31  .0 X x 9.9 b B 1
1b80: 20 61 20 61 20 2d 32 33 20 59 20 79 20 7b 7d 20   a a -23 Y y {} 
1b90: 43 20 63 20 7b 7d 20 55 20 75 7d 0a 64 6f 5f 74  C c {} U u}.do_t
1ba0: 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 32 33  est selectA-2.23
1bb0: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
1bc0: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
1bd0: 46 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 53 45  FROM t1 UNION SE
1be0: 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20  LECT x,y,z FROM 
1bf0: 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t2.    ORDER BY 
1c00: 61 2c 63 2c 62 0a 20 20 7d 0a 7d 20 7b 7b 7d 20  a,c,b.  }.} {{} 
1c10: 43 20 63 20 7b 7d 20 55 20 75 20 2d 32 33 20 59  C c {} U u -23 Y
1c20: 20 79 20 31 20 61 20 61 20 39 2e 39 20 62 20 42   y 1 a a 9.9 b B
1c30: 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 68   5200000.0 X x h
1c40: 65 6c 6c 6f 20 64 20 44 20 6d 61 64 20 5a 20 7a  ello d D mad Z z
1c50: 20 61 62 63 20 65 20 65 20 68 61 72 65 20 6d 20   abc e e hare m 
1c60: 4d 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  M}.do_test selec
1c70: 74 41 2d 32 2e 32 34 20 7b 0a 20 20 65 78 65 63  tA-2.24 {.  exec
1c80: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
1c90: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 55   a,b,c FROM t1 U
1ca0: 4e 49 4f 4e 20 53 45 4c 45 43 54 20 78 2c 79 2c  NION SELECT x,y,
1cb0: 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52  z FROM t2.    OR
1cc0: 44 45 52 20 42 59 20 62 2c 61 2c 63 0a 20 20 7d  DER BY b,a,c.  }
1cd0: 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d 20 55 20  .} {{} C c {} U 
1ce0: 75 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  u 5200000.0 X x 
1cf0: 2d 32 33 20 59 20 79 20 6d 61 64 20 5a 20 7a 20  -23 Y y mad Z z 
1d00: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 68 65  1 a a 9.9 b B he
1d10: 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65 20  llo d D abc e e 
1d20: 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73  hare m M}.do_tes
1d30: 74 20 73 65 6c 65 63 74 41 2d 32 2e 32 35 20 7b  t selectA-2.25 {
1d40: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
1d50: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
1d60: 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 53 45 4c 45  OM t1 UNION SELE
1d70: 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32  CT x,y,z FROM t2
1d80: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 62 20  .    ORDER BY b 
1d90: 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53 45 2c 61  COLLATE NOCASE,a
1da0: 2c 63 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20  ,c.  }.} {1 a a 
1db0: 39 2e 39 20 62 20 42 20 7b 7d 20 43 20 63 20 68  9.9 b B {} C c h
1dc0: 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65  ello d D abc e e
1dd0: 20 68 61 72 65 20 6d 20 4d 20 7b 7d 20 55 20 75   hare m M {} U u
1de0: 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 2d   5200000.0 X x -
1df0: 32 33 20 59 20 79 20 6d 61 64 20 5a 20 7a 7d 0a  23 Y y mad Z z}.
1e00: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
1e10: 32 2e 32 36 20 7b 0a 20 20 65 78 65 63 73 71 6c  2.26 {.  execsql
1e20: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
1e30: 62 2c 63 20 46 52 4f 4d 20 74 31 20 55 4e 49 4f  b,c FROM t1 UNIO
1e40: 4e 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46  N SELECT x,y,z F
1e50: 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52  ROM t2.    ORDER
1e60: 20 42 59 20 62 20 43 4f 4c 4c 41 54 45 20 4e 4f   BY b COLLATE NO
1e70: 43 41 53 45 20 44 45 53 43 2c 61 2c 63 0a 20 20  CASE DESC,a,c.  
1e80: 7d 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33  }.} {mad Z z -23
1e90: 20 59 20 79 20 35 32 30 30 30 30 30 2e 30 20 58   Y y 5200000.0 X
1ea0: 20 78 20 7b 7d 20 55 20 75 20 68 61 72 65 20 6d   x {} U u hare m
1eb0: 20 4d 20 61 62 63 20 65 20 65 20 68 65 6c 6c 6f   M abc e e hello
1ec0: 20 64 20 44 20 7b 7d 20 43 20 63 20 39 2e 39 20   d D {} C c 9.9 
1ed0: 62 20 42 20 31 20 61 20 61 7d 0a 64 6f 5f 74 65  b B 1 a a}.do_te
1ee0: 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 32 37 20  st selectA-2.27 
1ef0: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
1f00: 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46    SELECT a,b,c F
1f10: 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 53 45 4c  ROM t1 UNION SEL
1f20: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
1f30: 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 63  2.    ORDER BY c
1f40: 2c 62 2c 61 0a 20 20 7d 0a 7d 20 7b 31 20 61 20  ,b,a.  }.} {1 a 
1f50: 61 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20 63  a 9.9 b B {} C c
1f60: 20 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65   hello d D abc e
1f70: 20 65 20 68 61 72 65 20 6d 20 4d 20 7b 7d 20 55   e hare m M {} U
1f80: 20 75 20 35 32 30 30 30 30 30 2e 30 20 58 20 78   u 5200000.0 X x
1f90: 20 2d 32 33 20 59 20 79 20 6d 61 64 20 5a 20 7a   -23 Y y mad Z z
1fa0: 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74  }.do_test select
1fb0: 41 2d 32 2e 32 38 20 7b 0a 20 20 65 78 65 63 73  A-2.28 {.  execs
1fc0: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
1fd0: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 55 4e  a,b,c FROM t1 UN
1fe0: 49 4f 4e 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a  ION SELECT x,y,z
1ff0: 20 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44   FROM t2.    ORD
2000: 45 52 20 42 59 20 63 2c 61 2c 62 0a 20 20 7d 0a  ER BY c,a,b.  }.
2010: 7d 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20 42  } {1 a a 9.9 b B
2020: 20 7b 7d 20 43 20 63 20 68 65 6c 6c 6f 20 64 20   {} C c hello d 
2030: 44 20 61 62 63 20 65 20 65 20 68 61 72 65 20 6d  D abc e e hare m
2040: 20 4d 20 7b 7d 20 55 20 75 20 35 32 30 30 30 30   M {} U u 520000
2050: 30 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79 20  0.0 X x -23 Y y 
2060: 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74  mad Z z}.do_test
2070: 20 73 65 6c 65 63 74 41 2d 32 2e 32 39 20 7b 0a   selectA-2.29 {.
2080: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
2090: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
20a0: 4d 20 74 31 20 55 4e 49 4f 4e 20 53 45 4c 45 43  M t1 UNION SELEC
20b0: 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a  T x,y,z FROM t2.
20c0: 20 20 20 20 4f 52 44 45 52 20 42 59 20 63 20 44      ORDER BY c D
20d0: 45 53 43 2c 61 2c 62 0a 20 20 7d 0a 7d 20 7b 6d  ESC,a,b.  }.} {m
20e0: 61 64 20 5a 20 7a 20 2d 32 33 20 59 20 79 20 35  ad Z z -23 Y y 5
20f0: 32 30 30 30 30 30 2e 30 20 58 20 78 20 7b 7d 20  200000.0 X x {} 
2100: 55 20 75 20 68 61 72 65 20 6d 20 4d 20 61 62 63  U u hare m M abc
2110: 20 65 20 65 20 68 65 6c 6c 6f 20 64 20 44 20 7b   e e hello d D {
2120: 7d 20 43 20 63 20 39 2e 39 20 62 20 42 20 31 20  } C c 9.9 b B 1 
2130: 61 20 61 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  a a}.do_test sel
2140: 65 63 74 41 2d 32 2e 33 30 20 7b 0a 20 20 65 78  ectA-2.30 {.  ex
2150: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
2160: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
2170: 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 78 2c   UNION SELECT x,
2180: 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20 20  y,z FROM t2.    
2190: 4f 52 44 45 52 20 42 59 20 63 20 43 4f 4c 4c 41  ORDER BY c COLLA
21a0: 54 45 20 42 49 4e 41 52 59 20 44 45 53 43 2c 61  TE BINARY DESC,a
21b0: 2c 62 0a 20 20 7d 0a 7d 20 7b 6d 61 64 20 5a 20  ,b.  }.} {mad Z 
21c0: 7a 20 2d 32 33 20 59 20 79 20 35 32 30 30 30 30  z -23 Y y 520000
21d0: 30 2e 30 20 58 20 78 20 7b 7d 20 55 20 75 20 61  0.0 X x {} U u a
21e0: 62 63 20 65 20 65 20 7b 7d 20 43 20 63 20 31 20  bc e e {} C c 1 
21f0: 61 20 61 20 68 61 72 65 20 6d 20 4d 20 68 65 6c  a a hare m M hel
2200: 6c 6f 20 64 20 44 20 39 2e 39 20 62 20 42 7d 0a  lo d D 9.9 b B}.
2210: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
2220: 32 2e 33 31 20 7b 0a 20 20 65 78 65 63 73 71 6c  2.31 {.  execsql
2230: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78 2c   {.    SELECT x,
2240: 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f  y,z FROM t2 UNIO
2250: 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  N SELECT a,b,c F
2260: 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52  ROM t1.    ORDER
2270: 20 42 59 20 61 2c 62 2c 63 0a 20 20 7d 0a 7d 20   BY a,b,c.  }.} 
2280: 7b 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 20 2d  {{} C c {} U u -
2290: 32 33 20 59 20 79 20 31 20 61 20 61 20 39 2e 39  23 Y y 1 a a 9.9
22a0: 20 62 20 42 20 35 32 30 30 30 30 30 2e 30 20 58   b B 5200000.0 X
22b0: 20 78 20 68 65 6c 6c 6f 20 64 20 44 20 6d 61 64   x hello d D mad
22c0: 20 5a 20 7a 20 61 62 63 20 65 20 65 20 68 61 72   Z z abc e e har
22d0: 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73  e m M}.do_test s
22e0: 65 6c 65 63 74 41 2d 32 2e 33 32 20 7b 0a 20 20  electA-2.32 {.  
22f0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
2300: 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20  LECT x,y,z FROM 
2310: 74 32 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20  t2 UNION SELECT 
2320: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20  a,b,c FROM t1.  
2330: 20 20 4f 52 44 45 52 20 42 59 20 61 20 44 45 53    ORDER BY a DES
2340: 43 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b 68 61 72  C,b,c.  }.} {har
2350: 65 20 6d 20 4d 20 61 62 63 20 65 20 65 20 6d 61  e m M abc e e ma
2360: 64 20 5a 20 7a 20 68 65 6c 6c 6f 20 64 20 44 20  d Z z hello d D 
2370: 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 39 2e  5200000.0 X x 9.
2380: 39 20 62 20 42 20 31 20 61 20 61 20 2d 32 33 20  9 b B 1 a a -23 
2390: 59 20 79 20 7b 7d 20 43 20 63 20 7b 7d 20 55 20  Y y {} C c {} U 
23a0: 75 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  u}.do_test selec
23b0: 74 41 2d 32 2e 33 33 20 7b 0a 20 20 65 78 65 63  tA-2.33 {.  exec
23c0: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
23d0: 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55   x,y,z FROM t2 U
23e0: 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c  NION SELECT a,b,
23f0: 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52  c FROM t1.    OR
2400: 44 45 52 20 42 59 20 61 2c 63 2c 62 0a 20 20 7d  DER BY a,c,b.  }
2410: 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d 20 55 20  .} {{} C c {} U 
2420: 75 20 2d 32 33 20 59 20 79 20 31 20 61 20 61 20  u -23 Y y 1 a a 
2430: 39 2e 39 20 62 20 42 20 35 32 30 30 30 30 30 2e  9.9 b B 5200000.
2440: 30 20 58 20 78 20 68 65 6c 6c 6f 20 64 20 44 20  0 X x hello d D 
2450: 6d 61 64 20 5a 20 7a 20 61 62 63 20 65 20 65 20  mad Z z abc e e 
2460: 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73  hare m M}.do_tes
2470: 74 20 73 65 6c 65 63 74 41 2d 32 2e 33 34 20 7b  t selectA-2.34 {
2480: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
2490: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
24a0: 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 53 45 4c 45  OM t2 UNION SELE
24b0: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
24c0: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 62 2c  .    ORDER BY b,
24d0: 61 2c 63 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20  a,c.  }.} {{} C 
24e0: 63 20 7b 7d 20 55 20 75 20 35 32 30 30 30 30 30  c {} U u 5200000
24f0: 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79 20 6d  .0 X x -23 Y y m
2500: 61 64 20 5a 20 7a 20 31 20 61 20 61 20 39 2e 39  ad Z z 1 a a 9.9
2510: 20 62 20 42 20 68 65 6c 6c 6f 20 64 20 44 20 61   b B hello d D a
2520: 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 7d  bc e e hare m M}
2530: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
2540: 2d 32 2e 33 35 20 7b 0a 20 20 65 78 65 63 73 71  -2.35 {.  execsq
2550: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78  l {.    SELECT x
2560: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49  ,y,z FROM t2 UNI
2570: 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20  ON SELECT a,b,c 
2580: 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45  FROM t1.    ORDE
2590: 52 20 42 59 20 79 20 43 4f 4c 4c 41 54 45 20 4e  R BY y COLLATE N
25a0: 4f 43 41 53 45 2c 78 2c 7a 0a 20 20 7d 0a 7d 20  OCASE,x,z.  }.} 
25b0: 7b 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b  {1 a a 9.9 b B {
25c0: 7d 20 43 20 63 20 68 65 6c 6c 6f 20 64 20 44 20  } C c hello d D 
25d0: 61 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d  abc e e hare m M
25e0: 20 7b 7d 20 55 20 75 20 35 32 30 30 30 30 30 2e   {} U u 5200000.
25f0: 30 20 58 20 78 20 2d 32 33 20 59 20 79 20 6d 61  0 X x -23 Y y ma
2600: 64 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74 20 73  d Z z}.do_test s
2610: 65 6c 65 63 74 41 2d 32 2e 33 36 20 7b 0a 20 20  electA-2.36 {.  
2620: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
2630: 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20  LECT x,y,z FROM 
2640: 74 32 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20  t2 UNION SELECT 
2650: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20  a,b,c FROM t1.  
2660: 20 20 4f 52 44 45 52 20 42 59 20 79 20 43 4f 4c    ORDER BY y COL
2670: 4c 41 54 45 20 4e 4f 43 41 53 45 20 44 45 53 43  LATE NOCASE DESC
2680: 2c 78 2c 7a 0a 20 20 7d 0a 7d 20 7b 6d 61 64 20  ,x,z.  }.} {mad 
2690: 5a 20 7a 20 2d 32 33 20 59 20 79 20 35 32 30 30  Z z -23 Y y 5200
26a0: 30 30 30 2e 30 20 58 20 78 20 7b 7d 20 55 20 75  000.0 X x {} U u
26b0: 20 68 61 72 65 20 6d 20 4d 20 61 62 63 20 65 20   hare m M abc e 
26c0: 65 20 68 65 6c 6c 6f 20 64 20 44 20 7b 7d 20 43  e hello d D {} C
26d0: 20 63 20 39 2e 39 20 62 20 42 20 31 20 61 20 61   c 9.9 b B 1 a a
26e0: 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74  }.do_test select
26f0: 41 2d 32 2e 33 37 20 7b 0a 20 20 65 78 65 63 73  A-2.37 {.  execs
2700: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
2710: 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e  x,y,z FROM t2 UN
2720: 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c 63  ION SELECT a,b,c
2730: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44   FROM t1.    ORD
2740: 45 52 20 42 59 20 63 2c 62 2c 61 0a 20 20 7d 0a  ER BY c,b,a.  }.
2750: 7d 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20 42  } {1 a a 9.9 b B
2760: 20 7b 7d 20 43 20 63 20 68 65 6c 6c 6f 20 64 20   {} C c hello d 
2770: 44 20 61 62 63 20 65 20 65 20 68 61 72 65 20 6d  D abc e e hare m
2780: 20 4d 20 7b 7d 20 55 20 75 20 35 32 30 30 30 30   M {} U u 520000
2790: 30 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79 20  0.0 X x -23 Y y 
27a0: 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74  mad Z z}.do_test
27b0: 20 73 65 6c 65 63 74 41 2d 32 2e 33 38 20 7b 0a   selectA-2.38 {.
27c0: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
27d0: 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f  SELECT x,y,z FRO
27e0: 4d 20 74 32 20 55 4e 49 4f 4e 20 53 45 4c 45 43  M t2 UNION SELEC
27f0: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a  T a,b,c FROM t1.
2800: 20 20 20 20 4f 52 44 45 52 20 42 59 20 63 2c 61      ORDER BY c,a
2810: 2c 62 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20  ,b.  }.} {1 a a 
2820: 39 2e 39 20 62 20 42 20 7b 7d 20 43 20 63 20 68  9.9 b B {} C c h
2830: 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65  ello d D abc e e
2840: 20 68 61 72 65 20 6d 20 4d 20 7b 7d 20 55 20 75   hare m M {} U u
2850: 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 2d   5200000.0 X x -
2860: 32 33 20 59 20 79 20 6d 61 64 20 5a 20 7a 7d 0a  23 Y y mad Z z}.
2870: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
2880: 32 2e 33 39 20 7b 0a 20 20 65 78 65 63 73 71 6c  2.39 {.  execsql
2890: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78 2c   {.    SELECT x,
28a0: 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f  y,z FROM t2 UNIO
28b0: 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  N SELECT a,b,c F
28c0: 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52  ROM t1.    ORDER
28d0: 20 42 59 20 63 20 44 45 53 43 2c 61 2c 62 0a 20   BY c DESC,a,b. 
28e0: 20 7d 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d 32   }.} {mad Z z -2
28f0: 33 20 59 20 79 20 35 32 30 30 30 30 30 2e 30 20  3 Y y 5200000.0 
2900: 58 20 78 20 7b 7d 20 55 20 75 20 68 61 72 65 20  X x {} U u hare 
2910: 6d 20 4d 20 61 62 63 20 65 20 65 20 68 65 6c 6c  m M abc e e hell
2920: 6f 20 64 20 44 20 7b 7d 20 43 20 63 20 39 2e 39  o d D {} C c 9.9
2930: 20 62 20 42 20 31 20 61 20 61 7d 0a 64 6f 5f 74   b B 1 a a}.do_t
2940: 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 34 30  est selectA-2.40
2950: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
2960: 20 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20     SELECT x,y,z 
2970: 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 53 45  FROM t2 UNION SE
2980: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
2990: 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t1.    ORDER BY 
29a0: 7a 20 43 4f 4c 4c 41 54 45 20 42 49 4e 41 52 59  z COLLATE BINARY
29b0: 20 44 45 53 43 2c 78 2c 79 0a 20 20 7d 0a 7d 20   DESC,x,y.  }.} 
29c0: 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20 79  {mad Z z -23 Y y
29d0: 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 7b   5200000.0 X x {
29e0: 7d 20 55 20 75 20 61 62 63 20 65 20 65 20 7b 7d  } U u abc e e {}
29f0: 20 43 20 63 20 31 20 61 20 61 20 68 61 72 65 20   C c 1 a a hare 
2a00: 6d 20 4d 20 68 65 6c 6c 6f 20 64 20 44 20 39 2e  m M hello d D 9.
2a10: 39 20 62 20 42 7d 0a 64 6f 5f 74 65 73 74 20 73  9 b B}.do_test s
2a20: 65 6c 65 63 74 41 2d 32 2e 34 31 20 7b 0a 20 20  electA-2.41 {.  
2a30: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
2a40: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
2a50: 74 31 20 45 58 43 45 50 54 20 53 45 4c 45 43 54  t1 EXCEPT SELECT
2a60: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57   a,b,c FROM t1 W
2a70: 48 45 52 45 20 62 3e 3d 27 64 27 0a 20 20 20 20  HERE b>='d'.    
2a80: 4f 52 44 45 52 20 42 59 20 61 2c 62 2c 63 0a 20  ORDER BY a,b,c. 
2a90: 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 31 20 61   }.} {{} C c 1 a
2aa0: 20 61 20 39 2e 39 20 62 20 42 7d 0a 64 6f 5f 74   a 9.9 b B}.do_t
2ab0: 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 34 32  est selectA-2.42
2ac0: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
2ad0: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
2ae0: 46 52 4f 4d 20 74 31 20 49 4e 54 45 52 53 45 43  FROM t1 INTERSEC
2af0: 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  T SELECT a,b,c F
2b00: 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3e 3d  ROM t1 WHERE b>=
2b10: 27 64 27 0a 20 20 20 20 4f 52 44 45 52 20 42 59  'd'.    ORDER BY
2b20: 20 61 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b 68 65   a,b,c.  }.} {he
2b30: 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65 7d  llo d D abc e e}
2b40: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
2b50: 2d 32 2e 34 33 20 7b 0a 20 20 65 78 65 63 73 71  -2.43 {.  execsq
2b60: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
2b70: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45  ,b,c FROM t1 WHE
2b80: 52 45 20 62 3e 3d 27 64 27 20 49 4e 54 45 52 53  RE b>='d' INTERS
2b90: 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63  ECT SELECT a,b,c
2ba0: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44   FROM t1.    ORD
2bb0: 45 52 20 42 59 20 61 2c 62 2c 63 0a 20 20 7d 0a  ER BY a,b,c.  }.
2bc0: 7d 20 7b 68 65 6c 6c 6f 20 64 20 44 20 61 62 63  } {hello d D abc
2bd0: 20 65 20 65 7d 0a 64 6f 5f 74 65 73 74 20 73 65   e e}.do_test se
2be0: 6c 65 63 74 41 2d 32 2e 34 34 20 7b 0a 20 20 65  lectA-2.44 {.  e
2bf0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
2c00: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
2c10: 31 20 45 58 43 45 50 54 20 53 45 4c 45 43 54 20  1 EXCEPT SELECT 
2c20: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48  a,b,c FROM t1 WH
2c30: 45 52 45 20 62 3c 27 64 27 0a 20 20 20 20 4f 52  ERE b<'d'.    OR
2c40: 44 45 52 20 42 59 20 61 2c 62 2c 63 0a 20 20 7d  DER BY a,b,c.  }
2c50: 0a 7d 20 7b 68 65 6c 6c 6f 20 64 20 44 20 61 62  .} {hello d D ab
2c60: 63 20 65 20 65 7d 0a 64 6f 5f 74 65 73 74 20 73  c e e}.do_test s
2c70: 65 6c 65 63 74 41 2d 32 2e 34 35 20 7b 0a 20 20  electA-2.45 {.  
2c80: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
2c90: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
2ca0: 74 31 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c  t1 INTERSECT SEL
2cb0: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
2cc0: 31 20 57 48 45 52 45 20 62 3c 27 64 27 0a 20 20  1 WHERE b<'d'.  
2cd0: 20 20 4f 52 44 45 52 20 42 59 20 61 2c 62 2c 63    ORDER BY a,b,c
2ce0: 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 31  .  }.} {{} C c 1
2cf0: 20 61 20 61 20 39 2e 39 20 62 20 42 7d 0a 64 6f   a a 9.9 b B}.do
2d00: 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e  _test selectA-2.
2d10: 34 36 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  46 {.  execsql {
2d20: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c  .    SELECT a,b,
2d30: 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20  c FROM t1 WHERE 
2d40: 62 3c 27 64 27 20 49 4e 54 45 52 53 45 43 54 20  b<'d' INTERSECT 
2d50: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
2d60: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
2d70: 59 20 61 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b 7b  Y a,b,c.  }.} {{
2d80: 7d 20 43 20 63 20 31 20 61 20 61 20 39 2e 39 20  } C c 1 a a 9.9 
2d90: 62 20 42 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  b B}.do_test sel
2da0: 65 63 74 41 2d 32 2e 34 37 20 7b 0a 20 20 65 78  ectA-2.47 {.  ex
2db0: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
2dc0: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
2dd0: 20 45 58 43 45 50 54 20 53 45 4c 45 43 54 20 61   EXCEPT SELECT a
2de0: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45  ,b,c FROM t1 WHE
2df0: 52 45 20 62 3e 3d 27 64 27 0a 20 20 20 20 4f 52  RE b>='d'.    OR
2e00: 44 45 52 20 42 59 20 61 20 44 45 53 43 0a 20 20  DER BY a DESC.  
2e10: 7d 0a 7d 20 7b 39 2e 39 20 62 20 42 20 31 20 61  }.} {9.9 b B 1 a
2e20: 20 61 20 7b 7d 20 43 20 63 7d 0a 64 6f 5f 74 65   a {} C c}.do_te
2e30: 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 34 38 20  st selectA-2.48 
2e40: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
2e50: 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46    SELECT a,b,c F
2e60: 52 4f 4d 20 74 31 20 49 4e 54 45 52 53 45 43 54  ROM t1 INTERSECT
2e70: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
2e80: 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3e 3d 27  OM t1 WHERE b>='
2e90: 64 27 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  d'.    ORDER BY 
2ea0: 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 61 62  a DESC.  }.} {ab
2eb0: 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20 44 7d  c e e hello d D}
2ec0: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
2ed0: 2d 32 2e 34 39 20 7b 0a 20 20 65 78 65 63 73 71  -2.49 {.  execsq
2ee0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
2ef0: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45  ,b,c FROM t1 WHE
2f00: 52 45 20 62 3e 3d 27 64 27 20 49 4e 54 45 52 53  RE b>='d' INTERS
2f10: 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63  ECT SELECT a,b,c
2f20: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44   FROM t1.    ORD
2f30: 45 52 20 42 59 20 61 20 44 45 53 43 0a 20 20 7d  ER BY a DESC.  }
2f40: 0a 7d 20 7b 61 62 63 20 65 20 65 20 68 65 6c 6c  .} {abc e e hell
2f50: 6f 20 64 20 44 7d 0a 64 6f 5f 74 65 73 74 20 73  o d D}.do_test s
2f60: 65 6c 65 63 74 41 2d 32 2e 35 30 20 7b 0a 20 20  electA-2.50 {.  
2f70: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
2f80: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
2f90: 74 31 20 45 58 43 45 50 54 20 53 45 4c 45 43 54  t1 EXCEPT SELECT
2fa0: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57   a,b,c FROM t1 W
2fb0: 48 45 52 45 20 62 3c 27 64 27 0a 20 20 20 20 4f  HERE b<'d'.    O
2fc0: 52 44 45 52 20 42 59 20 61 20 44 45 53 43 0a 20  RDER BY a DESC. 
2fd0: 20 7d 0a 7d 20 7b 61 62 63 20 65 20 65 20 68 65   }.} {abc e e he
2fe0: 6c 6c 6f 20 64 20 44 7d 0a 64 6f 5f 74 65 73 74  llo d D}.do_test
2ff0: 20 73 65 6c 65 63 74 41 2d 32 2e 35 31 20 7b 0a   selectA-2.51 {.
3000: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
3010: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
3020: 4d 20 74 31 20 49 4e 54 45 52 53 45 43 54 20 53  M t1 INTERSECT S
3030: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
3040: 20 74 31 20 57 48 45 52 45 20 62 3c 27 64 27 0a   t1 WHERE b<'d'.
3050: 20 20 20 20 4f 52 44 45 52 20 42 59 20 61 20 44      ORDER BY a D
3060: 45 53 43 0a 20 20 7d 0a 7d 20 7b 39 2e 39 20 62  ESC.  }.} {9.9 b
3070: 20 42 20 31 20 61 20 61 20 7b 7d 20 43 20 63 7d   B 1 a a {} C c}
3080: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
3090: 2d 32 2e 35 32 20 7b 0a 20 20 65 78 65 63 73 71  -2.52 {.  execsq
30a0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
30b0: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45  ,b,c FROM t1 WHE
30c0: 52 45 20 62 3c 27 64 27 20 49 4e 54 45 52 53 45  RE b<'d' INTERSE
30d0: 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20  CT SELECT a,b,c 
30e0: 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45  FROM t1.    ORDE
30f0: 52 20 42 59 20 61 20 44 45 53 43 0a 20 20 7d 0a  R BY a DESC.  }.
3100: 7d 20 7b 39 2e 39 20 62 20 42 20 31 20 61 20 61  } {9.9 b B 1 a a
3110: 20 7b 7d 20 43 20 63 7d 0a 64 6f 5f 74 65 73 74   {} C c}.do_test
3120: 20 73 65 6c 65 63 74 41 2d 32 2e 35 33 20 7b 0a   selectA-2.53 {.
3130: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
3140: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
3150: 4d 20 74 31 20 45 58 43 45 50 54 20 53 45 4c 45  M t1 EXCEPT SELE
3160: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
3170: 20 57 48 45 52 45 20 62 3e 3d 27 64 27 0a 20 20   WHERE b>='d'.  
3180: 20 20 4f 52 44 45 52 20 42 59 20 62 2c 20 61 20    ORDER BY b, a 
3190: 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43  DESC.  }.} {{} C
31a0: 20 63 20 31 20 61 20 61 20 39 2e 39 20 62 20 42   c 1 a a 9.9 b B
31b0: 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74  }.do_test select
31c0: 41 2d 32 2e 35 34 20 7b 0a 20 20 65 78 65 63 73  A-2.54 {.  execs
31d0: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
31e0: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 49 4e  a,b,c FROM t1 IN
31f0: 54 45 52 53 45 43 54 20 53 45 4c 45 43 54 20 61  TERSECT SELECT a
3200: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45  ,b,c FROM t1 WHE
3210: 52 45 20 62 3e 3d 27 64 27 0a 20 20 20 20 4f 52  RE b>='d'.    OR
3220: 44 45 52 20 42 59 20 62 0a 20 20 7d 0a 7d 20 7b  DER BY b.  }.} {
3230: 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20  hello d D abc e 
3240: 65 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  e}.do_test selec
3250: 74 41 2d 32 2e 35 35 20 7b 0a 20 20 65 78 65 63  tA-2.55 {.  exec
3260: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
3270: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57   a,b,c FROM t1 W
3280: 48 45 52 45 20 62 3e 3d 27 64 27 20 49 4e 54 45  HERE b>='d' INTE
3290: 52 53 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62  RSECT SELECT a,b
32a0: 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f  ,c FROM t1.    O
32b0: 52 44 45 52 20 42 59 20 62 20 44 45 53 43 2c 20  RDER BY b DESC, 
32c0: 63 0a 20 20 7d 0a 7d 20 7b 61 62 63 20 65 20 65  c.  }.} {abc e e
32d0: 20 68 65 6c 6c 6f 20 64 20 44 7d 0a 64 6f 5f 74   hello d D}.do_t
32e0: 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 35 36  est selectA-2.56
32f0: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
3300: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
3310: 46 52 4f 4d 20 74 31 20 45 58 43 45 50 54 20 53  FROM t1 EXCEPT S
3320: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
3330: 20 74 31 20 57 48 45 52 45 20 62 3c 27 64 27 0a   t1 WHERE b<'d'.
3340: 20 20 20 20 4f 52 44 45 52 20 42 59 20 62 2c 20      ORDER BY b, 
3350: 63 20 44 45 53 43 2c 20 61 0a 20 20 7d 0a 7d 20  c DESC, a.  }.} 
3360: 7b 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65  {hello d D abc e
3370: 20 65 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65   e}.do_test sele
3380: 63 74 41 2d 32 2e 35 37 20 7b 0a 20 20 65 78 65  ctA-2.57 {.  exe
3390: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
33a0: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20  T a,b,c FROM t1 
33b0: 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43 54  INTERSECT SELECT
33c0: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57   a,b,c FROM t1 W
33d0: 48 45 52 45 20 62 3c 27 64 27 0a 20 20 20 20 4f  HERE b<'d'.    O
33e0: 52 44 45 52 20 42 59 20 62 20 43 4f 4c 4c 41 54  RDER BY b COLLAT
33f0: 45 20 4e 4f 43 41 53 45 0a 20 20 7d 0a 7d 20 7b  E NOCASE.  }.} {
3400: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d  1 a a 9.9 b B {}
3410: 20 43 20 63 7d 0a 64 6f 5f 74 65 73 74 20 73 65   C c}.do_test se
3420: 6c 65 63 74 41 2d 32 2e 35 38 20 7b 0a 20 20 65  lectA-2.58 {.  e
3430: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
3440: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
3450: 31 20 57 48 45 52 45 20 62 3c 27 64 27 20 49 4e  1 WHERE b<'d' IN
3460: 54 45 52 53 45 43 54 20 53 45 4c 45 43 54 20 61  TERSECT SELECT a
3470: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20 20  ,b,c FROM t1.   
3480: 20 4f 52 44 45 52 20 42 59 20 62 0a 20 20 7d 0a   ORDER BY b.  }.
3490: 7d 20 7b 7b 7d 20 43 20 63 20 31 20 61 20 61 20  } {{} C c 1 a a 
34a0: 39 2e 39 20 62 20 42 7d 0a 64 6f 5f 74 65 73 74  9.9 b B}.do_test
34b0: 20 73 65 6c 65 63 74 41 2d 32 2e 35 39 20 7b 0a   selectA-2.59 {.
34c0: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
34d0: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
34e0: 4d 20 74 31 20 45 58 43 45 50 54 20 53 45 4c 45  M t1 EXCEPT SELE
34f0: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
3500: 20 57 48 45 52 45 20 62 3e 3d 27 64 27 0a 20 20   WHERE b>='d'.  
3510: 20 20 4f 52 44 45 52 20 42 59 20 63 2c 20 61 20    ORDER BY c, a 
3520: 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 31 20 61 20  DESC.  }.} {1 a 
3530: 61 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20 63  a 9.9 b B {} C c
3540: 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74  }.do_test select
3550: 41 2d 32 2e 36 30 20 7b 0a 20 20 65 78 65 63 73  A-2.60 {.  execs
3560: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
3570: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 49 4e  a,b,c FROM t1 IN
3580: 54 45 52 53 45 43 54 20 53 45 4c 45 43 54 20 61  TERSECT SELECT a
3590: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45  ,b,c FROM t1 WHE
35a0: 52 45 20 62 3e 3d 27 64 27 0a 20 20 20 20 4f 52  RE b>='d'.    OR
35b0: 44 45 52 20 42 59 20 63 0a 20 20 7d 0a 7d 20 7b  DER BY c.  }.} {
35c0: 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20  hello d D abc e 
35d0: 65 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  e}.do_test selec
35e0: 74 41 2d 32 2e 36 31 20 7b 0a 20 20 65 78 65 63  tA-2.61 {.  exec
35f0: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
3600: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57   a,b,c FROM t1 W
3610: 48 45 52 45 20 62 3e 3d 27 64 27 20 49 4e 54 45  HERE b>='d' INTE
3620: 52 53 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62  RSECT SELECT a,b
3630: 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f  ,c FROM t1.    O
3640: 52 44 45 52 20 42 59 20 63 20 43 4f 4c 4c 41 54  RDER BY c COLLAT
3650: 45 20 42 49 4e 41 52 59 2c 20 62 20 44 45 53 43  E BINARY, b DESC
3660: 2c 20 63 2c 20 61 2c 20 62 2c 20 63 2c 20 61 2c  , c, a, b, c, a,
3670: 20 62 2c 20 63 0a 20 20 7d 0a 7d 20 7b 68 65 6c   b, c.  }.} {hel
3680: 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65 7d 0a  lo d D abc e e}.
3690: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
36a0: 32 2e 36 32 20 7b 0a 20 20 65 78 65 63 73 71 6c  2.62 {.  execsql
36b0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
36c0: 62 2c 63 20 46 52 4f 4d 20 74 31 20 45 58 43 45  b,c FROM t1 EXCE
36d0: 50 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20  PT SELECT a,b,c 
36e0: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3c  FROM t1 WHERE b<
36f0: 27 64 27 0a 20 20 20 20 4f 52 44 45 52 20 42 59  'd'.    ORDER BY
3700: 20 63 20 44 45 53 43 2c 20 61 0a 20 20 7d 0a 7d   c DESC, a.  }.}
3710: 20 7b 61 62 63 20 65 20 65 20 68 65 6c 6c 6f 20   {abc e e hello 
3720: 64 20 44 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  d D}.do_test sel
3730: 65 63 74 41 2d 32 2e 36 33 20 7b 0a 20 20 65 78  ectA-2.63 {.  ex
3740: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
3750: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
3760: 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43   INTERSECT SELEC
3770: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20  T a,b,c FROM t1 
3780: 57 48 45 52 45 20 62 3c 27 64 27 0a 20 20 20 20  WHERE b<'d'.    
3790: 4f 52 44 45 52 20 42 59 20 63 20 43 4f 4c 4c 41  ORDER BY c COLLA
37a0: 54 45 20 4e 4f 43 41 53 45 0a 20 20 7d 0a 7d 20  TE NOCASE.  }.} 
37b0: 7b 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b  {1 a a 9.9 b B {
37c0: 7d 20 43 20 63 7d 0a 64 6f 5f 74 65 73 74 20 73  } C c}.do_test s
37d0: 65 6c 65 63 74 41 2d 32 2e 36 34 20 7b 0a 20 20  electA-2.64 {.  
37e0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
37f0: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
3800: 74 31 20 57 48 45 52 45 20 62 3c 27 64 27 20 49  t1 WHERE b<'d' I
3810: 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43 54 20  NTERSECT SELECT 
3820: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20  a,b,c FROM t1.  
3830: 20 20 4f 52 44 45 52 20 42 59 20 63 0a 20 20 7d    ORDER BY c.  }
3840: 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20  .} {1 a a 9.9 b 
3850: 42 20 7b 7d 20 43 20 63 7d 0a 64 6f 5f 74 65 73  B {} C c}.do_tes
3860: 74 20 73 65 6c 65 63 74 41 2d 32 2e 36 35 20 7b  t selectA-2.65 {
3870: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
3880: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
3890: 4f 4d 20 74 33 20 49 4e 54 45 52 53 45 43 54 20  OM t3 INTERSECT 
38a0: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
38b0: 4d 20 74 31 20 57 48 45 52 45 20 62 3c 27 64 27  M t1 WHERE b<'d'
38c0: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 63 20  .    ORDER BY c 
38d0: 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53 45 0a 20  COLLATE NOCASE. 
38e0: 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20   }.} {1 a a 9.9 
38f0: 62 20 42 20 7b 7d 20 43 20 63 7d 0a 64 6f 5f 74  b B {} C c}.do_t
3900: 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 36 36  est selectA-2.66
3910: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
3920: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
3930: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3c  FROM t1 WHERE b<
3940: 27 64 27 20 49 4e 54 45 52 53 45 43 54 20 53 45  'd' INTERSECT SE
3950: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
3960: 74 33 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t3.    ORDER BY 
3970: 63 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39  c.  }.} {1 a a 9
3980: 2e 39 20 62 20 42 20 7b 7d 20 43 20 63 7d 0a 64  .9 b B {} C c}.d
3990: 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 32  o_test selectA-2
39a0: 2e 36 37 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  .67 {.  execsql 
39b0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62  {.    SELECT a,b
39c0: 2c 63 20 46 52 4f 4d 20 74 31 20 45 58 43 45 50  ,c FROM t1 EXCEP
39d0: 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  T SELECT a,b,c F
39e0: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62 3c 27  ROM t3 WHERE b<'
39f0: 64 27 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  d'.    ORDER BY 
3a00: 63 20 44 45 53 43 2c 20 61 0a 20 20 7d 0a 7d 20  c DESC, a.  }.} 
3a10: 7b 61 62 63 20 65 20 65 20 68 65 6c 6c 6f 20 64  {abc e e hello d
3a20: 20 44 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65   D}.do_test sele
3a30: 63 74 41 2d 32 2e 36 38 20 7b 0a 20 20 65 78 65  ctA-2.68 {.  exe
3a40: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
3a50: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20  T a,b,c FROM t1 
3a60: 45 58 43 45 50 54 20 53 45 4c 45 43 54 20 61 2c  EXCEPT SELECT a,
3a70: 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52  b,c FROM t1 WHER
3a80: 45 20 62 3c 27 64 27 0a 20 20 20 20 49 4e 54 45  E b<'d'.    INTE
3a90: 52 53 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62  RSECT SELECT a,b
3aa0: 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 45  ,c FROM t3.    E
3ab0: 58 43 45 50 54 20 53 45 4c 45 43 54 20 62 2c 63  XCEPT SELECT b,c
3ac0: 2c 61 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f  ,a FROM t3.    O
3ad0: 52 44 45 52 20 42 59 20 63 20 44 45 53 43 2c 20  RDER BY c DESC, 
3ae0: 61 0a 20 20 7d 0a 7d 20 7b 61 62 63 20 65 20 65  a.  }.} {abc e e
3af0: 20 68 65 6c 6c 6f 20 64 20 44 7d 0a 64 6f 5f 74   hello d D}.do_t
3b00: 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 36 39  est selectA-2.69
3b10: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
3b20: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
3b30: 46 52 4f 4d 20 74 31 20 49 4e 54 45 52 53 45 43  FROM t1 INTERSEC
3b40: 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  T SELECT a,b,c F
3b50: 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3c 27  ROM t1 WHERE b<'
3b60: 64 27 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54  d'.    INTERSECT
3b70: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
3b80: 4f 4d 20 74 33 0a 20 20 20 20 45 58 43 45 50 54  OM t3.    EXCEPT
3b90: 20 53 45 4c 45 43 54 20 62 2c 63 2c 61 20 46 52   SELECT b,c,a FR
3ba0: 4f 4d 20 74 33 0a 20 20 20 20 4f 52 44 45 52 20  OM t3.    ORDER 
3bb0: 42 59 20 63 20 43 4f 4c 4c 41 54 45 20 4e 4f 43  BY c COLLATE NOC
3bc0: 41 53 45 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61  ASE.  }.} {1 a a
3bd0: 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20 63 7d   9.9 b B {} C c}
3be0: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
3bf0: 2d 32 2e 37 30 20 7b 0a 20 20 65 78 65 63 73 71  -2.70 {.  execsq
3c00: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
3c10: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45  ,b,c FROM t1 WHE
3c20: 52 45 20 62 3c 27 64 27 20 49 4e 54 45 52 53 45  RE b<'d' INTERSE
3c30: 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20  CT SELECT a,b,c 
3c40: 46 52 4f 4d 20 74 31 0a 20 20 20 20 49 4e 54 45  FROM t1.    INTE
3c50: 52 53 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62  RSECT SELECT a,b
3c60: 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 45  ,c FROM t3.    E
3c70: 58 43 45 50 54 20 53 45 4c 45 43 54 20 62 2c 63  XCEPT SELECT b,c
3c80: 2c 61 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f  ,a FROM t3.    O
3c90: 52 44 45 52 20 42 59 20 63 0a 20 20 7d 0a 7d 20  RDER BY c.  }.} 
3ca0: 7b 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b  {1 a a 9.9 b B {
3cb0: 7d 20 43 20 63 7d 0a 64 6f 5f 74 65 73 74 20 73  } C c}.do_test s
3cc0: 65 6c 65 63 74 41 2d 32 2e 37 31 20 7b 0a 20 20  electA-2.71 {.  
3cd0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
3ce0: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
3cf0: 74 31 20 57 48 45 52 45 20 62 3c 27 64 27 0a 20  t1 WHERE b<'d'. 
3d00: 20 20 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c     INTERSECT SEL
3d10: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
3d20: 31 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54 20  1.    INTERSECT 
3d30: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
3d40: 4d 20 74 33 0a 20 20 20 20 45 58 43 45 50 54 20  M t3.    EXCEPT 
3d50: 53 45 4c 45 43 54 20 62 2c 63 2c 61 20 46 52 4f  SELECT b,c,a FRO
3d60: 4d 20 74 33 0a 20 20 20 20 49 4e 54 45 52 53 45  M t3.    INTERSE
3d70: 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20  CT SELECT a,b,c 
3d80: 46 52 4f 4d 20 74 31 0a 20 20 20 20 45 58 43 45  FROM t1.    EXCE
3d90: 50 54 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20  PT SELECT x,y,z 
3da0: 46 52 4f 4d 20 74 32 0a 20 20 20 20 49 4e 54 45  FROM t2.    INTE
3db0: 52 53 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62  RSECT SELECT a,b
3dc0: 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 45  ,c FROM t3.    E
3dd0: 58 43 45 50 54 20 53 45 4c 45 43 54 20 79 2c 78  XCEPT SELECT y,x
3de0: 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20 20 49  ,z FROM t2.    I
3df0: 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43 54 20  NTERSECT SELECT 
3e00: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20  a,b,c FROM t1.  
3e10: 20 20 45 58 43 45 50 54 20 53 45 4c 45 43 54 20    EXCEPT SELECT 
3e20: 63 2c 62 2c 61 20 46 52 4f 4d 20 74 33 0a 20 20  c,b,a FROM t3.  
3e30: 20 20 4f 52 44 45 52 20 42 59 20 63 0a 20 20 7d    ORDER BY c.  }
3e40: 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20  .} {1 a a 9.9 b 
3e50: 42 20 7b 7d 20 43 20 63 7d 0a 64 6f 5f 74 65 73  B {} C c}.do_tes
3e60: 74 20 73 65 6c 65 63 74 41 2d 32 2e 37 32 20 7b  t selectA-2.72 {
3e70: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
3e80: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
3e90: 4f 4d 20 74 33 20 55 4e 49 4f 4e 20 53 45 4c 45  OM t3 UNION SELE
3ea0: 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32  CT x,y,z FROM t2
3eb0: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 61 2c  .    ORDER BY a,
3ec0: 62 2c 63 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20  b,c.  }.} {{} C 
3ed0: 63 20 7b 7d 20 55 20 75 20 2d 32 33 20 59 20 79  c {} U u -23 Y y
3ee0: 20 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 35   1 a a 9.9 b B 5
3ef0: 32 30 30 30 30 30 2e 30 20 58 20 78 20 68 65 6c  200000.0 X x hel
3f00: 6c 6f 20 64 20 44 20 6d 61 64 20 5a 20 7a 20 61  lo d D mad Z z a
3f10: 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 7d  bc e e hare m M}
3f20: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
3f30: 2d 32 2e 37 33 20 7b 0a 20 20 65 78 65 63 73 71  -2.73 {.  execsq
3f40: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
3f50: 2c 62 2c 63 20 46 52 4f 4d 20 74 33 20 55 4e 49  ,b,c FROM t3 UNI
3f60: 4f 4e 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20  ON SELECT x,y,z 
3f70: 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45  FROM t2.    ORDE
3f80: 52 20 42 59 20 61 20 44 45 53 43 2c 62 2c 63 0a  R BY a DESC,b,c.
3f90: 20 20 7d 0a 7d 20 7b 68 61 72 65 20 6d 20 4d 20    }.} {hare m M 
3fa0: 61 62 63 20 65 20 65 20 6d 61 64 20 5a 20 7a 20  abc e e mad Z z 
3fb0: 68 65 6c 6c 6f 20 64 20 44 20 35 32 30 30 30 30  hello d D 520000
3fc0: 30 2e 30 20 58 20 78 20 39 2e 39 20 62 20 42 20  0.0 X x 9.9 b B 
3fd0: 31 20 61 20 61 20 2d 32 33 20 59 20 79 20 7b 7d  1 a a -23 Y y {}
3fe0: 20 43 20 63 20 7b 7d 20 55 20 75 7d 0a 64 6f 5f   C c {} U u}.do_
3ff0: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 37  test selectA-2.7
4000: 34 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  4 {.  execsql {.
4010: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63      SELECT a,b,c
4020: 20 46 52 4f 4d 20 74 33 20 55 4e 49 4f 4e 20 53   FROM t3 UNION S
4030: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
4040: 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t2.    ORDER BY
4050: 20 61 2c 63 2c 62 0a 20 20 7d 0a 7d 20 7b 7b 7d   a,c,b.  }.} {{}
4060: 20 43 20 63 20 7b 7d 20 55 20 75 20 2d 32 33 20   C c {} U u -23 
4070: 59 20 79 20 31 20 61 20 61 20 39 2e 39 20 62 20  Y y 1 a a 9.9 b 
4080: 42 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  B 5200000.0 X x 
4090: 68 65 6c 6c 6f 20 64 20 44 20 6d 61 64 20 5a 20  hello d D mad Z 
40a0: 7a 20 61 62 63 20 65 20 65 20 68 61 72 65 20 6d  z abc e e hare m
40b0: 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65   M}.do_test sele
40c0: 63 74 41 2d 32 2e 37 35 20 7b 0a 20 20 65 78 65  ctA-2.75 {.  exe
40d0: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
40e0: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33 20  T a,b,c FROM t3 
40f0: 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 78 2c 79  UNION SELECT x,y
4100: 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f  ,z FROM t2.    O
4110: 52 44 45 52 20 42 59 20 62 2c 61 2c 63 0a 20 20  RDER BY b,a,c.  
4120: 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d 20 55  }.} {{} C c {} U
4130: 20 75 20 35 32 30 30 30 30 30 2e 30 20 58 20 78   u 5200000.0 X x
4140: 20 2d 32 33 20 59 20 79 20 6d 61 64 20 5a 20 7a   -23 Y y mad Z z
4150: 20 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 68   1 a a 9.9 b B h
4160: 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65  ello d D abc e e
4170: 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65   hare m M}.do_te
4180: 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 37 36 20  st selectA-2.76 
4190: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
41a0: 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46    SELECT a,b,c F
41b0: 52 4f 4d 20 74 33 20 55 4e 49 4f 4e 20 53 45 4c  ROM t3 UNION SEL
41c0: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
41d0: 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 62  2.    ORDER BY b
41e0: 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53 45 2c   COLLATE NOCASE,
41f0: 61 2c 63 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61  a,c.  }.} {1 a a
4200: 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20 63 20   9.9 b B {} C c 
4210: 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20  hello d D abc e 
4220: 65 20 68 61 72 65 20 6d 20 4d 20 7b 7d 20 55 20  e hare m M {} U 
4230: 75 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  u 5200000.0 X x 
4240: 2d 32 33 20 59 20 79 20 6d 61 64 20 5a 20 7a 7d  -23 Y y mad Z z}
4250: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
4260: 2d 32 2e 37 37 20 7b 0a 20 20 65 78 65 63 73 71  -2.77 {.  execsq
4270: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
4280: 2c 62 2c 63 20 46 52 4f 4d 20 74 33 20 55 4e 49  ,b,c FROM t3 UNI
4290: 4f 4e 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20  ON SELECT x,y,z 
42a0: 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45  FROM t2.    ORDE
42b0: 52 20 42 59 20 62 20 43 4f 4c 4c 41 54 45 20 4e  R BY b COLLATE N
42c0: 4f 43 41 53 45 20 44 45 53 43 2c 61 2c 63 0a 20  OCASE DESC,a,c. 
42d0: 20 7d 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d 32   }.} {mad Z z -2
42e0: 33 20 59 20 79 20 35 32 30 30 30 30 30 2e 30 20  3 Y y 5200000.0 
42f0: 58 20 78 20 7b 7d 20 55 20 75 20 68 61 72 65 20  X x {} U u hare 
4300: 6d 20 4d 20 61 62 63 20 65 20 65 20 68 65 6c 6c  m M abc e e hell
4310: 6f 20 64 20 44 20 7b 7d 20 43 20 63 20 39 2e 39  o d D {} C c 9.9
4320: 20 62 20 42 20 31 20 61 20 61 7d 0a 64 6f 5f 74   b B 1 a a}.do_t
4330: 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 37 38  est selectA-2.78
4340: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
4350: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
4360: 46 52 4f 4d 20 74 33 20 55 4e 49 4f 4e 20 53 45  FROM t3 UNION SE
4370: 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20  LECT x,y,z FROM 
4380: 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t2.    ORDER BY 
4390: 63 2c 62 2c 61 0a 20 20 7d 0a 7d 20 7b 31 20 61  c,b,a.  }.} {1 a
43a0: 20 61 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20   a 9.9 b B {} C 
43b0: 63 20 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20  c hello d D abc 
43c0: 65 20 65 20 68 61 72 65 20 6d 20 4d 20 7b 7d 20  e e hare m M {} 
43d0: 55 20 75 20 35 32 30 30 30 30 30 2e 30 20 58 20  U u 5200000.0 X 
43e0: 78 20 2d 32 33 20 59 20 79 20 6d 61 64 20 5a 20  x -23 Y y mad Z 
43f0: 7a 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  z}.do_test selec
4400: 74 41 2d 32 2e 37 39 20 7b 0a 20 20 65 78 65 63  tA-2.79 {.  exec
4410: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
4420: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33 20 55   a,b,c FROM t3 U
4430: 4e 49 4f 4e 20 53 45 4c 45 43 54 20 78 2c 79 2c  NION SELECT x,y,
4440: 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52  z FROM t2.    OR
4450: 44 45 52 20 42 59 20 63 2c 61 2c 62 0a 20 20 7d  DER BY c,a,b.  }
4460: 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20  .} {1 a a 9.9 b 
4470: 42 20 7b 7d 20 43 20 63 20 68 65 6c 6c 6f 20 64  B {} C c hello d
4480: 20 44 20 61 62 63 20 65 20 65 20 68 61 72 65 20   D abc e e hare 
4490: 6d 20 4d 20 7b 7d 20 55 20 75 20 35 32 30 30 30  m M {} U u 52000
44a0: 30 30 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79  00.0 X x -23 Y y
44b0: 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73   mad Z z}.do_tes
44c0: 74 20 73 65 6c 65 63 74 41 2d 32 2e 38 30 20 7b  t selectA-2.80 {
44d0: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
44e0: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
44f0: 4f 4d 20 74 33 20 55 4e 49 4f 4e 20 53 45 4c 45  OM t3 UNION SELE
4500: 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32  CT x,y,z FROM t2
4510: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 63 20  .    ORDER BY c 
4520: 44 45 53 43 2c 61 2c 62 0a 20 20 7d 0a 7d 20 7b  DESC,a,b.  }.} {
4530: 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20 79 20  mad Z z -23 Y y 
4540: 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 7b 7d  5200000.0 X x {}
4550: 20 55 20 75 20 68 61 72 65 20 6d 20 4d 20 61 62   U u hare m M ab
4560: 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20 44 20  c e e hello d D 
4570: 7b 7d 20 43 20 63 20 39 2e 39 20 62 20 42 20 31  {} C c 9.9 b B 1
4580: 20 61 20 61 7d 0a 64 6f 5f 74 65 73 74 20 73 65   a a}.do_test se
4590: 6c 65 63 74 41 2d 32 2e 38 31 20 7b 0a 20 20 65  lectA-2.81 {.  e
45a0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
45b0: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
45c0: 33 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 78  3 UNION SELECT x
45d0: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20  ,y,z FROM t2.   
45e0: 20 4f 52 44 45 52 20 42 59 20 63 20 43 4f 4c 4c   ORDER BY c COLL
45f0: 41 54 45 20 42 49 4e 41 52 59 20 44 45 53 43 2c  ATE BINARY DESC,
4600: 61 2c 62 0a 20 20 7d 0a 7d 20 7b 6d 61 64 20 5a  a,b.  }.} {mad Z
4610: 20 7a 20 2d 32 33 20 59 20 79 20 35 32 30 30 30   z -23 Y y 52000
4620: 30 30 2e 30 20 58 20 78 20 7b 7d 20 55 20 75 20  00.0 X x {} U u 
4630: 61 62 63 20 65 20 65 20 7b 7d 20 43 20 63 20 31  abc e e {} C c 1
4640: 20 61 20 61 20 68 61 72 65 20 6d 20 4d 20 68 65   a a hare m M he
4650: 6c 6c 6f 20 64 20 44 20 39 2e 39 20 62 20 42 7d  llo d D 9.9 b B}
4660: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
4670: 2d 32 2e 38 32 20 7b 0a 20 20 65 78 65 63 73 71  -2.82 {.  execsq
4680: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78  l {.    SELECT x
4690: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49  ,y,z FROM t2 UNI
46a0: 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20  ON SELECT a,b,c 
46b0: 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f 52 44 45  FROM t3.    ORDE
46c0: 52 20 42 59 20 61 2c 62 2c 63 0a 20 20 7d 0a 7d  R BY a,b,c.  }.}
46d0: 20 7b 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 20   {{} C c {} U u 
46e0: 2d 32 33 20 59 20 79 20 31 20 61 20 61 20 39 2e  -23 Y y 1 a a 9.
46f0: 39 20 62 20 42 20 35 32 30 30 30 30 30 2e 30 20  9 b B 5200000.0 
4700: 58 20 78 20 68 65 6c 6c 6f 20 64 20 44 20 6d 61  X x hello d D ma
4710: 64 20 5a 20 7a 20 61 62 63 20 65 20 65 20 68 61  d Z z abc e e ha
4720: 72 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73 74 20  re m M}.do_test 
4730: 73 65 6c 65 63 74 41 2d 32 2e 38 33 20 7b 0a 20  selectA-2.83 {. 
4740: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
4750: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
4760: 20 74 32 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54   t2 UNION SELECT
4770: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33 0a 20   a,b,c FROM t3. 
4780: 20 20 20 4f 52 44 45 52 20 42 59 20 61 20 44 45     ORDER BY a DE
4790: 53 43 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b 68 61  SC,b,c.  }.} {ha
47a0: 72 65 20 6d 20 4d 20 61 62 63 20 65 20 65 20 6d  re m M abc e e m
47b0: 61 64 20 5a 20 7a 20 68 65 6c 6c 6f 20 64 20 44  ad Z z hello d D
47c0: 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 39   5200000.0 X x 9
47d0: 2e 39 20 62 20 42 20 31 20 61 20 61 20 2d 32 33  .9 b B 1 a a -23
47e0: 20 59 20 79 20 7b 7d 20 43 20 63 20 7b 7d 20 55   Y y {} C c {} U
47f0: 20 75 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65   u}.do_test sele
4800: 63 74 41 2d 32 2e 38 34 20 7b 0a 20 20 65 78 65  ctA-2.84 {.  exe
4810: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
4820: 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20  T x,y,z FROM t2 
4830: 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62  UNION SELECT a,b
4840: 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f  ,c FROM t3.    O
4850: 52 44 45 52 20 42 59 20 61 2c 63 2c 62 0a 20 20  RDER BY a,c,b.  
4860: 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d 20 55  }.} {{} C c {} U
4870: 20 75 20 2d 32 33 20 59 20 79 20 31 20 61 20 61   u -23 Y y 1 a a
4880: 20 39 2e 39 20 62 20 42 20 35 32 30 30 30 30 30   9.9 b B 5200000
4890: 2e 30 20 58 20 78 20 68 65 6c 6c 6f 20 64 20 44  .0 X x hello d D
48a0: 20 6d 61 64 20 5a 20 7a 20 61 62 63 20 65 20 65   mad Z z abc e e
48b0: 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65   hare m M}.do_te
48c0: 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 38 35 20  st selectA-2.85 
48d0: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
48e0: 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46    SELECT x,y,z F
48f0: 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 53 45 4c  ROM t2 UNION SEL
4900: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
4910: 33 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 62  3.    ORDER BY b
4920: 2c 61 2c 63 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43  ,a,c.  }.} {{} C
4930: 20 63 20 7b 7d 20 55 20 75 20 35 32 30 30 30 30   c {} U u 520000
4940: 30 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79 20  0.0 X x -23 Y y 
4950: 6d 61 64 20 5a 20 7a 20 31 20 61 20 61 20 39 2e  mad Z z 1 a a 9.
4960: 39 20 62 20 42 20 68 65 6c 6c 6f 20 64 20 44 20  9 b B hello d D 
4970: 61 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d  abc e e hare m M
4980: 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74  }.do_test select
4990: 41 2d 32 2e 38 36 20 7b 0a 20 20 65 78 65 63 73  A-2.86 {.  execs
49a0: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
49b0: 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e  x,y,z FROM t2 UN
49c0: 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c 63  ION SELECT a,b,c
49d0: 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f 52 44   FROM t3.    ORD
49e0: 45 52 20 42 59 20 79 20 43 4f 4c 4c 41 54 45 20  ER BY y COLLATE 
49f0: 4e 4f 43 41 53 45 2c 78 2c 7a 0a 20 20 7d 0a 7d  NOCASE,x,z.  }.}
4a00: 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20 42 20   {1 a a 9.9 b B 
4a10: 7b 7d 20 43 20 63 20 68 65 6c 6c 6f 20 64 20 44  {} C c hello d D
4a20: 20 61 62 63 20 65 20 65 20 68 61 72 65 20 6d 20   abc e e hare m 
4a30: 4d 20 7b 7d 20 55 20 75 20 35 32 30 30 30 30 30  M {} U u 5200000
4a40: 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79 20 6d  .0 X x -23 Y y m
4a50: 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74 20  ad Z z}.do_test 
4a60: 73 65 6c 65 63 74 41 2d 32 2e 38 37 20 7b 0a 20  selectA-2.87 {. 
4a70: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
4a80: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
4a90: 20 74 32 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54   t2 UNION SELECT
4aa0: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33 0a 20   a,b,c FROM t3. 
4ab0: 20 20 20 4f 52 44 45 52 20 42 59 20 79 20 43 4f     ORDER BY y CO
4ac0: 4c 4c 41 54 45 20 4e 4f 43 41 53 45 20 44 45 53  LLATE NOCASE DES
4ad0: 43 2c 78 2c 7a 0a 20 20 7d 0a 7d 20 7b 6d 61 64  C,x,z.  }.} {mad
4ae0: 20 5a 20 7a 20 2d 32 33 20 59 20 79 20 35 32 30   Z z -23 Y y 520
4af0: 30 30 30 30 2e 30 20 58 20 78 20 7b 7d 20 55 20  0000.0 X x {} U 
4b00: 75 20 68 61 72 65 20 6d 20 4d 20 61 62 63 20 65  u hare m M abc e
4b10: 20 65 20 68 65 6c 6c 6f 20 64 20 44 20 7b 7d 20   e hello d D {} 
4b20: 43 20 63 20 39 2e 39 20 62 20 42 20 31 20 61 20  C c 9.9 b B 1 a 
4b30: 61 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  a}.do_test selec
4b40: 74 41 2d 32 2e 38 38 20 7b 0a 20 20 65 78 65 63  tA-2.88 {.  exec
4b50: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
4b60: 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55   x,y,z FROM t2 U
4b70: 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c  NION SELECT a,b,
4b80: 63 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f 52  c FROM t3.    OR
4b90: 44 45 52 20 42 59 20 63 2c 62 2c 61 0a 20 20 7d  DER BY c,b,a.  }
4ba0: 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20  .} {1 a a 9.9 b 
4bb0: 42 20 7b 7d 20 43 20 63 20 68 65 6c 6c 6f 20 64  B {} C c hello d
4bc0: 20 44 20 61 62 63 20 65 20 65 20 68 61 72 65 20   D abc e e hare 
4bd0: 6d 20 4d 20 7b 7d 20 55 20 75 20 35 32 30 30 30  m M {} U u 52000
4be0: 30 30 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79  00.0 X x -23 Y y
4bf0: 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73   mad Z z}.do_tes
4c00: 74 20 73 65 6c 65 63 74 41 2d 32 2e 38 39 20 7b  t selectA-2.89 {
4c10: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
4c20: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
4c30: 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 53 45 4c 45  OM t2 UNION SELE
4c40: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33  CT a,b,c FROM t3
4c50: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 63 2c  .    ORDER BY c,
4c60: 61 2c 62 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61  a,b.  }.} {1 a a
4c70: 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20 63 20   9.9 b B {} C c 
4c80: 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20  hello d D abc e 
4c90: 65 20 68 61 72 65 20 6d 20 4d 20 7b 7d 20 55 20  e hare m M {} U 
4ca0: 75 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  u 5200000.0 X x 
4cb0: 2d 32 33 20 59 20 79 20 6d 61 64 20 5a 20 7a 7d  -23 Y y mad Z z}
4cc0: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
4cd0: 2d 32 2e 39 30 20 7b 0a 20 20 65 78 65 63 73 71  -2.90 {.  execsq
4ce0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78  l {.    SELECT x
4cf0: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49  ,y,z FROM t2 UNI
4d00: 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20  ON SELECT a,b,c 
4d10: 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f 52 44 45  FROM t3.    ORDE
4d20: 52 20 42 59 20 63 20 44 45 53 43 2c 61 2c 62 0a  R BY c DESC,a,b.
4d30: 20 20 7d 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d    }.} {mad Z z -
4d40: 32 33 20 59 20 79 20 35 32 30 30 30 30 30 2e 30  23 Y y 5200000.0
4d50: 20 58 20 78 20 7b 7d 20 55 20 75 20 68 61 72 65   X x {} U u hare
4d60: 20 6d 20 4d 20 61 62 63 20 65 20 65 20 68 65 6c   m M abc e e hel
4d70: 6c 6f 20 64 20 44 20 7b 7d 20 43 20 63 20 39 2e  lo d D {} C c 9.
4d80: 39 20 62 20 42 20 31 20 61 20 61 7d 0a 64 6f 5f  9 b B 1 a a}.do_
4d90: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 39  test selectA-2.9
4da0: 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  1 {.  execsql {.
4db0: 20 20 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a      SELECT x,y,z
4dc0: 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 53   FROM t2 UNION S
4dd0: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
4de0: 20 74 33 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t3.    ORDER BY
4df0: 20 7a 20 43 4f 4c 4c 41 54 45 20 42 49 4e 41 52   z COLLATE BINAR
4e00: 59 20 44 45 53 43 2c 78 2c 79 0a 20 20 7d 0a 7d  Y DESC,x,y.  }.}
4e10: 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20   {mad Z z -23 Y 
4e20: 79 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  y 5200000.0 X x 
4e30: 7b 7d 20 55 20 75 20 61 62 63 20 65 20 65 20 7b  {} U u abc e e {
4e40: 7d 20 43 20 63 20 31 20 61 20 61 20 68 61 72 65  } C c 1 a a hare
4e50: 20 6d 20 4d 20 68 65 6c 6c 6f 20 64 20 44 20 39   m M hello d D 9
4e60: 2e 39 20 62 20 42 7d 0a 64 6f 5f 74 65 73 74 20  .9 b B}.do_test 
4e70: 73 65 6c 65 63 74 41 2d 32 2e 39 32 20 7b 0a 20  selectA-2.92 {. 
4e80: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
4e90: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
4ea0: 20 74 32 0a 20 20 20 20 49 4e 54 45 52 53 45 43   t2.    INTERSEC
4eb0: 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  T SELECT a,b,c F
4ec0: 52 4f 4d 20 74 33 0a 20 20 20 20 45 58 43 45 50  ROM t3.    EXCEP
4ed0: 54 20 53 45 4c 45 43 54 20 63 2c 62 2c 61 20 46  T SELECT c,b,a F
4ee0: 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e  ROM t1.    UNION
4ef0: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
4f00: 4f 4d 20 74 33 0a 20 20 20 20 49 4e 54 45 52 53  OM t3.    INTERS
4f10: 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63  ECT SELECT a,b,c
4f20: 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 45 58 43   FROM t3.    EXC
4f30: 45 50 54 20 53 45 4c 45 43 54 20 63 2c 62 2c 61  EPT SELECT c,b,a
4f40: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49   FROM t1.    UNI
4f50: 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20  ON SELECT a,b,c 
4f60: 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f 52 44 45  FROM t3.    ORDE
4f70: 52 20 42 59 20 79 20 43 4f 4c 4c 41 54 45 20 4e  R BY y COLLATE N
4f80: 4f 43 41 53 45 20 44 45 53 43 2c 78 2c 7a 0a 20  OCASE DESC,x,z. 
4f90: 20 7d 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d 32   }.} {mad Z z -2
4fa0: 33 20 59 20 79 20 35 32 30 30 30 30 30 2e 30 20  3 Y y 5200000.0 
4fb0: 58 20 78 20 7b 7d 20 55 20 75 20 68 61 72 65 20  X x {} U u hare 
4fc0: 6d 20 4d 20 61 62 63 20 65 20 65 20 68 65 6c 6c  m M abc e e hell
4fd0: 6f 20 64 20 44 20 7b 7d 20 43 20 63 20 39 2e 39  o d D {} C c 9.9
4fe0: 20 62 20 42 20 31 20 61 20 61 7d 0a 64 6f 5f 74   b B 1 a a}.do_t
4ff0: 65 73 74 20 73 65 6c 65 63 74 41 2d 32 2e 39 33  est selectA-2.93
5000: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
5010: 20 20 20 53 45 4c 45 43 54 20 75 70 70 65 72 28     SELECT upper(
5020: 28 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74  (SELECT c FROM t
5030: 31 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 7a  1 UNION SELECT z
5040: 20 46 52 4f 4d 20 74 32 20 4f 52 44 45 52 20 42   FROM t2 ORDER B
5050: 59 20 31 29 29 3b 0a 20 20 7d 0a 7d 20 7b 41 7d  Y 1));.  }.} {A}
5060: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
5070: 2d 32 2e 39 34 20 7b 0a 20 20 65 78 65 63 73 71  -2.94 {.  execsq
5080: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 6c  l {.    SELECT l
5090: 6f 77 65 72 28 28 53 45 4c 45 43 54 20 63 20 46  ower((SELECT c F
50a0: 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 41 4c 4c  ROM t1 UNION ALL
50b0: 20 53 45 4c 45 43 54 20 7a 20 46 52 4f 4d 20 74   SELECT z FROM t
50c0: 32 20 4f 52 44 45 52 20 42 59 20 31 29 29 3b 0a  2 ORDER BY 1));.
50d0: 20 20 7d 0a 7d 20 7b 61 7d 0a 64 6f 5f 74 65 73    }.} {a}.do_tes
50e0: 74 20 73 65 6c 65 63 74 41 2d 32 2e 39 35 20 7b  t selectA-2.95 {
50f0: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
5100: 20 53 45 4c 45 43 54 20 6c 6f 77 65 72 28 28 53   SELECT lower((S
5110: 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20  ELECT c FROM t1 
5120: 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43 54  INTERSECT SELECT
5130: 20 7a 20 46 52 4f 4d 20 74 32 20 4f 52 44 45 52   z FROM t2 ORDER
5140: 20 42 59 20 31 29 29 3b 0a 20 20 7d 0a 7d 20 7b   BY 1));.  }.} {
5150: 7b 7d 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65  {}}.do_test sele
5160: 63 74 41 2d 32 2e 39 36 20 7b 0a 20 20 65 78 65  ctA-2.96 {.  exe
5170: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
5180: 54 20 6c 6f 77 65 72 28 28 53 45 4c 45 43 54 20  T lower((SELECT 
5190: 7a 20 46 52 4f 4d 20 74 32 20 45 58 43 45 50 54  z FROM t2 EXCEPT
51a0: 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74   SELECT c FROM t
51b0: 31 20 4f 52 44 45 52 20 42 59 20 31 29 29 3b 0a  1 ORDER BY 1));.
51c0: 20 20 7d 0a 7d 20 7b 6d 7d 0a 0a 0a 64 6f 5f 74    }.} {m}...do_t
51d0: 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 30 20  est selectA-3.0 
51e0: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
51f0: 20 20 43 52 45 41 54 45 20 55 4e 49 51 55 45 20    CREATE UNIQUE 
5200: 49 4e 44 45 58 20 74 31 61 20 4f 4e 20 74 31 28  INDEX t1a ON t1(
5210: 61 29 3b 0a 20 20 20 20 43 52 45 41 54 45 20 55  a);.    CREATE U
5220: 4e 49 51 55 45 20 49 4e 44 45 58 20 74 31 62 20  NIQUE INDEX t1b 
5230: 4f 4e 20 74 31 28 62 29 3b 0a 20 20 20 20 43 52  ON t1(b);.    CR
5240: 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45  EATE UNIQUE INDE
5250: 58 20 74 31 63 20 4f 4e 20 74 31 28 63 29 3b 0a  X t1c ON t1(c);.
5260: 20 20 20 20 43 52 45 41 54 45 20 55 4e 49 51 55      CREATE UNIQU
5270: 45 20 49 4e 44 45 58 20 74 32 78 20 4f 4e 20 74  E INDEX t2x ON t
5280: 32 28 78 29 3b 0a 20 20 20 20 43 52 45 41 54 45  2(x);.    CREATE
5290: 20 55 4e 49 51 55 45 20 49 4e 44 45 58 20 74 32   UNIQUE INDEX t2
52a0: 79 20 4f 4e 20 74 32 28 79 29 3b 0a 20 20 20 20  y ON t2(y);.    
52b0: 43 52 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e  CREATE UNIQUE IN
52c0: 44 45 58 20 74 32 7a 20 4f 4e 20 74 32 28 7a 29  DEX t2z ON t2(z)
52d0: 3b 0a 20 20 20 20 53 45 4c 45 43 54 20 6e 61 6d  ;.    SELECT nam
52e0: 65 20 46 52 4f 4d 20 73 71 6c 69 74 65 5f 6d 61  e FROM sqlite_ma
52f0: 73 74 65 72 20 57 48 45 52 45 20 74 79 70 65 3d  ster WHERE type=
5300: 27 69 6e 64 65 78 27 0a 20 20 7d 0a 7d 20 7b 74  'index'.  }.} {t
5310: 31 61 20 74 31 62 20 74 31 63 20 74 32 78 20 74  1a t1b t1c t2x t
5320: 32 79 20 74 32 7a 7d 0a 64 6f 5f 74 65 73 74 20  2y t2z}.do_test 
5330: 73 65 6c 65 63 74 41 2d 33 2e 31 20 7b 0a 20 20  selectA-3.1 {.  
5340: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
5350: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
5360: 74 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c  t1 UNION ALL SEL
5370: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
5380: 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 61  2.    ORDER BY a
5390: 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43  ,b,c.  }.} {{} C
53a0: 20 63 20 7b 7d 20 55 20 75 20 2d 32 33 20 59 20   c {} U u -23 Y 
53b0: 79 20 31 20 61 20 61 20 39 2e 39 20 62 20 42 20  y 1 a a 9.9 b B 
53c0: 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 68 65  5200000.0 X x he
53d0: 6c 6c 6f 20 64 20 44 20 6d 61 64 20 5a 20 7a 20  llo d D mad Z z 
53e0: 61 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d  abc e e hare m M
53f0: 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74  }.do_test select
5400: 41 2d 33 2e 31 2e 31 20 7b 20 20 23 20 54 69 63  A-3.1.1 {  # Tic
5410: 6b 65 74 20 23 33 33 31 34 0a 20 20 65 78 65 63  ket #3314.  exec
5420: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
5430: 20 74 31 2e 61 2c 62 2c 74 31 2e 63 20 46 52 4f   t1.a,b,t1.c FRO
5440: 4d 20 74 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53  M t1 UNION ALL S
5450: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
5460: 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t2.    ORDER BY
5470: 20 61 2c 74 31 2e 62 2c 74 31 2e 63 0a 20 20 7d   a,t1.b,t1.c.  }
5480: 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d 20 55 20  .} {{} C c {} U 
5490: 75 20 2d 32 33 20 59 20 79 20 31 20 61 20 61 20  u -23 Y y 1 a a 
54a0: 39 2e 39 20 62 20 42 20 35 32 30 30 30 30 30 2e  9.9 b B 5200000.
54b0: 30 20 58 20 78 20 68 65 6c 6c 6f 20 64 20 44 20  0 X x hello d D 
54c0: 6d 61 64 20 5a 20 7a 20 61 62 63 20 65 20 65 20  mad Z z abc e e 
54d0: 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73  hare m M}.do_tes
54e0: 74 20 73 65 6c 65 63 74 41 2d 33 2e 32 20 7b 0a  t selectA-3.2 {.
54f0: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
5500: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
5510: 4d 20 74 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53  M t1 UNION ALL S
5520: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
5530: 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t2.    ORDER BY
5540: 20 61 20 44 45 53 43 2c 62 2c 63 0a 20 20 7d 0a   a DESC,b,c.  }.
5550: 7d 20 7b 68 61 72 65 20 6d 20 4d 20 61 62 63 20  } {hare m M abc 
5560: 65 20 65 20 6d 61 64 20 5a 20 7a 20 68 65 6c 6c  e e mad Z z hell
5570: 6f 20 64 20 44 20 35 32 30 30 30 30 30 2e 30 20  o d D 5200000.0 
5580: 58 20 78 20 39 2e 39 20 62 20 42 20 31 20 61 20  X x 9.9 b B 1 a 
5590: 61 20 2d 32 33 20 59 20 79 20 7b 7d 20 43 20 63  a -23 Y y {} C c
55a0: 20 7b 7d 20 55 20 75 7d 0a 64 6f 5f 74 65 73 74   {} U u}.do_test
55b0: 20 73 65 6c 65 63 74 41 2d 33 2e 33 20 7b 0a 20   selectA-3.3 {. 
55c0: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
55d0: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
55e0: 20 74 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45   t1 UNION ALL SE
55f0: 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20  LECT x,y,z FROM 
5600: 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t2.    ORDER BY 
5610: 61 2c 63 2c 62 0a 20 20 7d 0a 7d 20 7b 7b 7d 20  a,c,b.  }.} {{} 
5620: 43 20 63 20 7b 7d 20 55 20 75 20 2d 32 33 20 59  C c {} U u -23 Y
5630: 20 79 20 31 20 61 20 61 20 39 2e 39 20 62 20 42   y 1 a a 9.9 b B
5640: 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 68   5200000.0 X x h
5650: 65 6c 6c 6f 20 64 20 44 20 6d 61 64 20 5a 20 7a  ello d D mad Z z
5660: 20 61 62 63 20 65 20 65 20 68 61 72 65 20 6d 20   abc e e hare m 
5670: 4d 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  M}.do_test selec
5680: 74 41 2d 33 2e 34 20 7b 0a 20 20 65 78 65 63 73  tA-3.4 {.  execs
5690: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
56a0: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 55 4e  a,b,c FROM t1 UN
56b0: 49 4f 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 78  ION ALL SELECT x
56c0: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20  ,y,z FROM t2.   
56d0: 20 4f 52 44 45 52 20 42 59 20 62 2c 61 2c 63 0a   ORDER BY b,a,c.
56e0: 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d    }.} {{} C c {}
56f0: 20 55 20 75 20 35 32 30 30 30 30 30 2e 30 20 58   U u 5200000.0 X
5700: 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64 20 5a   x -23 Y y mad Z
5710: 20 7a 20 31 20 61 20 61 20 39 2e 39 20 62 20 42   z 1 a a 9.9 b B
5720: 20 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65   hello d D abc e
5730: 20 65 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f   e hare m M}.do_
5740: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 35  test selectA-3.5
5750: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
5760: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
5770: 46 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 41 4c  FROM t1 UNION AL
5780: 4c 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46  L SELECT x,y,z F
5790: 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52  ROM t2.    ORDER
57a0: 20 42 59 20 62 20 43 4f 4c 4c 41 54 45 20 4e 4f   BY b COLLATE NO
57b0: 43 41 53 45 2c 61 2c 63 0a 20 20 7d 0a 7d 20 7b  CASE,a,c.  }.} {
57c0: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d  1 a a 9.9 b B {}
57d0: 20 43 20 63 20 68 65 6c 6c 6f 20 64 20 44 20 61   C c hello d D a
57e0: 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 20  bc e e hare m M 
57f0: 7b 7d 20 55 20 75 20 35 32 30 30 30 30 30 2e 30  {} U u 5200000.0
5800: 20 58 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64   X x -23 Y y mad
5810: 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74 20 73 65   Z z}.do_test se
5820: 6c 65 63 74 41 2d 33 2e 36 20 7b 0a 20 20 65 78  lectA-3.6 {.  ex
5830: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
5840: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
5850: 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45 43   UNION ALL SELEC
5860: 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a  T x,y,z FROM t2.
5870: 20 20 20 20 4f 52 44 45 52 20 42 59 20 62 20 43      ORDER BY b C
5880: 4f 4c 4c 41 54 45 20 4e 4f 43 41 53 45 20 44 45  OLLATE NOCASE DE
5890: 53 43 2c 61 2c 63 0a 20 20 7d 0a 7d 20 7b 6d 61  SC,a,c.  }.} {ma
58a0: 64 20 5a 20 7a 20 2d 32 33 20 59 20 79 20 35 32  d Z z -23 Y y 52
58b0: 30 30 30 30 30 2e 30 20 58 20 78 20 7b 7d 20 55  00000.0 X x {} U
58c0: 20 75 20 68 61 72 65 20 6d 20 4d 20 61 62 63 20   u hare m M abc 
58d0: 65 20 65 20 68 65 6c 6c 6f 20 64 20 44 20 7b 7d  e e hello d D {}
58e0: 20 43 20 63 20 39 2e 39 20 62 20 42 20 31 20 61   C c 9.9 b B 1 a
58f0: 20 61 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65   a}.do_test sele
5900: 63 74 41 2d 33 2e 37 20 7b 0a 20 20 65 78 65 63  ctA-3.7 {.  exec
5910: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
5920: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 55   a,b,c FROM t1 U
5930: 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20  NION ALL SELECT 
5940: 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20  x,y,z FROM t2.  
5950: 20 20 4f 52 44 45 52 20 42 59 20 63 2c 62 2c 61    ORDER BY c,b,a
5960: 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e  .  }.} {1 a a 9.
5970: 39 20 62 20 42 20 7b 7d 20 43 20 63 20 68 65 6c  9 b B {} C c hel
5980: 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65 20 68  lo d D abc e e h
5990: 61 72 65 20 6d 20 4d 20 7b 7d 20 55 20 75 20 35  are m M {} U u 5
59a0: 32 30 30 30 30 30 2e 30 20 58 20 78 20 2d 32 33  200000.0 X x -23
59b0: 20 59 20 79 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f   Y y mad Z z}.do
59c0: 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e  _test selectA-3.
59d0: 38 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  8 {.  execsql {.
59e0: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63      SELECT a,b,c
59f0: 20 46 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 41   FROM t1 UNION A
5a00: 4c 4c 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20  LL SELECT x,y,z 
5a10: 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45  FROM t2.    ORDE
5a20: 52 20 42 59 20 63 2c 61 2c 62 0a 20 20 7d 0a 7d  R BY c,a,b.  }.}
5a30: 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20 42 20   {1 a a 9.9 b B 
5a40: 7b 7d 20 43 20 63 20 68 65 6c 6c 6f 20 64 20 44  {} C c hello d D
5a50: 20 61 62 63 20 65 20 65 20 68 61 72 65 20 6d 20   abc e e hare m 
5a60: 4d 20 7b 7d 20 55 20 75 20 35 32 30 30 30 30 30  M {} U u 5200000
5a70: 2e 30 20 58 20 78 20 2d 32 33 20 59 20 79 20 6d  .0 X x -23 Y y m
5a80: 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74 20  ad Z z}.do_test 
5a90: 73 65 6c 65 63 74 41 2d 33 2e 39 20 7b 0a 20 20  selectA-3.9 {.  
5aa0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
5ab0: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
5ac0: 74 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c  t1 UNION ALL SEL
5ad0: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
5ae0: 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 63  2.    ORDER BY c
5af0: 20 44 45 53 43 2c 61 2c 62 0a 20 20 7d 0a 7d 20   DESC,a,b.  }.} 
5b00: 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20 79  {mad Z z -23 Y y
5b10: 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 7b   5200000.0 X x {
5b20: 7d 20 55 20 75 20 68 61 72 65 20 6d 20 4d 20 61  } U u hare m M a
5b30: 62 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20 44  bc e e hello d D
5b40: 20 7b 7d 20 43 20 63 20 39 2e 39 20 62 20 42 20   {} C c 9.9 b B 
5b50: 31 20 61 20 61 7d 0a 64 6f 5f 74 65 73 74 20 73  1 a a}.do_test s
5b60: 65 6c 65 63 74 41 2d 33 2e 31 30 20 7b 0a 20 20  electA-3.10 {.  
5b70: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
5b80: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
5b90: 74 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c  t1 UNION ALL SEL
5ba0: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
5bb0: 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 63  2.    ORDER BY c
5bc0: 20 43 4f 4c 4c 41 54 45 20 42 49 4e 41 52 59 20   COLLATE BINARY 
5bd0: 44 45 53 43 2c 61 2c 62 0a 20 20 7d 0a 7d 20 7b  DESC,a,b.  }.} {
5be0: 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20 79 20  mad Z z -23 Y y 
5bf0: 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 7b 7d  5200000.0 X x {}
5c00: 20 55 20 75 20 61 62 63 20 65 20 65 20 7b 7d 20   U u abc e e {} 
5c10: 43 20 63 20 31 20 61 20 61 20 68 61 72 65 20 6d  C c 1 a a hare m
5c20: 20 4d 20 68 65 6c 6c 6f 20 64 20 44 20 39 2e 39   M hello d D 9.9
5c30: 20 62 20 42 7d 0a 64 6f 5f 74 65 73 74 20 73 65   b B}.do_test se
5c40: 6c 65 63 74 41 2d 33 2e 31 31 20 7b 0a 20 20 65  lectA-3.11 {.  e
5c50: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
5c60: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
5c70: 32 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45  2 UNION ALL SELE
5c80: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
5c90: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 61 2c  .    ORDER BY a,
5ca0: 62 2c 63 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20  b,c.  }.} {{} C 
5cb0: 63 20 7b 7d 20 55 20 75 20 2d 32 33 20 59 20 79  c {} U u -23 Y y
5cc0: 20 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 35   1 a a 9.9 b B 5
5cd0: 32 30 30 30 30 30 2e 30 20 58 20 78 20 68 65 6c  200000.0 X x hel
5ce0: 6c 6f 20 64 20 44 20 6d 61 64 20 5a 20 7a 20 61  lo d D mad Z z a
5cf0: 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 7d  bc e e hare m M}
5d00: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
5d10: 2d 33 2e 31 32 20 7b 0a 20 20 65 78 65 63 73 71  -3.12 {.  execsq
5d20: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78  l {.    SELECT x
5d30: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49  ,y,z FROM t2 UNI
5d40: 4f 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 61 2c  ON ALL SELECT a,
5d50: 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  b,c FROM t1.    
5d60: 4f 52 44 45 52 20 42 59 20 61 20 44 45 53 43 2c  ORDER BY a DESC,
5d70: 62 2c 63 0a 20 20 7d 0a 7d 20 7b 68 61 72 65 20  b,c.  }.} {hare 
5d80: 6d 20 4d 20 61 62 63 20 65 20 65 20 6d 61 64 20  m M abc e e mad 
5d90: 5a 20 7a 20 68 65 6c 6c 6f 20 64 20 44 20 35 32  Z z hello d D 52
5da0: 30 30 30 30 30 2e 30 20 58 20 78 20 39 2e 39 20  00000.0 X x 9.9 
5db0: 62 20 42 20 31 20 61 20 61 20 2d 32 33 20 59 20  b B 1 a a -23 Y 
5dc0: 79 20 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 7d  y {} C c {} U u}
5dd0: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
5de0: 2d 33 2e 31 33 20 7b 0a 20 20 65 78 65 63 73 71  -3.13 {.  execsq
5df0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78  l {.    SELECT x
5e00: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49  ,y,z FROM t2 UNI
5e10: 4f 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 61 2c  ON ALL SELECT a,
5e20: 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  b,c FROM t1.    
5e30: 4f 52 44 45 52 20 42 59 20 61 2c 63 2c 62 0a 20  ORDER BY a,c,b. 
5e40: 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d 20   }.} {{} C c {} 
5e50: 55 20 75 20 2d 32 33 20 59 20 79 20 31 20 61 20  U u -23 Y y 1 a 
5e60: 61 20 39 2e 39 20 62 20 42 20 35 32 30 30 30 30  a 9.9 b B 520000
5e70: 30 2e 30 20 58 20 78 20 68 65 6c 6c 6f 20 64 20  0.0 X x hello d 
5e80: 44 20 6d 61 64 20 5a 20 7a 20 61 62 63 20 65 20  D mad Z z abc e 
5e90: 65 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f 74  e hare m M}.do_t
5ea0: 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 31 34  est selectA-3.14
5eb0: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
5ec0: 20 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20     SELECT x,y,z 
5ed0: 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 41 4c  FROM t2 UNION AL
5ee0: 4c 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  L SELECT a,b,c F
5ef0: 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52  ROM t1.    ORDER
5f00: 20 42 59 20 62 2c 61 2c 63 0a 20 20 7d 0a 7d 20   BY b,a,c.  }.} 
5f10: 7b 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 20 35  {{} C c {} U u 5
5f20: 32 30 30 30 30 30 2e 30 20 58 20 78 20 2d 32 33  200000.0 X x -23
5f30: 20 59 20 79 20 6d 61 64 20 5a 20 7a 20 31 20 61   Y y mad Z z 1 a
5f40: 20 61 20 39 2e 39 20 62 20 42 20 68 65 6c 6c 6f   a 9.9 b B hello
5f50: 20 64 20 44 20 61 62 63 20 65 20 65 20 68 61 72   d D abc e e har
5f60: 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73  e m M}.do_test s
5f70: 65 6c 65 63 74 41 2d 33 2e 31 35 20 7b 0a 20 20  electA-3.15 {.  
5f80: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
5f90: 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20  LECT x,y,z FROM 
5fa0: 74 32 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c  t2 UNION ALL SEL
5fb0: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
5fc0: 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 62  1.    ORDER BY b
5fd0: 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53 45 2c   COLLATE NOCASE,
5fe0: 61 2c 63 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61  a,c.  }.} {1 a a
5ff0: 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20 63 20   9.9 b B {} C c 
6000: 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20  hello d D abc e 
6010: 65 20 68 61 72 65 20 6d 20 4d 20 7b 7d 20 55 20  e hare m M {} U 
6020: 75 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  u 5200000.0 X x 
6030: 2d 32 33 20 59 20 79 20 6d 61 64 20 5a 20 7a 7d  -23 Y y mad Z z}
6040: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
6050: 2d 33 2e 31 36 20 7b 0a 20 20 65 78 65 63 73 71  -3.16 {.  execsq
6060: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78  l {.    SELECT x
6070: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49  ,y,z FROM t2 UNI
6080: 4f 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 61 2c  ON ALL SELECT a,
6090: 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  b,c FROM t1.    
60a0: 4f 52 44 45 52 20 42 59 20 62 20 43 4f 4c 4c 41  ORDER BY b COLLA
60b0: 54 45 20 4e 4f 43 41 53 45 20 44 45 53 43 2c 61  TE NOCASE DESC,a
60c0: 2c 63 0a 20 20 7d 0a 7d 20 7b 6d 61 64 20 5a 20  ,c.  }.} {mad Z 
60d0: 7a 20 2d 32 33 20 59 20 79 20 35 32 30 30 30 30  z -23 Y y 520000
60e0: 30 2e 30 20 58 20 78 20 7b 7d 20 55 20 75 20 68  0.0 X x {} U u h
60f0: 61 72 65 20 6d 20 4d 20 61 62 63 20 65 20 65 20  are m M abc e e 
6100: 68 65 6c 6c 6f 20 64 20 44 20 7b 7d 20 43 20 63  hello d D {} C c
6110: 20 39 2e 39 20 62 20 42 20 31 20 61 20 61 7d 0a   9.9 b B 1 a a}.
6120: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
6130: 33 2e 31 37 20 7b 0a 20 20 65 78 65 63 73 71 6c  3.17 {.  execsql
6140: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78 2c   {.    SELECT x,
6150: 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f  y,z FROM t2 UNIO
6160: 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 61 2c 62  N ALL SELECT a,b
6170: 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f  ,c FROM t1.    O
6180: 52 44 45 52 20 42 59 20 63 2c 62 2c 61 0a 20 20  RDER BY c,b,a.  
6190: 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20 62  }.} {1 a a 9.9 b
61a0: 20 42 20 7b 7d 20 43 20 63 20 68 65 6c 6c 6f 20   B {} C c hello 
61b0: 64 20 44 20 61 62 63 20 65 20 65 20 68 61 72 65  d D abc e e hare
61c0: 20 6d 20 4d 20 7b 7d 20 55 20 75 20 35 32 30 30   m M {} U u 5200
61d0: 30 30 30 2e 30 20 58 20 78 20 2d 32 33 20 59 20  000.0 X x -23 Y 
61e0: 79 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74 65  y mad Z z}.do_te
61f0: 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 31 38 20  st selectA-3.18 
6200: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
6210: 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46    SELECT x,y,z F
6220: 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 41 4c 4c  ROM t2 UNION ALL
6230: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
6240: 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20  OM t1.    ORDER 
6250: 42 59 20 63 2c 61 2c 62 0a 20 20 7d 0a 7d 20 7b  BY c,a,b.  }.} {
6260: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d  1 a a 9.9 b B {}
6270: 20 43 20 63 20 68 65 6c 6c 6f 20 64 20 44 20 61   C c hello d D a
6280: 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 20  bc e e hare m M 
6290: 7b 7d 20 55 20 75 20 35 32 30 30 30 30 30 2e 30  {} U u 5200000.0
62a0: 20 58 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64   X x -23 Y y mad
62b0: 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74 20 73 65   Z z}.do_test se
62c0: 6c 65 63 74 41 2d 33 2e 31 39 20 7b 0a 20 20 65  lectA-3.19 {.  e
62d0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
62e0: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
62f0: 32 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45  2 UNION ALL SELE
6300: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
6310: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 63 20  .    ORDER BY c 
6320: 44 45 53 43 2c 61 2c 62 0a 20 20 7d 0a 7d 20 7b  DESC,a,b.  }.} {
6330: 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20 79 20  mad Z z -23 Y y 
6340: 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 7b 7d  5200000.0 X x {}
6350: 20 55 20 75 20 68 61 72 65 20 6d 20 4d 20 61 62   U u hare m M ab
6360: 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20 44 20  c e e hello d D 
6370: 7b 7d 20 43 20 63 20 39 2e 39 20 62 20 42 20 31  {} C c 9.9 b B 1
6380: 20 61 20 61 7d 0a 64 6f 5f 74 65 73 74 20 73 65   a a}.do_test se
6390: 6c 65 63 74 41 2d 33 2e 32 30 20 7b 0a 20 20 65  lectA-3.20 {.  e
63a0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
63b0: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
63c0: 32 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45  2 UNION ALL SELE
63d0: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
63e0: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 63 20  .    ORDER BY c 
63f0: 43 4f 4c 4c 41 54 45 20 42 49 4e 41 52 59 20 44  COLLATE BINARY D
6400: 45 53 43 2c 61 2c 62 0a 20 20 7d 0a 7d 20 7b 6d  ESC,a,b.  }.} {m
6410: 61 64 20 5a 20 7a 20 2d 32 33 20 59 20 79 20 35  ad Z z -23 Y y 5
6420: 32 30 30 30 30 30 2e 30 20 58 20 78 20 7b 7d 20  200000.0 X x {} 
6430: 55 20 75 20 61 62 63 20 65 20 65 20 7b 7d 20 43  U u abc e e {} C
6440: 20 63 20 31 20 61 20 61 20 68 61 72 65 20 6d 20   c 1 a a hare m 
6450: 4d 20 68 65 6c 6c 6f 20 64 20 44 20 39 2e 39 20  M hello d D 9.9 
6460: 62 20 42 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  b B}.do_test sel
6470: 65 63 74 41 2d 33 2e 32 31 20 7b 0a 20 20 65 78  ectA-3.21 {.  ex
6480: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
6490: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
64a0: 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 78 2c   UNION SELECT x,
64b0: 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20 20  y,z FROM t2.    
64c0: 4f 52 44 45 52 20 42 59 20 61 2c 62 2c 63 0a 20  ORDER BY a,b,c. 
64d0: 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d 20   }.} {{} C c {} 
64e0: 55 20 75 20 2d 32 33 20 59 20 79 20 31 20 61 20  U u -23 Y y 1 a 
64f0: 61 20 39 2e 39 20 62 20 42 20 35 32 30 30 30 30  a 9.9 b B 520000
6500: 30 2e 30 20 58 20 78 20 68 65 6c 6c 6f 20 64 20  0.0 X x hello d 
6510: 44 20 6d 61 64 20 5a 20 7a 20 61 62 63 20 65 20  D mad Z z abc e 
6520: 65 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f 74  e hare m M}.do_t
6530: 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 32 32  est selectA-3.22
6540: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
6550: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
6560: 46 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 53 45  FROM t1 UNION SE
6570: 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20  LECT x,y,z FROM 
6580: 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t2.    ORDER BY 
6590: 61 20 44 45 53 43 2c 62 2c 63 0a 20 20 7d 0a 7d  a DESC,b,c.  }.}
65a0: 20 7b 68 61 72 65 20 6d 20 4d 20 61 62 63 20 65   {hare m M abc e
65b0: 20 65 20 6d 61 64 20 5a 20 7a 20 68 65 6c 6c 6f   e mad Z z hello
65c0: 20 64 20 44 20 35 32 30 30 30 30 30 2e 30 20 58   d D 5200000.0 X
65d0: 20 78 20 39 2e 39 20 62 20 42 20 31 20 61 20 61   x 9.9 b B 1 a a
65e0: 20 2d 32 33 20 59 20 79 20 7b 7d 20 43 20 63 20   -23 Y y {} C c 
65f0: 7b 7d 20 55 20 75 7d 0a 64 6f 5f 74 65 73 74 20  {} U u}.do_test 
6600: 73 65 6c 65 63 74 41 2d 33 2e 32 33 20 7b 0a 20  selectA-3.23 {. 
6610: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
6620: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
6630: 20 74 31 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54   t1 UNION SELECT
6640: 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20   x,y,z FROM t2. 
6650: 20 20 20 4f 52 44 45 52 20 42 59 20 61 2c 63 2c     ORDER BY a,c,
6660: 62 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20  b.  }.} {{} C c 
6670: 7b 7d 20 55 20 75 20 2d 32 33 20 59 20 79 20 31  {} U u -23 Y y 1
6680: 20 61 20 61 20 39 2e 39 20 62 20 42 20 35 32 30   a a 9.9 b B 520
6690: 30 30 30 30 2e 30 20 58 20 78 20 68 65 6c 6c 6f  0000.0 X x hello
66a0: 20 64 20 44 20 6d 61 64 20 5a 20 7a 20 61 62 63   d D mad Z z abc
66b0: 20 65 20 65 20 68 61 72 65 20 6d 20 4d 7d 0a 64   e e hare m M}.d
66c0: 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33  o_test selectA-3
66d0: 2e 32 34 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  .24 {.  execsql 
66e0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62  {.    SELECT a,b
66f0: 2c 63 20 46 52 4f 4d 20 74 31 20 55 4e 49 4f 4e  ,c FROM t1 UNION
6700: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
6710: 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20  OM t2.    ORDER 
6720: 42 59 20 62 2c 61 2c 63 0a 20 20 7d 0a 7d 20 7b  BY b,a,c.  }.} {
6730: 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 20 35 32  {} C c {} U u 52
6740: 30 30 30 30 30 2e 30 20 58 20 78 20 2d 32 33 20  00000.0 X x -23 
6750: 59 20 79 20 6d 61 64 20 5a 20 7a 20 31 20 61 20  Y y mad Z z 1 a 
6760: 61 20 39 2e 39 20 62 20 42 20 68 65 6c 6c 6f 20  a 9.9 b B hello 
6770: 64 20 44 20 61 62 63 20 65 20 65 20 68 61 72 65  d D abc e e hare
6780: 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73 65   m M}.do_test se
6790: 6c 65 63 74 41 2d 33 2e 32 35 20 7b 0a 20 20 65  lectA-3.25 {.  e
67a0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
67b0: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
67c0: 31 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 78  1 UNION SELECT x
67d0: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20  ,y,z FROM t2.   
67e0: 20 4f 52 44 45 52 20 42 59 20 62 20 43 4f 4c 4c   ORDER BY b COLL
67f0: 41 54 45 20 4e 4f 43 41 53 45 2c 61 2c 63 0a 20  ATE NOCASE,a,c. 
6800: 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20   }.} {1 a a 9.9 
6810: 62 20 42 20 7b 7d 20 43 20 63 20 68 65 6c 6c 6f  b B {} C c hello
6820: 20 64 20 44 20 61 62 63 20 65 20 65 20 68 61 72   d D abc e e har
6830: 65 20 6d 20 4d 20 7b 7d 20 55 20 75 20 35 32 30  e m M {} U u 520
6840: 30 30 30 30 2e 30 20 58 20 78 20 2d 32 33 20 59  0000.0 X x -23 Y
6850: 20 79 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74   y mad Z z}.do_t
6860: 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 32 36  est selectA-3.26
6870: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
6880: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
6890: 46 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20 53 45  FROM t1 UNION SE
68a0: 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20  LECT x,y,z FROM 
68b0: 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t2.    ORDER BY 
68c0: 62 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53 45  b COLLATE NOCASE
68d0: 20 44 45 53 43 2c 61 2c 63 0a 20 20 7d 0a 7d 20   DESC,a,c.  }.} 
68e0: 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20 79  {mad Z z -23 Y y
68f0: 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 7b   5200000.0 X x {
6900: 7d 20 55 20 75 20 68 61 72 65 20 6d 20 4d 20 61  } U u hare m M a
6910: 62 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20 44  bc e e hello d D
6920: 20 7b 7d 20 43 20 63 20 39 2e 39 20 62 20 42 20   {} C c 9.9 b B 
6930: 31 20 61 20 61 7d 0a 64 6f 5f 74 65 73 74 20 73  1 a a}.do_test s
6940: 65 6c 65 63 74 41 2d 33 2e 32 37 20 7b 0a 20 20  electA-3.27 {.  
6950: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
6960: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
6970: 74 31 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20  t1 UNION SELECT 
6980: 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20  x,y,z FROM t2.  
6990: 20 20 4f 52 44 45 52 20 42 59 20 63 2c 62 2c 61    ORDER BY c,b,a
69a0: 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e  .  }.} {1 a a 9.
69b0: 39 20 62 20 42 20 7b 7d 20 43 20 63 20 68 65 6c  9 b B {} C c hel
69c0: 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65 20 68  lo d D abc e e h
69d0: 61 72 65 20 6d 20 4d 20 7b 7d 20 55 20 75 20 35  are m M {} U u 5
69e0: 32 30 30 30 30 30 2e 30 20 58 20 78 20 2d 32 33  200000.0 X x -23
69f0: 20 59 20 79 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f   Y y mad Z z}.do
6a00: 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e  _test selectA-3.
6a10: 32 38 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  28 {.  execsql {
6a20: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c  .    SELECT a,b,
6a30: 63 20 46 52 4f 4d 20 74 31 20 55 4e 49 4f 4e 20  c FROM t1 UNION 
6a40: 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f  SELECT x,y,z FRO
6a50: 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42  M t2.    ORDER B
6a60: 59 20 63 2c 61 2c 62 0a 20 20 7d 0a 7d 20 7b 31  Y c,a,b.  }.} {1
6a70: 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d 20   a a 9.9 b B {} 
6a80: 43 20 63 20 68 65 6c 6c 6f 20 64 20 44 20 61 62  C c hello d D ab
6a90: 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 20 7b  c e e hare m M {
6aa0: 7d 20 55 20 75 20 35 32 30 30 30 30 30 2e 30 20  } U u 5200000.0 
6ab0: 58 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64 20  X x -23 Y y mad 
6ac0: 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  Z z}.do_test sel
6ad0: 65 63 74 41 2d 33 2e 32 39 20 7b 0a 20 20 65 78  ectA-3.29 {.  ex
6ae0: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
6af0: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
6b00: 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 78 2c   UNION SELECT x,
6b10: 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20 20  y,z FROM t2.    
6b20: 4f 52 44 45 52 20 42 59 20 63 20 44 45 53 43 2c  ORDER BY c DESC,
6b30: 61 2c 62 0a 20 20 7d 0a 7d 20 7b 6d 61 64 20 5a  a,b.  }.} {mad Z
6b40: 20 7a 20 2d 32 33 20 59 20 79 20 35 32 30 30 30   z -23 Y y 52000
6b50: 30 30 2e 30 20 58 20 78 20 7b 7d 20 55 20 75 20  00.0 X x {} U u 
6b60: 68 61 72 65 20 6d 20 4d 20 61 62 63 20 65 20 65  hare m M abc e e
6b70: 20 68 65 6c 6c 6f 20 64 20 44 20 7b 7d 20 43 20   hello d D {} C 
6b80: 63 20 39 2e 39 20 62 20 42 20 31 20 61 20 61 7d  c 9.9 b B 1 a a}
6b90: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
6ba0: 2d 33 2e 33 30 20 7b 0a 20 20 65 78 65 63 73 71  -3.30 {.  execsq
6bb0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
6bc0: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 55 4e 49  ,b,c FROM t1 UNI
6bd0: 4f 4e 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20  ON SELECT x,y,z 
6be0: 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45  FROM t2.    ORDE
6bf0: 52 20 42 59 20 63 20 43 4f 4c 4c 41 54 45 20 42  R BY c COLLATE B
6c00: 49 4e 41 52 59 20 44 45 53 43 2c 61 2c 62 0a 20  INARY DESC,a,b. 
6c10: 20 7d 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d 32   }.} {mad Z z -2
6c20: 33 20 59 20 79 20 35 32 30 30 30 30 30 2e 30 20  3 Y y 5200000.0 
6c30: 58 20 78 20 7b 7d 20 55 20 75 20 61 62 63 20 65  X x {} U u abc e
6c40: 20 65 20 7b 7d 20 43 20 63 20 31 20 61 20 61 20   e {} C c 1 a a 
6c50: 68 61 72 65 20 6d 20 4d 20 68 65 6c 6c 6f 20 64  hare m M hello d
6c60: 20 44 20 39 2e 39 20 62 20 42 7d 0a 64 6f 5f 74   D 9.9 b B}.do_t
6c70: 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 33 31  est selectA-3.31
6c80: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
6c90: 20 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20     SELECT x,y,z 
6ca0: 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 53 45  FROM t2 UNION SE
6cb0: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
6cc0: 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t1.    ORDER BY 
6cd0: 61 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b 7b 7d 20  a,b,c.  }.} {{} 
6ce0: 43 20 63 20 7b 7d 20 55 20 75 20 2d 32 33 20 59  C c {} U u -23 Y
6cf0: 20 79 20 31 20 61 20 61 20 39 2e 39 20 62 20 42   y 1 a a 9.9 b B
6d00: 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 68   5200000.0 X x h
6d10: 65 6c 6c 6f 20 64 20 44 20 6d 61 64 20 5a 20 7a  ello d D mad Z z
6d20: 20 61 62 63 20 65 20 65 20 68 61 72 65 20 6d 20   abc e e hare m 
6d30: 4d 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  M}.do_test selec
6d40: 74 41 2d 33 2e 33 32 20 7b 0a 20 20 65 78 65 63  tA-3.32 {.  exec
6d50: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
6d60: 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55   x,y,z FROM t2 U
6d70: 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c  NION SELECT a,b,
6d80: 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52  c FROM t1.    OR
6d90: 44 45 52 20 42 59 20 61 20 44 45 53 43 2c 62 2c  DER BY a DESC,b,
6da0: 63 0a 20 20 7d 0a 7d 20 7b 68 61 72 65 20 6d 20  c.  }.} {hare m 
6db0: 4d 20 61 62 63 20 65 20 65 20 6d 61 64 20 5a 20  M abc e e mad Z 
6dc0: 7a 20 68 65 6c 6c 6f 20 64 20 44 20 35 32 30 30  z hello d D 5200
6dd0: 30 30 30 2e 30 20 58 20 78 20 39 2e 39 20 62 20  000.0 X x 9.9 b 
6de0: 42 20 31 20 61 20 61 20 2d 32 33 20 59 20 79 20  B 1 a a -23 Y y 
6df0: 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 7d 0a 64  {} C c {} U u}.d
6e00: 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33  o_test selectA-3
6e10: 2e 33 33 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  .33 {.  execsql 
6e20: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78 2c 79  {.    SELECT x,y
6e30: 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e  ,z FROM t2 UNION
6e40: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
6e50: 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20  OM t1.    ORDER 
6e60: 42 59 20 61 2c 63 2c 62 0a 20 20 7d 0a 7d 20 7b  BY a,c,b.  }.} {
6e70: 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 20 2d 32  {} C c {} U u -2
6e80: 33 20 59 20 79 20 31 20 61 20 61 20 39 2e 39 20  3 Y y 1 a a 9.9 
6e90: 62 20 42 20 35 32 30 30 30 30 30 2e 30 20 58 20  b B 5200000.0 X 
6ea0: 78 20 68 65 6c 6c 6f 20 64 20 44 20 6d 61 64 20  x hello d D mad 
6eb0: 5a 20 7a 20 61 62 63 20 65 20 65 20 68 61 72 65  Z z abc e e hare
6ec0: 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73 65   m M}.do_test se
6ed0: 6c 65 63 74 41 2d 33 2e 33 34 20 7b 0a 20 20 65  lectA-3.34 {.  e
6ee0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
6ef0: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
6f00: 32 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61  2 UNION SELECT a
6f10: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20 20  ,b,c FROM t1.   
6f20: 20 4f 52 44 45 52 20 42 59 20 62 2c 61 2c 63 0a   ORDER BY b,a,c.
6f30: 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d    }.} {{} C c {}
6f40: 20 55 20 75 20 35 32 30 30 30 30 30 2e 30 20 58   U u 5200000.0 X
6f50: 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64 20 5a   x -23 Y y mad Z
6f60: 20 7a 20 31 20 61 20 61 20 39 2e 39 20 62 20 42   z 1 a a 9.9 b B
6f70: 20 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65   hello d D abc e
6f80: 20 65 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f   e hare m M}.do_
6f90: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 33  test selectA-3.3
6fa0: 35 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  5 {.  execsql {.
6fb0: 20 20 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a      SELECT x,y,z
6fc0: 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 53   FROM t2 UNION S
6fd0: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
6fe0: 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t1.    ORDER BY
6ff0: 20 79 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53   y COLLATE NOCAS
7000: 45 2c 78 2c 7a 0a 20 20 7d 0a 7d 20 7b 31 20 61  E,x,z.  }.} {1 a
7010: 20 61 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20   a 9.9 b B {} C 
7020: 63 20 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20  c hello d D abc 
7030: 65 20 65 20 68 61 72 65 20 6d 20 4d 20 7b 7d 20  e e hare m M {} 
7040: 55 20 75 20 35 32 30 30 30 30 30 2e 30 20 58 20  U u 5200000.0 X 
7050: 78 20 2d 32 33 20 59 20 79 20 6d 61 64 20 5a 20  x -23 Y y mad Z 
7060: 7a 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  z}.do_test selec
7070: 74 41 2d 33 2e 33 36 20 7b 0a 20 20 65 78 65 63  tA-3.36 {.  exec
7080: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
7090: 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55   x,y,z FROM t2 U
70a0: 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c  NION SELECT a,b,
70b0: 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52  c FROM t1.    OR
70c0: 44 45 52 20 42 59 20 79 20 43 4f 4c 4c 41 54 45  DER BY y COLLATE
70d0: 20 4e 4f 43 41 53 45 20 44 45 53 43 2c 78 2c 7a   NOCASE DESC,x,z
70e0: 0a 20 20 7d 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20  .  }.} {mad Z z 
70f0: 2d 32 33 20 59 20 79 20 35 32 30 30 30 30 30 2e  -23 Y y 5200000.
7100: 30 20 58 20 78 20 7b 7d 20 55 20 75 20 68 61 72  0 X x {} U u har
7110: 65 20 6d 20 4d 20 61 62 63 20 65 20 65 20 68 65  e m M abc e e he
7120: 6c 6c 6f 20 64 20 44 20 7b 7d 20 43 20 63 20 39  llo d D {} C c 9
7130: 2e 39 20 62 20 42 20 31 20 61 20 61 7d 0a 64 6f  .9 b B 1 a a}.do
7140: 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e  _test selectA-3.
7150: 33 37 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  37 {.  execsql {
7160: 0a 20 20 20 20 53 45 4c 45 43 54 20 78 2c 79 2c  .    SELECT x,y,
7170: 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20  z FROM t2 UNION 
7180: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
7190: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
71a0: 59 20 63 2c 62 2c 61 0a 20 20 7d 0a 7d 20 7b 31  Y c,b,a.  }.} {1
71b0: 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d 20   a a 9.9 b B {} 
71c0: 43 20 63 20 68 65 6c 6c 6f 20 64 20 44 20 61 62  C c hello d D ab
71d0: 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 20 7b  c e e hare m M {
71e0: 7d 20 55 20 75 20 35 32 30 30 30 30 30 2e 30 20  } U u 5200000.0 
71f0: 58 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64 20  X x -23 Y y mad 
7200: 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  Z z}.do_test sel
7210: 65 63 74 41 2d 33 2e 33 38 20 7b 0a 20 20 65 78  ectA-3.38 {.  ex
7220: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
7230: 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32  CT x,y,z FROM t2
7240: 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c   UNION SELECT a,
7250: 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  b,c FROM t1.    
7260: 4f 52 44 45 52 20 42 59 20 63 2c 61 2c 62 0a 20  ORDER BY c,a,b. 
7270: 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20   }.} {1 a a 9.9 
7280: 62 20 42 20 7b 7d 20 43 20 63 20 68 65 6c 6c 6f  b B {} C c hello
7290: 20 64 20 44 20 61 62 63 20 65 20 65 20 68 61 72   d D abc e e har
72a0: 65 20 6d 20 4d 20 7b 7d 20 55 20 75 20 35 32 30  e m M {} U u 520
72b0: 30 30 30 30 2e 30 20 58 20 78 20 2d 32 33 20 59  0000.0 X x -23 Y
72c0: 20 79 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f 74   y mad Z z}.do_t
72d0: 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 33 39  est selectA-3.39
72e0: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
72f0: 20 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20     SELECT x,y,z 
7300: 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 53 45  FROM t2 UNION SE
7310: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
7320: 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t1.    ORDER BY 
7330: 63 20 44 45 53 43 2c 61 2c 62 0a 20 20 7d 0a 7d  c DESC,a,b.  }.}
7340: 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20   {mad Z z -23 Y 
7350: 79 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  y 5200000.0 X x 
7360: 7b 7d 20 55 20 75 20 68 61 72 65 20 6d 20 4d 20  {} U u hare m M 
7370: 61 62 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20  abc e e hello d 
7380: 44 20 7b 7d 20 43 20 63 20 39 2e 39 20 62 20 42  D {} C c 9.9 b B
7390: 20 31 20 61 20 61 7d 0a 64 6f 5f 74 65 73 74 20   1 a a}.do_test 
73a0: 73 65 6c 65 63 74 41 2d 33 2e 34 30 20 7b 0a 20  selectA-3.40 {. 
73b0: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
73c0: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
73d0: 20 74 32 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54   t2 UNION SELECT
73e0: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20   a,b,c FROM t1. 
73f0: 20 20 20 4f 52 44 45 52 20 42 59 20 7a 20 43 4f     ORDER BY z CO
7400: 4c 4c 41 54 45 20 42 49 4e 41 52 59 20 44 45 53  LLATE BINARY DES
7410: 43 2c 78 2c 79 0a 20 20 7d 0a 7d 20 7b 6d 61 64  C,x,y.  }.} {mad
7420: 20 5a 20 7a 20 2d 32 33 20 59 20 79 20 35 32 30   Z z -23 Y y 520
7430: 30 30 30 30 2e 30 20 58 20 78 20 7b 7d 20 55 20  0000.0 X x {} U 
7440: 75 20 61 62 63 20 65 20 65 20 7b 7d 20 43 20 63  u abc e e {} C c
7450: 20 31 20 61 20 61 20 68 61 72 65 20 6d 20 4d 20   1 a a hare m M 
7460: 68 65 6c 6c 6f 20 64 20 44 20 39 2e 39 20 62 20  hello d D 9.9 b 
7470: 42 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  B}.do_test selec
7480: 74 41 2d 33 2e 34 31 20 7b 0a 20 20 65 78 65 63  tA-3.41 {.  exec
7490: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
74a0: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 45   a,b,c FROM t1 E
74b0: 58 43 45 50 54 20 53 45 4c 45 43 54 20 61 2c 62  XCEPT SELECT a,b
74c0: 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45  ,c FROM t1 WHERE
74d0: 20 62 3e 3d 27 64 27 0a 20 20 20 20 4f 52 44 45   b>='d'.    ORDE
74e0: 52 20 42 59 20 61 2c 62 2c 63 0a 20 20 7d 0a 7d  R BY a,b,c.  }.}
74f0: 20 7b 7b 7d 20 43 20 63 20 31 20 61 20 61 20 39   {{} C c 1 a a 9
7500: 2e 39 20 62 20 42 7d 0a 64 6f 5f 74 65 73 74 20  .9 b B}.do_test 
7510: 73 65 6c 65 63 74 41 2d 33 2e 34 32 20 7b 0a 20  selectA-3.42 {. 
7520: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
7530: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
7540: 20 74 31 20 49 4e 54 45 52 53 45 43 54 20 53 45   t1 INTERSECT SE
7550: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
7560: 74 31 20 57 48 45 52 45 20 62 3e 3d 27 64 27 0a  t1 WHERE b>='d'.
7570: 20 20 20 20 4f 52 44 45 52 20 42 59 20 61 2c 62      ORDER BY a,b
7580: 2c 63 0a 20 20 7d 0a 7d 20 7b 68 65 6c 6c 6f 20  ,c.  }.} {hello 
7590: 64 20 44 20 61 62 63 20 65 20 65 7d 0a 64 6f 5f  d D abc e e}.do_
75a0: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 34  test selectA-3.4
75b0: 33 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  3 {.  execsql {.
75c0: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63      SELECT a,b,c
75d0: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62   FROM t1 WHERE b
75e0: 3e 3d 27 64 27 20 49 4e 54 45 52 53 45 43 54 20  >='d' INTERSECT 
75f0: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
7600: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
7610: 59 20 61 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b 68  Y a,b,c.  }.} {h
7620: 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65  ello d D abc e e
7630: 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74  }.do_test select
7640: 41 2d 33 2e 34 34 20 7b 0a 20 20 65 78 65 63 73  A-3.44 {.  execs
7650: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
7660: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 45 58  a,b,c FROM t1 EX
7670: 43 45 50 54 20 53 45 4c 45 43 54 20 61 2c 62 2c  CEPT SELECT a,b,
7680: 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20  c FROM t1 WHERE 
7690: 62 3c 27 64 27 0a 20 20 20 20 4f 52 44 45 52 20  b<'d'.    ORDER 
76a0: 42 59 20 61 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b  BY a,b,c.  }.} {
76b0: 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20  hello d D abc e 
76c0: 65 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  e}.do_test selec
76d0: 74 41 2d 33 2e 34 35 20 7b 0a 20 20 65 78 65 63  tA-3.45 {.  exec
76e0: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
76f0: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 49   a,b,c FROM t1 I
7700: 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43 54 20  NTERSECT SELECT 
7710: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48  a,b,c FROM t1 WH
7720: 45 52 45 20 62 3c 27 64 27 0a 20 20 20 20 4f 52  ERE b<'d'.    OR
7730: 44 45 52 20 42 59 20 61 2c 62 2c 63 0a 20 20 7d  DER BY a,b,c.  }
7740: 0a 7d 20 7b 7b 7d 20 43 20 63 20 31 20 61 20 61  .} {{} C c 1 a a
7750: 20 39 2e 39 20 62 20 42 7d 0a 64 6f 5f 74 65 73   9.9 b B}.do_tes
7760: 74 20 73 65 6c 65 63 74 41 2d 33 2e 34 36 20 7b  t selectA-3.46 {
7770: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
7780: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
7790: 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3c 27 64  OM t1 WHERE b<'d
77a0: 27 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45  ' INTERSECT SELE
77b0: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
77c0: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 61 2c  .    ORDER BY a,
77d0: 62 2c 63 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20  b,c.  }.} {{} C 
77e0: 63 20 31 20 61 20 61 20 39 2e 39 20 62 20 42 7d  c 1 a a 9.9 b B}
77f0: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
7800: 2d 33 2e 34 37 20 7b 0a 20 20 65 78 65 63 73 71  -3.47 {.  execsq
7810: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
7820: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 45 58 43  ,b,c FROM t1 EXC
7830: 45 50 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63  EPT SELECT a,b,c
7840: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62   FROM t1 WHERE b
7850: 3e 3d 27 64 27 0a 20 20 20 20 4f 52 44 45 52 20  >='d'.    ORDER 
7860: 42 59 20 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20  BY a DESC.  }.} 
7870: 7b 39 2e 39 20 62 20 42 20 31 20 61 20 61 20 7b  {9.9 b B 1 a a {
7880: 7d 20 43 20 63 7d 0a 64 6f 5f 74 65 73 74 20 73  } C c}.do_test s
7890: 65 6c 65 63 74 41 2d 33 2e 34 38 20 7b 0a 20 20  electA-3.48 {.  
78a0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
78b0: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
78c0: 74 31 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c  t1 INTERSECT SEL
78d0: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
78e0: 31 20 57 48 45 52 45 20 62 3e 3d 27 64 27 0a 20  1 WHERE b>='d'. 
78f0: 20 20 20 4f 52 44 45 52 20 42 59 20 61 20 44 45     ORDER BY a DE
7900: 53 43 0a 20 20 7d 0a 7d 20 7b 61 62 63 20 65 20  SC.  }.} {abc e 
7910: 65 20 68 65 6c 6c 6f 20 64 20 44 7d 0a 64 6f 5f  e hello d D}.do_
7920: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 34  test selectA-3.4
7930: 39 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  9 {.  execsql {.
7940: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63      SELECT a,b,c
7950: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62   FROM t1 WHERE b
7960: 3e 3d 27 64 27 20 49 4e 54 45 52 53 45 43 54 20  >='d' INTERSECT 
7970: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
7980: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
7990: 59 20 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  Y a DESC.  }.} {
79a0: 61 62 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20  abc e e hello d 
79b0: 44 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  D}.do_test selec
79c0: 74 41 2d 33 2e 35 30 20 7b 0a 20 20 65 78 65 63  tA-3.50 {.  exec
79d0: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
79e0: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 45   a,b,c FROM t1 E
79f0: 58 43 45 50 54 20 53 45 4c 45 43 54 20 61 2c 62  XCEPT SELECT a,b
7a00: 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45  ,c FROM t1 WHERE
7a10: 20 62 3c 27 64 27 0a 20 20 20 20 4f 52 44 45 52   b<'d'.    ORDER
7a20: 20 42 59 20 61 20 44 45 53 43 0a 20 20 7d 0a 7d   BY a DESC.  }.}
7a30: 20 7b 61 62 63 20 65 20 65 20 68 65 6c 6c 6f 20   {abc e e hello 
7a40: 64 20 44 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  d D}.do_test sel
7a50: 65 63 74 41 2d 33 2e 35 31 20 7b 0a 20 20 65 78  ectA-3.51 {.  ex
7a60: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
7a70: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
7a80: 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43   INTERSECT SELEC
7a90: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20  T a,b,c FROM t1 
7aa0: 57 48 45 52 45 20 62 3c 27 64 27 0a 20 20 20 20  WHERE b<'d'.    
7ab0: 4f 52 44 45 52 20 42 59 20 61 20 44 45 53 43 0a  ORDER BY a DESC.
7ac0: 20 20 7d 0a 7d 20 7b 39 2e 39 20 62 20 42 20 31    }.} {9.9 b B 1
7ad0: 20 61 20 61 20 7b 7d 20 43 20 63 7d 0a 64 6f 5f   a a {} C c}.do_
7ae0: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 35  test selectA-3.5
7af0: 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  2 {.  execsql {.
7b00: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63      SELECT a,b,c
7b10: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62   FROM t1 WHERE b
7b20: 3c 27 64 27 20 49 4e 54 45 52 53 45 43 54 20 53  <'d' INTERSECT S
7b30: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
7b40: 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t1.    ORDER BY
7b50: 20 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 39   a DESC.  }.} {9
7b60: 2e 39 20 62 20 42 20 31 20 61 20 61 20 7b 7d 20  .9 b B 1 a a {} 
7b70: 43 20 63 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  C c}.do_test sel
7b80: 65 63 74 41 2d 33 2e 35 33 20 7b 0a 20 20 65 78  ectA-3.53 {.  ex
7b90: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
7ba0: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
7bb0: 20 45 58 43 45 50 54 20 53 45 4c 45 43 54 20 61   EXCEPT SELECT a
7bc0: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45  ,b,c FROM t1 WHE
7bd0: 52 45 20 62 3e 3d 27 64 27 0a 20 20 20 20 4f 52  RE b>='d'.    OR
7be0: 44 45 52 20 42 59 20 62 2c 20 61 20 44 45 53 43  DER BY b, a DESC
7bf0: 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 31  .  }.} {{} C c 1
7c00: 20 61 20 61 20 39 2e 39 20 62 20 42 7d 0a 64 6f   a a 9.9 b B}.do
7c10: 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e  _test selectA-3.
7c20: 35 34 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  54 {.  execsql {
7c30: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c  .    SELECT a,b,
7c40: 63 20 46 52 4f 4d 20 74 31 20 49 4e 54 45 52 53  c FROM t1 INTERS
7c50: 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63  ECT SELECT a,b,c
7c60: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62   FROM t1 WHERE b
7c70: 3e 3d 27 64 27 0a 20 20 20 20 4f 52 44 45 52 20  >='d'.    ORDER 
7c80: 42 59 20 62 0a 20 20 7d 0a 7d 20 7b 68 65 6c 6c  BY b.  }.} {hell
7c90: 6f 20 64 20 44 20 61 62 63 20 65 20 65 7d 0a 64  o d D abc e e}.d
7ca0: 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33  o_test selectA-3
7cb0: 2e 35 35 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  .55 {.  execsql 
7cc0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62  {.    SELECT a,b
7cd0: 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45  ,c FROM t1 WHERE
7ce0: 20 62 3e 3d 27 64 27 20 49 4e 54 45 52 53 45 43   b>='d' INTERSEC
7cf0: 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  T SELECT a,b,c F
7d00: 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52  ROM t1.    ORDER
7d10: 20 42 59 20 62 20 44 45 53 43 2c 20 63 0a 20 20   BY b DESC, c.  
7d20: 7d 0a 7d 20 7b 61 62 63 20 65 20 65 20 68 65 6c  }.} {abc e e hel
7d30: 6c 6f 20 64 20 44 7d 0a 64 6f 5f 74 65 73 74 20  lo d D}.do_test 
7d40: 73 65 6c 65 63 74 41 2d 33 2e 35 36 20 7b 0a 20  selectA-3.56 {. 
7d50: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
7d60: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
7d70: 20 74 31 20 45 58 43 45 50 54 20 53 45 4c 45 43   t1 EXCEPT SELEC
7d80: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20  T a,b,c FROM t1 
7d90: 57 48 45 52 45 20 62 3c 27 64 27 0a 20 20 20 20  WHERE b<'d'.    
7da0: 4f 52 44 45 52 20 42 59 20 62 2c 20 63 20 44 45  ORDER BY b, c DE
7db0: 53 43 2c 20 61 0a 20 20 7d 0a 7d 20 7b 68 65 6c  SC, a.  }.} {hel
7dc0: 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65 7d 0a  lo d D abc e e}.
7dd0: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
7de0: 33 2e 35 37 20 7b 0a 20 20 65 78 65 63 73 71 6c  3.57 {.  execsql
7df0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
7e00: 62 2c 63 20 46 52 4f 4d 20 74 31 20 49 4e 54 45  b,c FROM t1 INTE
7e10: 52 53 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62  RSECT SELECT a,b
7e20: 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45  ,c FROM t1 WHERE
7e30: 20 62 3c 27 64 27 0a 20 20 20 20 4f 52 44 45 52   b<'d'.    ORDER
7e40: 20 42 59 20 62 20 43 4f 4c 4c 41 54 45 20 4e 4f   BY b COLLATE NO
7e50: 43 41 53 45 0a 20 20 7d 0a 7d 20 7b 31 20 61 20  CASE.  }.} {1 a 
7e60: 61 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20 63  a 9.9 b B {} C c
7e70: 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74  }.do_test select
7e80: 41 2d 33 2e 35 38 20 7b 0a 20 20 65 78 65 63 73  A-3.58 {.  execs
7e90: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
7ea0: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48  a,b,c FROM t1 WH
7eb0: 45 52 45 20 62 3c 27 64 27 20 49 4e 54 45 52 53  ERE b<'d' INTERS
7ec0: 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63  ECT SELECT a,b,c
7ed0: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44   FROM t1.    ORD
7ee0: 45 52 20 42 59 20 62 0a 20 20 7d 0a 7d 20 7b 7b  ER BY b.  }.} {{
7ef0: 7d 20 43 20 63 20 31 20 61 20 61 20 39 2e 39 20  } C c 1 a a 9.9 
7f00: 62 20 42 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c  b B}.do_test sel
7f10: 65 63 74 41 2d 33 2e 35 39 20 7b 0a 20 20 65 78  ectA-3.59 {.  ex
7f20: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
7f30: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
7f40: 20 45 58 43 45 50 54 20 53 45 4c 45 43 54 20 61   EXCEPT SELECT a
7f50: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45  ,b,c FROM t1 WHE
7f60: 52 45 20 62 3e 3d 27 64 27 0a 20 20 20 20 4f 52  RE b>='d'.    OR
7f70: 44 45 52 20 42 59 20 63 2c 20 61 20 44 45 53 43  DER BY c, a DESC
7f80: 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e  .  }.} {1 a a 9.
7f90: 39 20 62 20 42 20 7b 7d 20 43 20 63 7d 0a 64 6f  9 b B {} C c}.do
7fa0: 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e  _test selectA-3.
7fb0: 36 30 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  60 {.  execsql {
7fc0: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c  .    SELECT a,b,
7fd0: 63 20 46 52 4f 4d 20 74 31 20 49 4e 54 45 52 53  c FROM t1 INTERS
7fe0: 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63  ECT SELECT a,b,c
7ff0: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62   FROM t1 WHERE b
8000: 3e 3d 27 64 27 0a 20 20 20 20 4f 52 44 45 52 20  >='d'.    ORDER 
8010: 42 59 20 63 0a 20 20 7d 0a 7d 20 7b 68 65 6c 6c  BY c.  }.} {hell
8020: 6f 20 64 20 44 20 61 62 63 20 65 20 65 7d 0a 64  o d D abc e e}.d
8030: 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33  o_test selectA-3
8040: 2e 36 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  .61 {.  execsql 
8050: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62  {.    SELECT a,b
8060: 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45  ,c FROM t1 WHERE
8070: 20 62 3e 3d 27 64 27 20 49 4e 54 45 52 53 45 43   b>='d' INTERSEC
8080: 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  T SELECT a,b,c F
8090: 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52  ROM t1.    ORDER
80a0: 20 42 59 20 63 20 43 4f 4c 4c 41 54 45 20 42 49   BY c COLLATE BI
80b0: 4e 41 52 59 2c 20 62 20 44 45 53 43 2c 20 63 2c  NARY, b DESC, c,
80c0: 20 61 2c 20 62 2c 20 63 2c 20 61 2c 20 62 2c 20   a, b, c, a, b, 
80d0: 63 0a 20 20 7d 0a 7d 20 7b 68 65 6c 6c 6f 20 64  c.  }.} {hello d
80e0: 20 44 20 61 62 63 20 65 20 65 7d 0a 64 6f 5f 74   D abc e e}.do_t
80f0: 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 36 32  est selectA-3.62
8100: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
8110: 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20     SELECT a,b,c 
8120: 46 52 4f 4d 20 74 31 20 45 58 43 45 50 54 20 53  FROM t1 EXCEPT S
8130: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
8140: 20 74 31 20 57 48 45 52 45 20 62 3c 27 64 27 0a   t1 WHERE b<'d'.
8150: 20 20 20 20 4f 52 44 45 52 20 42 59 20 63 20 44      ORDER BY c D
8160: 45 53 43 2c 20 61 0a 20 20 7d 0a 7d 20 7b 61 62  ESC, a.  }.} {ab
8170: 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20 44 7d  c e e hello d D}
8180: 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41  .do_test selectA
8190: 2d 33 2e 36 33 20 7b 0a 20 20 65 78 65 63 73 71  -3.63 {.  execsq
81a0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
81b0: 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 49 4e 54  ,b,c FROM t1 INT
81c0: 45 52 53 45 43 54 20 53 45 4c 45 43 54 20 61 2c  ERSECT SELECT a,
81d0: 62 2c 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52  b,c FROM t1 WHER
81e0: 45 20 62 3c 27 64 27 0a 20 20 20 20 4f 52 44 45  E b<'d'.    ORDE
81f0: 52 20 42 59 20 63 20 43 4f 4c 4c 41 54 45 20 4e  R BY c COLLATE N
8200: 4f 43 41 53 45 0a 20 20 7d 0a 7d 20 7b 31 20 61  OCASE.  }.} {1 a
8210: 20 61 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20   a 9.9 b B {} C 
8220: 63 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  c}.do_test selec
8230: 74 41 2d 33 2e 36 34 20 7b 0a 20 20 65 78 65 63  tA-3.64 {.  exec
8240: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
8250: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57   a,b,c FROM t1 W
8260: 48 45 52 45 20 62 3c 27 64 27 20 49 4e 54 45 52  HERE b<'d' INTER
8270: 53 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c  SECT SELECT a,b,
8280: 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52  c FROM t1.    OR
8290: 44 45 52 20 42 59 20 63 0a 20 20 7d 0a 7d 20 7b  DER BY c.  }.} {
82a0: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d  1 a a 9.9 b B {}
82b0: 20 43 20 63 7d 0a 64 6f 5f 74 65 73 74 20 73 65   C c}.do_test se
82c0: 6c 65 63 74 41 2d 33 2e 36 35 20 7b 0a 20 20 65  lectA-3.65 {.  e
82d0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
82e0: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
82f0: 33 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45  3 INTERSECT SELE
8300: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31  CT a,b,c FROM t1
8310: 20 57 48 45 52 45 20 62 3c 27 64 27 0a 20 20 20   WHERE b<'d'.   
8320: 20 4f 52 44 45 52 20 42 59 20 63 20 43 4f 4c 4c   ORDER BY c COLL
8330: 41 54 45 20 4e 4f 43 41 53 45 0a 20 20 7d 0a 7d  ATE NOCASE.  }.}
8340: 20 7b 31 20 61 20 61 20 39 2e 39 20 62 20 42 20   {1 a a 9.9 b B 
8350: 7b 7d 20 43 20 63 7d 0a 64 6f 5f 74 65 73 74 20  {} C c}.do_test 
8360: 73 65 6c 65 63 74 41 2d 33 2e 36 36 20 7b 0a 20  selectA-3.66 {. 
8370: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
8380: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
8390: 20 74 31 20 57 48 45 52 45 20 62 3c 27 64 27 20   t1 WHERE b<'d' 
83a0: 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43 54  INTERSECT SELECT
83b0: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33 0a 20   a,b,c FROM t3. 
83c0: 20 20 20 4f 52 44 45 52 20 42 59 20 63 0a 20 20     ORDER BY c.  
83d0: 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39 20 62  }.} {1 a a 9.9 b
83e0: 20 42 20 7b 7d 20 43 20 63 7d 0a 64 6f 5f 74 65   B {} C c}.do_te
83f0: 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 36 37 20  st selectA-3.67 
8400: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
8410: 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46    SELECT a,b,c F
8420: 52 4f 4d 20 74 31 20 45 58 43 45 50 54 20 53 45  ROM t1 EXCEPT SE
8430: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
8440: 74 33 20 57 48 45 52 45 20 62 3c 27 64 27 0a 20  t3 WHERE b<'d'. 
8450: 20 20 20 4f 52 44 45 52 20 42 59 20 63 20 44 45     ORDER BY c DE
8460: 53 43 2c 20 61 0a 20 20 7d 0a 7d 20 7b 61 62 63  SC, a.  }.} {abc
8470: 20 65 20 65 20 68 65 6c 6c 6f 20 64 20 44 7d 0a   e e hello d D}.
8480: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
8490: 33 2e 36 38 20 7b 0a 20 20 65 78 65 63 73 71 6c  3.68 {.  execsql
84a0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
84b0: 62 2c 63 20 46 52 4f 4d 20 74 31 20 45 58 43 45  b,c FROM t1 EXCE
84c0: 50 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20  PT SELECT a,b,c 
84d0: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3c  FROM t1 WHERE b<
84e0: 27 64 27 0a 20 20 20 20 49 4e 54 45 52 53 45 43  'd'.    INTERSEC
84f0: 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  T SELECT a,b,c F
8500: 52 4f 4d 20 74 33 0a 20 20 20 20 45 58 43 45 50  ROM t3.    EXCEP
8510: 54 20 53 45 4c 45 43 54 20 62 2c 63 2c 61 20 46  T SELECT b,c,a F
8520: 52 4f 4d 20 74 33 0a 20 20 20 20 4f 52 44 45 52  ROM t3.    ORDER
8530: 20 42 59 20 63 20 44 45 53 43 2c 20 61 0a 20 20   BY c DESC, a.  
8540: 7d 0a 7d 20 7b 61 62 63 20 65 20 65 20 68 65 6c  }.} {abc e e hel
8550: 6c 6f 20 64 20 44 7d 0a 64 6f 5f 74 65 73 74 20  lo d D}.do_test 
8560: 73 65 6c 65 63 74 41 2d 33 2e 36 39 20 7b 0a 20  selectA-3.69 {. 
8570: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
8580: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
8590: 20 74 31 20 49 4e 54 45 52 53 45 43 54 20 53 45   t1 INTERSECT SE
85a0: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
85b0: 74 31 20 57 48 45 52 45 20 62 3c 27 64 27 0a 20  t1 WHERE b<'d'. 
85c0: 20 20 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c     INTERSECT SEL
85d0: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
85e0: 33 0a 20 20 20 20 45 58 43 45 50 54 20 53 45 4c  3.    EXCEPT SEL
85f0: 45 43 54 20 62 2c 63 2c 61 20 46 52 4f 4d 20 74  ECT b,c,a FROM t
8600: 33 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 63  3.    ORDER BY c
8610: 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53 45 0a   COLLATE NOCASE.
8620: 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39    }.} {1 a a 9.9
8630: 20 62 20 42 20 7b 7d 20 43 20 63 7d 0a 64 6f 5f   b B {} C c}.do_
8640: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 37  test selectA-3.7
8650: 30 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  0 {.  execsql {.
8660: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63      SELECT a,b,c
8670: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62   FROM t1 WHERE b
8680: 3c 27 64 27 20 49 4e 54 45 52 53 45 43 54 20 53  <'d' INTERSECT S
8690: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
86a0: 20 74 31 0a 20 20 20 20 49 4e 54 45 52 53 45 43   t1.    INTERSEC
86b0: 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  T SELECT a,b,c F
86c0: 52 4f 4d 20 74 33 0a 20 20 20 20 45 58 43 45 50  ROM t3.    EXCEP
86d0: 54 20 53 45 4c 45 43 54 20 62 2c 63 2c 61 20 46  T SELECT b,c,a F
86e0: 52 4f 4d 20 74 33 0a 20 20 20 20 4f 52 44 45 52  ROM t3.    ORDER
86f0: 20 42 59 20 63 0a 20 20 7d 0a 7d 20 7b 31 20 61   BY c.  }.} {1 a
8700: 20 61 20 39 2e 39 20 62 20 42 20 7b 7d 20 43 20   a 9.9 b B {} C 
8710: 63 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63  c}.do_test selec
8720: 74 41 2d 33 2e 37 31 20 7b 0a 20 20 65 78 65 63  tA-3.71 {.  exec
8730: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
8740: 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 20 57   a,b,c FROM t1 W
8750: 48 45 52 45 20 62 3c 27 64 27 0a 20 20 20 20 49  HERE b<'d'.    I
8760: 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43 54 20  NTERSECT SELECT 
8770: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 31 0a 20 20  a,b,c FROM t1.  
8780: 20 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45    INTERSECT SELE
8790: 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33  CT a,b,c FROM t3
87a0: 0a 20 20 20 20 45 58 43 45 50 54 20 53 45 4c 45  .    EXCEPT SELE
87b0: 43 54 20 62 2c 63 2c 61 20 46 52 4f 4d 20 74 33  CT b,c,a FROM t3
87c0: 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54 20 53  .    INTERSECT S
87d0: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
87e0: 20 74 31 0a 20 20 20 20 45 58 43 45 50 54 20 53   t1.    EXCEPT S
87f0: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
8800: 20 74 32 0a 20 20 20 20 49 4e 54 45 52 53 45 43   t2.    INTERSEC
8810: 54 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  T SELECT a,b,c F
8820: 52 4f 4d 20 74 33 0a 20 20 20 20 45 58 43 45 50  ROM t3.    EXCEP
8830: 54 20 53 45 4c 45 43 54 20 79 2c 78 2c 7a 20 46  T SELECT y,x,z F
8840: 52 4f 4d 20 74 32 0a 20 20 20 20 49 4e 54 45 52  ROM t2.    INTER
8850: 53 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62 2c  SECT SELECT a,b,
8860: 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 45 58  c FROM t1.    EX
8870: 43 45 50 54 20 53 45 4c 45 43 54 20 63 2c 62 2c  CEPT SELECT c,b,
8880: 61 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f 52  a FROM t3.    OR
8890: 44 45 52 20 42 59 20 63 0a 20 20 7d 0a 7d 20 7b  DER BY c.  }.} {
88a0: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d  1 a a 9.9 b B {}
88b0: 20 43 20 63 7d 0a 64 6f 5f 74 65 73 74 20 73 65   C c}.do_test se
88c0: 6c 65 63 74 41 2d 33 2e 37 32 20 7b 0a 20 20 65  lectA-3.72 {.  e
88d0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
88e0: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
88f0: 33 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 78  3 UNION SELECT x
8900: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20  ,y,z FROM t2.   
8910: 20 4f 52 44 45 52 20 42 59 20 61 2c 62 2c 63 0a   ORDER BY a,b,c.
8920: 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b 7d    }.} {{} C c {}
8930: 20 55 20 75 20 2d 32 33 20 59 20 79 20 31 20 61   U u -23 Y y 1 a
8940: 20 61 20 39 2e 39 20 62 20 42 20 35 32 30 30 30   a 9.9 b B 52000
8950: 30 30 2e 30 20 58 20 78 20 68 65 6c 6c 6f 20 64  00.0 X x hello d
8960: 20 44 20 6d 61 64 20 5a 20 7a 20 61 62 63 20 65   D mad Z z abc e
8970: 20 65 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f 5f   e hare m M}.do_
8980: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 37  test selectA-3.7
8990: 33 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  3 {.  execsql {.
89a0: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63      SELECT a,b,c
89b0: 20 46 52 4f 4d 20 74 33 20 55 4e 49 4f 4e 20 53   FROM t3 UNION S
89c0: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
89d0: 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t2.    ORDER BY
89e0: 20 61 20 44 45 53 43 2c 62 2c 63 0a 20 20 7d 0a   a DESC,b,c.  }.
89f0: 7d 20 7b 68 61 72 65 20 6d 20 4d 20 61 62 63 20  } {hare m M abc 
8a00: 65 20 65 20 6d 61 64 20 5a 20 7a 20 68 65 6c 6c  e e mad Z z hell
8a10: 6f 20 64 20 44 20 35 32 30 30 30 30 30 2e 30 20  o d D 5200000.0 
8a20: 58 20 78 20 39 2e 39 20 62 20 42 20 31 20 61 20  X x 9.9 b B 1 a 
8a30: 61 20 2d 32 33 20 59 20 79 20 7b 7d 20 43 20 63  a -23 Y y {} C c
8a40: 20 7b 7d 20 55 20 75 7d 0a 64 6f 5f 74 65 73 74   {} U u}.do_test
8a50: 20 73 65 6c 65 63 74 41 2d 33 2e 37 34 20 7b 0a   selectA-3.74 {.
8a60: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
8a70: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
8a80: 4d 20 74 33 20 55 4e 49 4f 4e 20 53 45 4c 45 43  M t3 UNION SELEC
8a90: 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a  T x,y,z FROM t2.
8aa0: 20 20 20 20 4f 52 44 45 52 20 42 59 20 61 2c 63      ORDER BY a,c
8ab0: 2c 62 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63  ,b.  }.} {{} C c
8ac0: 20 7b 7d 20 55 20 75 20 2d 32 33 20 59 20 79 20   {} U u -23 Y y 
8ad0: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 35 32  1 a a 9.9 b B 52
8ae0: 30 30 30 30 30 2e 30 20 58 20 78 20 68 65 6c 6c  00000.0 X x hell
8af0: 6f 20 64 20 44 20 6d 61 64 20 5a 20 7a 20 61 62  o d D mad Z z ab
8b00: 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 7d 0a  c e e hare m M}.
8b10: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
8b20: 33 2e 37 35 20 7b 0a 20 20 65 78 65 63 73 71 6c  3.75 {.  execsql
8b30: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
8b40: 62 2c 63 20 46 52 4f 4d 20 74 33 20 55 4e 49 4f  b,c FROM t3 UNIO
8b50: 4e 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46  N SELECT x,y,z F
8b60: 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52  ROM t2.    ORDER
8b70: 20 42 59 20 62 2c 61 2c 63 0a 20 20 7d 0a 7d 20   BY b,a,c.  }.} 
8b80: 7b 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 20 35  {{} C c {} U u 5
8b90: 32 30 30 30 30 30 2e 30 20 58 20 78 20 2d 32 33  200000.0 X x -23
8ba0: 20 59 20 79 20 6d 61 64 20 5a 20 7a 20 31 20 61   Y y mad Z z 1 a
8bb0: 20 61 20 39 2e 39 20 62 20 42 20 68 65 6c 6c 6f   a 9.9 b B hello
8bc0: 20 64 20 44 20 61 62 63 20 65 20 65 20 68 61 72   d D abc e e har
8bd0: 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73  e m M}.do_test s
8be0: 65 6c 65 63 74 41 2d 33 2e 37 36 20 7b 0a 20 20  electA-3.76 {.  
8bf0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
8c00: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
8c10: 74 33 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20  t3 UNION SELECT 
8c20: 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20  x,y,z FROM t2.  
8c30: 20 20 4f 52 44 45 52 20 42 59 20 62 20 43 4f 4c    ORDER BY b COL
8c40: 4c 41 54 45 20 4e 4f 43 41 53 45 2c 61 2c 63 0a  LATE NOCASE,a,c.
8c50: 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39    }.} {1 a a 9.9
8c60: 20 62 20 42 20 7b 7d 20 43 20 63 20 68 65 6c 6c   b B {} C c hell
8c70: 6f 20 64 20 44 20 61 62 63 20 65 20 65 20 68 61  o d D abc e e ha
8c80: 72 65 20 6d 20 4d 20 7b 7d 20 55 20 75 20 35 32  re m M {} U u 52
8c90: 30 30 30 30 30 2e 30 20 58 20 78 20 2d 32 33 20  00000.0 X x -23 
8ca0: 59 20 79 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f  Y y mad Z z}.do_
8cb0: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 37  test selectA-3.7
8cc0: 37 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  7 {.  execsql {.
8cd0: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62 2c 63      SELECT a,b,c
8ce0: 20 46 52 4f 4d 20 74 33 20 55 4e 49 4f 4e 20 53   FROM t3 UNION S
8cf0: 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d  ELECT x,y,z FROM
8d00: 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t2.    ORDER BY
8d10: 20 62 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53   b COLLATE NOCAS
8d20: 45 20 44 45 53 43 2c 61 2c 63 0a 20 20 7d 0a 7d  E DESC,a,c.  }.}
8d30: 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20   {mad Z z -23 Y 
8d40: 79 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  y 5200000.0 X x 
8d50: 7b 7d 20 55 20 75 20 68 61 72 65 20 6d 20 4d 20  {} U u hare m M 
8d60: 61 62 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20  abc e e hello d 
8d70: 44 20 7b 7d 20 43 20 63 20 39 2e 39 20 62 20 42  D {} C c 9.9 b B
8d80: 20 31 20 61 20 61 7d 0a 64 6f 5f 74 65 73 74 20   1 a a}.do_test 
8d90: 73 65 6c 65 63 74 41 2d 33 2e 37 38 20 7b 0a 20  selectA-3.78 {. 
8da0: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
8db0: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
8dc0: 20 74 33 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54   t3 UNION SELECT
8dd0: 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20   x,y,z FROM t2. 
8de0: 20 20 20 4f 52 44 45 52 20 42 59 20 63 2c 62 2c     ORDER BY c,b,
8df0: 61 0a 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39  a.  }.} {1 a a 9
8e00: 2e 39 20 62 20 42 20 7b 7d 20 43 20 63 20 68 65  .9 b B {} C c he
8e10: 6c 6c 6f 20 64 20 44 20 61 62 63 20 65 20 65 20  llo d D abc e e 
8e20: 68 61 72 65 20 6d 20 4d 20 7b 7d 20 55 20 75 20  hare m M {} U u 
8e30: 35 32 30 30 30 30 30 2e 30 20 58 20 78 20 2d 32  5200000.0 X x -2
8e40: 33 20 59 20 79 20 6d 61 64 20 5a 20 7a 7d 0a 64  3 Y y mad Z z}.d
8e50: 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33  o_test selectA-3
8e60: 2e 37 39 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  .79 {.  execsql 
8e70: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 62  {.    SELECT a,b
8e80: 2c 63 20 46 52 4f 4d 20 74 33 20 55 4e 49 4f 4e  ,c FROM t3 UNION
8e90: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
8ea0: 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44 45 52 20  OM t2.    ORDER 
8eb0: 42 59 20 63 2c 61 2c 62 0a 20 20 7d 0a 7d 20 7b  BY c,a,b.  }.} {
8ec0: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d  1 a a 9.9 b B {}
8ed0: 20 43 20 63 20 68 65 6c 6c 6f 20 64 20 44 20 61   C c hello d D a
8ee0: 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 20  bc e e hare m M 
8ef0: 7b 7d 20 55 20 75 20 35 32 30 30 30 30 30 2e 30  {} U u 5200000.0
8f00: 20 58 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64   X x -23 Y y mad
8f10: 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74 20 73 65   Z z}.do_test se
8f20: 6c 65 63 74 41 2d 33 2e 38 30 20 7b 0a 20 20 65  lectA-3.80 {.  e
8f30: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
8f40: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
8f50: 33 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 78  3 UNION SELECT x
8f60: 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20 20 20  ,y,z FROM t2.   
8f70: 20 4f 52 44 45 52 20 42 59 20 63 20 44 45 53 43   ORDER BY c DESC
8f80: 2c 61 2c 62 0a 20 20 7d 0a 7d 20 7b 6d 61 64 20  ,a,b.  }.} {mad 
8f90: 5a 20 7a 20 2d 32 33 20 59 20 79 20 35 32 30 30  Z z -23 Y y 5200
8fa0: 30 30 30 2e 30 20 58 20 78 20 7b 7d 20 55 20 75  000.0 X x {} U u
8fb0: 20 68 61 72 65 20 6d 20 4d 20 61 62 63 20 65 20   hare m M abc e 
8fc0: 65 20 68 65 6c 6c 6f 20 64 20 44 20 7b 7d 20 43  e hello d D {} C
8fd0: 20 63 20 39 2e 39 20 62 20 42 20 31 20 61 20 61   c 9.9 b B 1 a a
8fe0: 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74  }.do_test select
8ff0: 41 2d 33 2e 38 31 20 7b 0a 20 20 65 78 65 63 73  A-3.81 {.  execs
9000: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
9010: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33 20 55 4e  a,b,c FROM t3 UN
9020: 49 4f 4e 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a  ION SELECT x,y,z
9030: 20 46 52 4f 4d 20 74 32 0a 20 20 20 20 4f 52 44   FROM t2.    ORD
9040: 45 52 20 42 59 20 63 20 43 4f 4c 4c 41 54 45 20  ER BY c COLLATE 
9050: 42 49 4e 41 52 59 20 44 45 53 43 2c 61 2c 62 0a  BINARY DESC,a,b.
9060: 20 20 7d 0a 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d    }.} {mad Z z -
9070: 32 33 20 59 20 79 20 35 32 30 30 30 30 30 2e 30  23 Y y 5200000.0
9080: 20 58 20 78 20 7b 7d 20 55 20 75 20 61 62 63 20   X x {} U u abc 
9090: 65 20 65 20 7b 7d 20 43 20 63 20 31 20 61 20 61  e e {} C c 1 a a
90a0: 20 68 61 72 65 20 6d 20 4d 20 68 65 6c 6c 6f 20   hare m M hello 
90b0: 64 20 44 20 39 2e 39 20 62 20 42 7d 0a 64 6f 5f  d D 9.9 b B}.do_
90c0: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 38  test selectA-3.8
90d0: 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  2 {.  execsql {.
90e0: 20 20 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a      SELECT x,y,z
90f0: 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 53   FROM t2 UNION S
9100: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
9110: 20 74 33 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t3.    ORDER BY
9120: 20 61 2c 62 2c 63 0a 20 20 7d 0a 7d 20 7b 7b 7d   a,b,c.  }.} {{}
9130: 20 43 20 63 20 7b 7d 20 55 20 75 20 2d 32 33 20   C c {} U u -23 
9140: 59 20 79 20 31 20 61 20 61 20 39 2e 39 20 62 20  Y y 1 a a 9.9 b 
9150: 42 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  B 5200000.0 X x 
9160: 68 65 6c 6c 6f 20 64 20 44 20 6d 61 64 20 5a 20  hello d D mad Z 
9170: 7a 20 61 62 63 20 65 20 65 20 68 61 72 65 20 6d  z abc e e hare m
9180: 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65   M}.do_test sele
9190: 63 74 41 2d 33 2e 38 33 20 7b 0a 20 20 65 78 65  ctA-3.83 {.  exe
91a0: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
91b0: 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20  T x,y,z FROM t2 
91c0: 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62  UNION SELECT a,b
91d0: 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f  ,c FROM t3.    O
91e0: 52 44 45 52 20 42 59 20 61 20 44 45 53 43 2c 62  RDER BY a DESC,b
91f0: 2c 63 0a 20 20 7d 0a 7d 20 7b 68 61 72 65 20 6d  ,c.  }.} {hare m
9200: 20 4d 20 61 62 63 20 65 20 65 20 6d 61 64 20 5a   M abc e e mad Z
9210: 20 7a 20 68 65 6c 6c 6f 20 64 20 44 20 35 32 30   z hello d D 520
9220: 30 30 30 30 2e 30 20 58 20 78 20 39 2e 39 20 62  0000.0 X x 9.9 b
9230: 20 42 20 31 20 61 20 61 20 2d 32 33 20 59 20 79   B 1 a a -23 Y y
9240: 20 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 7d 0a   {} C c {} U u}.
9250: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
9260: 33 2e 38 34 20 7b 0a 20 20 65 78 65 63 73 71 6c  3.84 {.  execsql
9270: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78 2c   {.    SELECT x,
9280: 79 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f  y,z FROM t2 UNIO
9290: 4e 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46  N SELECT a,b,c F
92a0: 52 4f 4d 20 74 33 0a 20 20 20 20 4f 52 44 45 52  ROM t3.    ORDER
92b0: 20 42 59 20 61 2c 63 2c 62 0a 20 20 7d 0a 7d 20   BY a,c,b.  }.} 
92c0: 7b 7b 7d 20 43 20 63 20 7b 7d 20 55 20 75 20 2d  {{} C c {} U u -
92d0: 32 33 20 59 20 79 20 31 20 61 20 61 20 39 2e 39  23 Y y 1 a a 9.9
92e0: 20 62 20 42 20 35 32 30 30 30 30 30 2e 30 20 58   b B 5200000.0 X
92f0: 20 78 20 68 65 6c 6c 6f 20 64 20 44 20 6d 61 64   x hello d D mad
9300: 20 5a 20 7a 20 61 62 63 20 65 20 65 20 68 61 72   Z z abc e e har
9310: 65 20 6d 20 4d 7d 0a 64 6f 5f 74 65 73 74 20 73  e m M}.do_test s
9320: 65 6c 65 63 74 41 2d 33 2e 38 35 20 7b 0a 20 20  electA-3.85 {.  
9330: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
9340: 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20  LECT x,y,z FROM 
9350: 74 32 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20  t2 UNION SELECT 
9360: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20  a,b,c FROM t3.  
9370: 20 20 4f 52 44 45 52 20 42 59 20 62 2c 61 2c 63    ORDER BY b,a,c
9380: 0a 20 20 7d 0a 7d 20 7b 7b 7d 20 43 20 63 20 7b  .  }.} {{} C c {
9390: 7d 20 55 20 75 20 35 32 30 30 30 30 30 2e 30 20  } U u 5200000.0 
93a0: 58 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64 20  X x -23 Y y mad 
93b0: 5a 20 7a 20 31 20 61 20 61 20 39 2e 39 20 62 20  Z z 1 a a 9.9 b 
93c0: 42 20 68 65 6c 6c 6f 20 64 20 44 20 61 62 63 20  B hello d D abc 
93d0: 65 20 65 20 68 61 72 65 20 6d 20 4d 7d 0a 64 6f  e e hare m M}.do
93e0: 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e  _test selectA-3.
93f0: 38 36 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  86 {.  execsql {
9400: 0a 20 20 20 20 53 45 4c 45 43 54 20 78 2c 79 2c  .    SELECT x,y,
9410: 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20  z FROM t2 UNION 
9420: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
9430: 4d 20 74 33 0a 20 20 20 20 4f 52 44 45 52 20 42  M t3.    ORDER B
9440: 59 20 79 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41  Y y COLLATE NOCA
9450: 53 45 2c 78 2c 7a 0a 20 20 7d 0a 7d 20 7b 31 20  SE,x,z.  }.} {1 
9460: 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d 20 43  a a 9.9 b B {} C
9470: 20 63 20 68 65 6c 6c 6f 20 64 20 44 20 61 62 63   c hello d D abc
9480: 20 65 20 65 20 68 61 72 65 20 6d 20 4d 20 7b 7d   e e hare m M {}
9490: 20 55 20 75 20 35 32 30 30 30 30 30 2e 30 20 58   U u 5200000.0 X
94a0: 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64 20 5a   x -23 Y y mad Z
94b0: 20 7a 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65   z}.do_test sele
94c0: 63 74 41 2d 33 2e 38 37 20 7b 0a 20 20 65 78 65  ctA-3.87 {.  exe
94d0: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
94e0: 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 20  T x,y,z FROM t2 
94f0: 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62  UNION SELECT a,b
9500: 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 4f  ,c FROM t3.    O
9510: 52 44 45 52 20 42 59 20 79 20 43 4f 4c 4c 41 54  RDER BY y COLLAT
9520: 45 20 4e 4f 43 41 53 45 20 44 45 53 43 2c 78 2c  E NOCASE DESC,x,
9530: 7a 0a 20 20 7d 0a 7d 20 7b 6d 61 64 20 5a 20 7a  z.  }.} {mad Z z
9540: 20 2d 32 33 20 59 20 79 20 35 32 30 30 30 30 30   -23 Y y 5200000
9550: 2e 30 20 58 20 78 20 7b 7d 20 55 20 75 20 68 61  .0 X x {} U u ha
9560: 72 65 20 6d 20 4d 20 61 62 63 20 65 20 65 20 68  re m M abc e e h
9570: 65 6c 6c 6f 20 64 20 44 20 7b 7d 20 43 20 63 20  ello d D {} C c 
9580: 39 2e 39 20 62 20 42 20 31 20 61 20 61 7d 0a 64  9.9 b B 1 a a}.d
9590: 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33  o_test selectA-3
95a0: 2e 38 38 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  .88 {.  execsql 
95b0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 78 2c 79  {.    SELECT x,y
95c0: 2c 7a 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e  ,z FROM t2 UNION
95d0: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
95e0: 4f 4d 20 74 33 0a 20 20 20 20 4f 52 44 45 52 20  OM t3.    ORDER 
95f0: 42 59 20 63 2c 62 2c 61 0a 20 20 7d 0a 7d 20 7b  BY c,b,a.  }.} {
9600: 31 20 61 20 61 20 39 2e 39 20 62 20 42 20 7b 7d  1 a a 9.9 b B {}
9610: 20 43 20 63 20 68 65 6c 6c 6f 20 64 20 44 20 61   C c hello d D a
9620: 62 63 20 65 20 65 20 68 61 72 65 20 6d 20 4d 20  bc e e hare m M 
9630: 7b 7d 20 55 20 75 20 35 32 30 30 30 30 30 2e 30  {} U u 5200000.0
9640: 20 58 20 78 20 2d 32 33 20 59 20 79 20 6d 61 64   X x -23 Y y mad
9650: 20 5a 20 7a 7d 0a 64 6f 5f 74 65 73 74 20 73 65   Z z}.do_test se
9660: 6c 65 63 74 41 2d 33 2e 38 39 20 7b 0a 20 20 65  lectA-3.89 {.  e
9670: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
9680: 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74  ECT x,y,z FROM t
9690: 32 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61  2 UNION SELECT a
96a0: 2c 62 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20 20  ,b,c FROM t3.   
96b0: 20 4f 52 44 45 52 20 42 59 20 63 2c 61 2c 62 0a   ORDER BY c,a,b.
96c0: 20 20 7d 0a 7d 20 7b 31 20 61 20 61 20 39 2e 39    }.} {1 a a 9.9
96d0: 20 62 20 42 20 7b 7d 20 43 20 63 20 68 65 6c 6c   b B {} C c hell
96e0: 6f 20 64 20 44 20 61 62 63 20 65 20 65 20 68 61  o d D abc e e ha
96f0: 72 65 20 6d 20 4d 20 7b 7d 20 55 20 75 20 35 32  re m M {} U u 52
9700: 30 30 30 30 30 2e 30 20 58 20 78 20 2d 32 33 20  00000.0 X x -23 
9710: 59 20 79 20 6d 61 64 20 5a 20 7a 7d 0a 64 6f 5f  Y y mad Z z}.do_
9720: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 39  test selectA-3.9
9730: 30 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  0 {.  execsql {.
9740: 20 20 20 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a      SELECT x,y,z
9750: 20 46 52 4f 4d 20 74 32 20 55 4e 49 4f 4e 20 53   FROM t2 UNION S
9760: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
9770: 20 74 33 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t3.    ORDER BY
9780: 20 63 20 44 45 53 43 2c 61 2c 62 0a 20 20 7d 0a   c DESC,a,b.  }.
9790: 7d 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59  } {mad Z z -23 Y
97a0: 20 79 20 35 32 30 30 30 30 30 2e 30 20 58 20 78   y 5200000.0 X x
97b0: 20 7b 7d 20 55 20 75 20 68 61 72 65 20 6d 20 4d   {} U u hare m M
97c0: 20 61 62 63 20 65 20 65 20 68 65 6c 6c 6f 20 64   abc e e hello d
97d0: 20 44 20 7b 7d 20 43 20 63 20 39 2e 39 20 62 20   D {} C c 9.9 b 
97e0: 42 20 31 20 61 20 61 7d 0a 64 6f 5f 74 65 73 74  B 1 a a}.do_test
97f0: 20 73 65 6c 65 63 74 41 2d 33 2e 39 31 20 7b 0a   selectA-3.91 {.
9800: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
9810: 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52 4f  SELECT x,y,z FRO
9820: 4d 20 74 32 20 55 4e 49 4f 4e 20 53 45 4c 45 43  M t2 UNION SELEC
9830: 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33 0a  T a,b,c FROM t3.
9840: 20 20 20 20 4f 52 44 45 52 20 42 59 20 7a 20 43      ORDER BY z C
9850: 4f 4c 4c 41 54 45 20 42 49 4e 41 52 59 20 44 45  OLLATE BINARY DE
9860: 53 43 2c 78 2c 79 0a 20 20 7d 0a 7d 20 7b 6d 61  SC,x,y.  }.} {ma
9870: 64 20 5a 20 7a 20 2d 32 33 20 59 20 79 20 35 32  d Z z -23 Y y 52
9880: 30 30 30 30 30 2e 30 20 58 20 78 20 7b 7d 20 55  00000.0 X x {} U
9890: 20 75 20 61 62 63 20 65 20 65 20 7b 7d 20 43 20   u abc e e {} C 
98a0: 63 20 31 20 61 20 61 20 68 61 72 65 20 6d 20 4d  c 1 a a hare m M
98b0: 20 68 65 6c 6c 6f 20 64 20 44 20 39 2e 39 20 62   hello d D 9.9 b
98c0: 20 42 7d 0a 64 6f 5f 74 65 73 74 20 73 65 6c 65   B}.do_test sele
98d0: 63 74 41 2d 33 2e 39 32 20 7b 0a 20 20 65 78 65  ctA-3.92 {.  exe
98e0: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
98f0: 54 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a  T x,y,z FROM t2.
9900: 20 20 20 20 49 4e 54 45 52 53 45 43 54 20 53 45      INTERSECT SE
9910: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
9920: 74 33 0a 20 20 20 20 45 58 43 45 50 54 20 53 45  t3.    EXCEPT SE
9930: 4c 45 43 54 20 63 2c 62 2c 61 20 46 52 4f 4d 20  LECT c,b,a FROM 
9940: 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 53 45 4c  t1.    UNION SEL
9950: 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 74  ECT a,b,c FROM t
9960: 33 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54 20  3.    INTERSECT 
9970: 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f  SELECT a,b,c FRO
9980: 4d 20 74 33 0a 20 20 20 20 45 58 43 45 50 54 20  M t3.    EXCEPT 
9990: 53 45 4c 45 43 54 20 63 2c 62 2c 61 20 46 52 4f  SELECT c,b,a FRO
99a0: 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 53  M t1.    UNION S
99b0: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
99c0: 20 74 33 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t3.    ORDER BY
99d0: 20 79 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53   y COLLATE NOCAS
99e0: 45 20 44 45 53 43 2c 78 2c 7a 0a 20 20 7d 0a 7d  E DESC,x,z.  }.}
99f0: 20 7b 6d 61 64 20 5a 20 7a 20 2d 32 33 20 59 20   {mad Z z -23 Y 
9a00: 79 20 35 32 30 30 30 30 30 2e 30 20 58 20 78 20  y 5200000.0 X x 
9a10: 7b 7d 20 55 20 75 20 68 61 72 65 20 6d 20 4d 20  {} U u hare m M 
9a20: 61 62 63 20 65 20 65 20 68 65 6c 6c 6f 20 64 20  abc e e hello d 
9a30: 44 20 7b 7d 20 43 20 63 20 39 2e 39 20 62 20 42  D {} C c 9.9 b B
9a40: 20 31 20 61 20 61 7d 0a 64 6f 5f 74 65 73 74 20   1 a a}.do_test 
9a50: 73 65 6c 65 63 74 41 2d 33 2e 39 33 20 7b 0a 20  selectA-3.93 {. 
9a60: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
9a70: 45 4c 45 43 54 20 75 70 70 65 72 28 28 53 45 4c  ELECT upper((SEL
9a80: 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20 55 4e  ECT c FROM t1 UN
9a90: 49 4f 4e 20 53 45 4c 45 43 54 20 7a 20 46 52 4f  ION SELECT z FRO
9aa0: 4d 20 74 32 20 4f 52 44 45 52 20 42 59 20 31 29  M t2 ORDER BY 1)
9ab0: 29 3b 0a 20 20 7d 0a 7d 20 7b 41 7d 0a 64 6f 5f  );.  }.} {A}.do_
9ac0: 74 65 73 74 20 73 65 6c 65 63 74 41 2d 33 2e 39  test selectA-3.9
9ad0: 34 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  4 {.  execsql {.
9ae0: 20 20 20 20 53 45 4c 45 43 54 20 6c 6f 77 65 72      SELECT lower
9af0: 28 28 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20  ((SELECT c FROM 
9b00: 74 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c  t1 UNION ALL SEL
9b10: 45 43 54 20 7a 20 46 52 4f 4d 20 74 32 20 4f 52  ECT z FROM t2 OR
9b20: 44 45 52 20 42 59 20 31 29 29 3b 0a 20 20 7d 0a  DER BY 1));.  }.
9b30: 7d 20 7b 61 7d 0a 64 6f 5f 74 65 73 74 20 73 65  } {a}.do_test se
9b40: 6c 65 63 74 41 2d 33 2e 39 35 20 7b 0a 20 20 65  lectA-3.95 {.  e
9b50: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
9b60: 45 43 54 20 6c 6f 77 65 72 28 28 53 45 4c 45 43  ECT lower((SELEC
9b70: 54 20 63 20 46 52 4f 4d 20 74 31 20 49 4e 54 45  T c FROM t1 INTE
9b80: 52 53 45 43 54 20 53 45 4c 45 43 54 20 7a 20 46  RSECT SELECT z F
9b90: 52 4f 4d 20 74 32 20 4f 52 44 45 52 20 42 59 20  ROM t2 ORDER BY 
9ba0: 31 29 29 3b 0a 20 20 7d 0a 7d 20 7b 7b 7d 7d 0a  1));.  }.} {{}}.
9bb0: 64 6f 5f 74 65 73 74 20 73 65 6c 65 63 74 41 2d  do_test selectA-
9bc0: 33 2e 39 36 20 7b 0a 20 20 65 78 65 63 73 71 6c  3.96 {.  execsql
9bd0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 6c 6f   {.    SELECT lo
9be0: 77 65 72 28 28 53 45 4c 45 43 54 20 7a 20 46 52  wer((SELECT z FR
9bf0: 4f 4d 20 74 32 20 45 58 43 45 50 54 20 53 45 4c  OM t2 EXCEPT SEL
9c00: 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20 4f 52  ECT c FROM t1 OR
9c10: 44 45 52 20 42 59 20 31 29 29 3b 0a 20 20 7d 0a  DER BY 1));.  }.
9c20: 7d 20 7b 6d 7d 0a 64 6f 5f 74 65 73 74 20 73 65  } {m}.do_test se
9c30: 6c 65 63 74 41 2d 33 2e 39 37 20 7b 0a 20 20 65  lectA-3.97 {.  e
9c40: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
9c50: 45 43 54 20 75 70 70 65 72 28 28 53 45 4c 45 43  ECT upper((SELEC
9c60: 54 20 78 20 46 52 4f 4d 20 28 0a 20 20 20 20 20  T x FROM (.     
9c70: 20 53 45 4c 45 43 54 20 78 2c 79 2c 7a 20 46 52   SELECT x,y,z FR
9c80: 4f 4d 20 74 32 0a 20 20 20 20 20 20 49 4e 54 45  OM t2.      INTE
9c90: 52 53 45 43 54 20 53 45 4c 45 43 54 20 61 2c 62  RSECT SELECT a,b
9ca0: 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 20  ,c FROM t3.     
9cb0: 20 45 58 43 45 50 54 20 53 45 4c 45 43 54 20 63   EXCEPT SELECT c
9cc0: 2c 62 2c 61 20 46 52 4f 4d 20 74 31 0a 20 20 20  ,b,a FROM t1.   
9cd0: 20 20 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20     UNION SELECT 
9ce0: 61 2c 62 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20  a,b,c FROM t3.  
9cf0: 20 20 20 20 49 4e 54 45 52 53 45 43 54 20 53 45      INTERSECT SE
9d00: 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20  LECT a,b,c FROM 
9d10: 74 33 0a 20 20 20 20 20 20 45 58 43 45 50 54 20  t3.      EXCEPT 
9d20: 53 45 4c 45 43 54 20 63 2c 62 2c 61 20 46 52 4f  SELECT c,b,a FRO
9d30: 4d 20 74 31 0a 20 20 20 20 20 20 55 4e 49 4f 4e  M t1.      UNION
9d40: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
9d50: 4f 4d 20 74 33 0a 20 20 20 20 20 20 4f 52 44 45  OM t3.      ORDE
9d60: 52 20 42 59 20 79 20 43 4f 4c 4c 41 54 45 20 4e  R BY y COLLATE N
9d70: 4f 43 41 53 45 20 44 45 53 43 2c 78 2c 7a 29 29  OCASE DESC,x,z))
9d80: 29 0a 20 20 7d 0a 7d 20 7b 4d 41 44 7d 0a 64 6f  ).  }.} {MAD}.do
9d90: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 73 65  _execsql_test se
9da0: 6c 65 63 74 41 2d 33 2e 39 38 20 7b 0a 20 20 57  lectA-3.98 {.  W
9db0: 49 54 48 20 52 45 43 55 52 53 49 56 45 0a 20 20  ITH RECURSIVE.  
9dc0: 20 20 78 79 7a 28 6e 29 20 41 53 20 28 0a 20 20    xyz(n) AS (.  
9dd0: 20 20 20 20 53 45 4c 45 43 54 20 75 70 70 65 72      SELECT upper
9de0: 28 28 53 45 4c 45 43 54 20 78 20 46 52 4f 4d 20  ((SELECT x FROM 
9df0: 28 0a 20 20 20 20 20 20 20 20 53 45 4c 45 43 54  (.        SELECT
9e00: 20 78 2c 79 2c 7a 20 46 52 4f 4d 20 74 32 0a 20   x,y,z FROM t2. 
9e10: 20 20 20 20 20 20 20 49 4e 54 45 52 53 45 43 54         INTERSECT
9e20: 20 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52   SELECT a,b,c FR
9e30: 4f 4d 20 74 33 0a 20 20 20 20 20 20 20 20 45 58  OM t3.        EX
9e40: 43 45 50 54 20 53 45 4c 45 43 54 20 63 2c 62 2c  CEPT SELECT c,b,
9e50: 61 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 20 20  a FROM t1.      
9e60: 20 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61    UNION SELECT a
9e70: 2c 62 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20 20  ,b,c FROM t3.   
9e80: 20 20 20 20 20 49 4e 54 45 52 53 45 43 54 20 53       INTERSECT S
9e90: 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d  ELECT a,b,c FROM
9ea0: 20 74 33 0a 20 20 20 20 20 20 20 20 45 58 43 45   t3.        EXCE
9eb0: 50 54 20 53 45 4c 45 43 54 20 63 2c 62 2c 61 20  PT SELECT c,b,a 
9ec0: 46 52 4f 4d 20 74 31 0a 20 20 20 20 20 20 20 20  FROM t1.        
9ed0: 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 61 2c 62  UNION SELECT a,b
9ee0: 2c 63 20 46 52 4f 4d 20 74 33 0a 20 20 20 20 20  ,c FROM t3.     
9ef0: 20 20 20 4f 52 44 45 52 20 42 59 20 79 20 43 4f     ORDER BY y CO
9f00: 4c 4c 41 54 45 20 4e 4f 43 41 53 45 20 44 45 53  LLATE NOCASE DES
9f10: 43 2c 78 2c 7a 29 29 29 0a 20 20 20 20 20 20 55  C,x,z))).      U
9f20: 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53  NION ALL.      S
9f30: 45 4c 45 43 54 20 6e 20 7c 7c 20 27 2b 27 20 46  ELECT n || '+' F
9f40: 52 4f 4d 20 78 79 7a 20 57 48 45 52 45 20 6c 65  ROM xyz WHERE le
9f50: 6e 67 74 68 28 6e 29 3c 35 0a 20 20 20 20 29 0a  ngth(n)<5.    ).
9f60: 20 20 53 45 4c 45 43 54 20 6e 20 46 52 4f 4d 20    SELECT n FROM 
9f70: 78 79 7a 20 4f 52 44 45 52 20 42 59 20 2b 6e 3b  xyz ORDER BY +n;
9f80: 0a 7d 20 7b 4d 41 44 20 4d 41 44 2b 20 4d 41 44  .} {MAD MAD+ MAD
9f90: 2b 2b 7d 0a 0a 66 69 6e 69 73 68 5f 74 65 73 74  ++}..finish_test
9fa0: 0a                                               .