/ Hex Artifact Content
Login

Artifact 9d000af3e11a4450d4c596f5e58b4b0d24eb0f8b:


0000: 23 20 32 30 30 35 20 53 65 70 74 65 6d 62 65 72  # 2005 September
0010: 20 31 39 0a 23 0a 23 20 54 68 65 20 61 75 74 68   19.#.# The auth
0020: 6f 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70  or disclaims cop
0030: 79 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73  yright to this s
0040: 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20  ource code.  In 
0050: 70 6c 61 63 65 20 6f 66 0a 23 20 61 20 6c 65 67  place of.# a leg
0060: 61 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20  al notice, here 
0070: 69 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23  is a blessing:.#
0080: 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 64 6f  .#    May you do
0090: 20 67 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76   good and not ev
00a0: 69 6c 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75  il..#    May you
00b0: 20 66 69 6e 64 20 66 6f 72 67 69 76 65 6e 65 73   find forgivenes
00c0: 73 20 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 61  s for yourself a
00d0: 6e 64 20 66 6f 72 67 69 76 65 20 6f 74 68 65 72  nd forgive other
00e0: 73 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20  s..#    May you 
00f0: 73 68 61 72 65 20 66 72 65 65 6c 79 2c 20 6e 65  share freely, ne
0100: 76 65 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20  ver taking more 
0110: 74 68 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23  than you give..#
0120: 0a 23 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 2a 2a 2a 2a 2a 0a 23 20 54 68 69 73  *********.# This
0170: 20 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73   file implements
0180: 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74   regression test
0190: 73 20 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62  s for SQLite lib
01a0: 72 61 72 79 2e 0a 23 0a 23 20 54 68 69 73 20 66  rary..#.# This f
01b0: 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 74  ile implements t
01c0: 65 73 74 73 20 74 6f 20 76 65 72 69 66 79 20 74  ests to verify t
01d0: 68 61 74 20 74 69 63 6b 65 74 20 23 31 34 37 33  hat ticket #1473
01e0: 20 68 61 73 20 62 65 65 6e 0a 23 20 66 69 78 65   has been.# fixe
01f0: 64 2e 20 20 0a 23 0a 0a 73 65 74 20 74 65 73 74  d.  .#..set test
0200: 64 69 72 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d  dir [file dirnam
0210: 65 20 24 61 72 67 76 30 5d 0a 73 6f 75 72 63 65  e $argv0].source
0220: 20 24 74 65 73 74 64 69 72 2f 74 65 73 74 65 72   $testdir/tester
0230: 2e 74 63 6c 0a 0a 69 66 63 61 70 61 62 6c 65 20  .tcl..ifcapable 
0240: 21 63 6f 6d 70 6f 75 6e 64 20 7b 0a 20 20 66 69  !compound {.  fi
0250: 6e 69 73 68 5f 74 65 73 74 0a 20 20 72 65 74 75  nish_test.  retu
0260: 72 6e 20 0a 7d 0a 0a 64 6f 5f 74 65 73 74 20 74  rn .}..do_test t
0270: 6b 74 31 34 37 33 2d 31 2e 31 20 7b 0a 20 20 65  kt1473-1.1 {.  e
0280: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 43 52 45  xecsql {.    CRE
0290: 41 54 45 20 54 41 42 4c 45 20 74 31 28 61 2c 62  ATE TABLE t1(a,b
02a0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
02b0: 54 4f 20 74 31 20 56 41 4c 55 45 53 28 31 2c 32  TO t1 VALUES(1,2
02c0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
02d0: 54 4f 20 74 31 20 56 41 4c 55 45 53 28 33 2c 34  TO t1 VALUES(3,4
02e0: 29 3b 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20  );.    SELECT * 
02f0: 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31  FROM t1.  }.} {1
0300: 20 32 20 33 20 34 7d 0a 0a 64 6f 5f 74 65 73 74   2 3 4}..do_test
0310: 20 74 6b 74 31 34 37 33 2d 31 2e 32 20 7b 0a 20   tkt1473-1.2 {. 
0320: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
0330: 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 31 20  ELECT 1 FROM t1 
0340: 57 48 45 52 45 20 61 3d 31 20 55 4e 49 4f 4e 20  WHERE a=1 UNION 
0350: 41 4c 4c 20 53 45 4c 45 43 54 20 32 20 46 52 4f  ALL SELECT 2 FRO
0360: 4d 20 74 31 20 57 48 45 52 45 20 62 3d 30 0a 20  M t1 WHERE b=0. 
0370: 20 7d 0a 7d 20 7b 31 7d 0a 64 6f 5f 74 65 73 74   }.} {1}.do_test
0380: 20 74 6b 74 31 34 37 33 2d 31 2e 33 20 7b 0a 20   tkt1473-1.3 {. 
0390: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
03a0: 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 31 20  ELECT 1 FROM t1 
03b0: 57 48 45 52 45 20 61 3d 31 20 55 4e 49 4f 4e 20  WHERE a=1 UNION 
03c0: 53 45 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 31  SELECT 2 FROM t1
03d0: 20 57 48 45 52 45 20 62 3d 30 0a 20 20 7d 0a 7d   WHERE b=0.  }.}
03e0: 20 7b 31 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   {1}.do_test tkt
03f0: 31 34 37 33 2d 31 2e 34 20 7b 0a 20 20 65 78 65  1473-1.4 {.  exe
0400: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
0410: 54 20 31 20 46 52 4f 4d 20 74 31 20 57 48 45 52  T 1 FROM t1 WHER
0420: 45 20 61 3d 31 20 55 4e 49 4f 4e 20 41 4c 4c 20  E a=1 UNION ALL 
0430: 53 45 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 31  SELECT 2 FROM t1
0440: 20 57 48 45 52 45 20 62 3d 34 0a 20 20 7d 0a 7d   WHERE b=4.  }.}
0450: 20 7b 31 20 32 7d 0a 64 6f 5f 74 65 73 74 20 74   {1 2}.do_test t
0460: 6b 74 31 34 37 33 2d 31 2e 35 20 7b 0a 20 20 65  kt1473-1.5 {.  e
0470: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
0480: 45 43 54 20 31 20 46 52 4f 4d 20 74 31 20 57 48  ECT 1 FROM t1 WH
0490: 45 52 45 20 61 3d 31 20 55 4e 49 4f 4e 20 53 45  ERE a=1 UNION SE
04a0: 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 31 20 57  LECT 2 FROM t1 W
04b0: 48 45 52 45 20 62 3d 34 0a 20 20 7d 0a 7d 20 7b  HERE b=4.  }.} {
04c0: 31 20 32 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74  1 2}.do_test tkt
04d0: 31 34 37 33 2d 31 2e 36 20 7b 0a 20 20 65 78 65  1473-1.6 {.  exe
04e0: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
04f0: 54 20 31 20 46 52 4f 4d 20 74 31 20 57 48 45 52  T 1 FROM t1 WHER
0500: 45 20 61 3d 30 20 55 4e 49 4f 4e 20 41 4c 4c 20  E a=0 UNION ALL 
0510: 53 45 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 31  SELECT 2 FROM t1
0520: 20 57 48 45 52 45 20 62 3d 34 0a 20 20 7d 0a 7d   WHERE b=4.  }.}
0530: 20 7b 32 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   {2}.do_test tkt
0540: 31 34 37 33 2d 31 2e 37 20 7b 0a 20 20 65 78 65  1473-1.7 {.  exe
0550: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
0560: 54 20 31 20 46 52 4f 4d 20 74 31 20 57 48 45 52  T 1 FROM t1 WHER
0570: 45 20 61 3d 30 20 55 4e 49 4f 4e 20 53 45 4c 45  E a=0 UNION SELE
0580: 43 54 20 32 20 46 52 4f 4d 20 74 31 20 57 48 45  CT 2 FROM t1 WHE
0590: 52 45 20 62 3d 34 0a 20 20 7d 0a 7d 20 7b 32 7d  RE b=4.  }.} {2}
05a0: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33  .do_test tkt1473
05b0: 2d 31 2e 38 20 7b 0a 20 20 65 78 65 63 73 71 6c  -1.8 {.  execsql
05c0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 31 20   {.    SELECT 1 
05d0: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 3d  FROM t1 WHERE a=
05e0: 30 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45 4c 45  0 UNION ALL SELE
05f0: 43 54 20 32 20 46 52 4f 4d 20 74 31 20 57 48 45  CT 2 FROM t1 WHE
0600: 52 45 20 62 3d 30 0a 20 20 7d 0a 7d 20 7b 7d 0a  RE b=0.  }.} {}.
0610: 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33 2d  do_test tkt1473-
0620: 31 2e 39 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  1.9 {.  execsql 
0630: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 31 20 46  {.    SELECT 1 F
0640: 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 3d 30  ROM t1 WHERE a=0
0650: 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 32 20   UNION SELECT 2 
0660: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3d  FROM t1 WHERE b=
0670: 30 0a 20 20 7d 0a 7d 20 7b 7d 0a 0a 23 20 45 76  0.  }.} {}..# Ev
0680: 65 72 79 74 68 69 6e 67 20 66 72 6f 6d 20 74 68  erything from th
0690: 69 73 20 70 6f 69 6e 74 20 6f 6e 20 64 65 70 65  is point on depe
06a0: 6e 64 73 20 6f 6e 20 73 75 62 2d 71 75 65 72 69  nds on sub-queri
06b0: 65 73 2e 20 53 6f 20 73 6b 69 70 20 69 74 0a 23  es. So skip it.#
06c0: 20 69 66 20 73 75 62 2d 71 75 65 72 69 65 73 20   if sub-queries 
06d0: 61 72 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c  are not availabl
06e0: 65 2e 0a 69 66 63 61 70 61 62 6c 65 20 21 73 75  e..ifcapable !su
06f0: 62 71 75 65 72 79 20 7b 0a 20 20 66 69 6e 69 73  bquery {.  finis
0700: 68 5f 74 65 73 74 0a 20 20 72 65 74 75 72 6e 0a  h_test.  return.
0710: 7d 0a 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34  }..do_test tkt14
0720: 37 33 2d 32 2e 32 20 7b 0a 20 20 65 78 65 63 73  73-2.2 {.  execs
0730: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
0740: 28 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74  (SELECT 1 FROM t
0750: 31 20 57 48 45 52 45 20 61 3d 31 20 55 4e 49 4f  1 WHERE a=1 UNIO
0760: 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 32 20 46  N ALL SELECT 2 F
0770: 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3d 30  ROM t1 WHERE b=0
0780: 29 0a 20 20 7d 0a 7d 20 7b 31 7d 0a 64 6f 5f 74  ).  }.} {1}.do_t
0790: 65 73 74 20 74 6b 74 31 34 37 33 2d 32 2e 33 20  est tkt1473-2.3 
07a0: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
07b0: 20 20 53 45 4c 45 43 54 20 28 53 45 4c 45 43 54    SELECT (SELECT
07c0: 20 31 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45   1 FROM t1 WHERE
07d0: 20 61 3d 31 20 55 4e 49 4f 4e 20 53 45 4c 45 43   a=1 UNION SELEC
07e0: 54 20 32 20 46 52 4f 4d 20 74 31 20 57 48 45 52  T 2 FROM t1 WHER
07f0: 45 20 62 3d 30 29 0a 20 20 7d 0a 7d 20 7b 31 7d  E b=0).  }.} {1}
0800: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33  .do_test tkt1473
0810: 2d 32 2e 34 20 7b 0a 20 20 65 78 65 63 73 71 6c  -2.4 {.  execsql
0820: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 28 53   {.    SELECT (S
0830: 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 31 20  ELECT 1 FROM t1 
0840: 57 48 45 52 45 20 61 3d 31 20 55 4e 49 4f 4e 20  WHERE a=1 UNION 
0850: 41 4c 4c 20 53 45 4c 45 43 54 20 32 20 46 52 4f  ALL SELECT 2 FRO
0860: 4d 20 74 31 20 57 48 45 52 45 20 62 3d 34 29 0a  M t1 WHERE b=4).
0870: 20 20 7d 0a 7d 20 7b 31 7d 0a 64 6f 5f 74 65 73    }.} {1}.do_tes
0880: 74 20 74 6b 74 31 34 37 33 2d 32 2e 35 20 7b 0a  t tkt1473-2.5 {.
0890: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
08a0: 53 45 4c 45 43 54 20 28 53 45 4c 45 43 54 20 31  SELECT (SELECT 1
08b0: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61   FROM t1 WHERE a
08c0: 3d 31 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20  =1 UNION SELECT 
08d0: 32 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20  2 FROM t1 WHERE 
08e0: 62 3d 34 29 0a 20 20 7d 0a 7d 20 7b 31 7d 0a 64  b=4).  }.} {1}.d
08f0: 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33 2d 32  o_test tkt1473-2
0900: 2e 36 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .6 {.  execsql {
0910: 0a 20 20 20 20 53 45 4c 45 43 54 20 28 53 45 4c  .    SELECT (SEL
0920: 45 43 54 20 31 20 46 52 4f 4d 20 74 31 20 57 48  ECT 1 FROM t1 WH
0930: 45 52 45 20 61 3d 30 20 55 4e 49 4f 4e 20 41 4c  ERE a=0 UNION AL
0940: 4c 20 53 45 4c 45 43 54 20 32 20 46 52 4f 4d 20  L SELECT 2 FROM 
0950: 74 31 20 57 48 45 52 45 20 62 3d 34 29 0a 20 20  t1 WHERE b=4).  
0960: 7d 0a 7d 20 7b 32 7d 0a 64 6f 5f 74 65 73 74 20  }.} {2}.do_test 
0970: 74 6b 74 31 34 37 33 2d 32 2e 37 20 7b 0a 20 20  tkt1473-2.7 {.  
0980: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
0990: 4c 45 43 54 20 28 53 45 4c 45 43 54 20 31 20 46  LECT (SELECT 1 F
09a0: 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 3d 30  ROM t1 WHERE a=0
09b0: 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 32 20   UNION SELECT 2 
09c0: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3d  FROM t1 WHERE b=
09d0: 34 29 0a 20 20 7d 0a 7d 20 7b 32 7d 0a 64 6f 5f  4).  }.} {2}.do_
09e0: 74 65 73 74 20 74 6b 74 31 34 37 33 2d 32 2e 38  test tkt1473-2.8
09f0: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
0a00: 20 20 20 53 45 4c 45 43 54 20 28 53 45 4c 45 43     SELECT (SELEC
0a10: 54 20 31 20 46 52 4f 4d 20 74 31 20 57 48 45 52  T 1 FROM t1 WHER
0a20: 45 20 61 3d 30 20 55 4e 49 4f 4e 20 41 4c 4c 20  E a=0 UNION ALL 
0a30: 53 45 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 31  SELECT 2 FROM t1
0a40: 20 57 48 45 52 45 20 62 3d 30 29 0a 20 20 7d 0a   WHERE b=0).  }.
0a50: 7d 20 7b 7b 7d 7d 0a 64 6f 5f 74 65 73 74 20 74  } {{}}.do_test t
0a60: 6b 74 31 34 37 33 2d 32 2e 39 20 7b 0a 20 20 65  kt1473-2.9 {.  e
0a70: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
0a80: 45 43 54 20 28 53 45 4c 45 43 54 20 31 20 46 52  ECT (SELECT 1 FR
0a90: 4f 4d 20 74 31 20 57 48 45 52 45 20 61 3d 30 20  OM t1 WHERE a=0 
0aa0: 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 32 20 46  UNION SELECT 2 F
0ab0: 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3d 30  ROM t1 WHERE b=0
0ac0: 29 0a 20 20 7d 0a 7d 20 7b 7b 7d 7d 0a 0a 64 6f  ).  }.} {{}}..do
0ad0: 5f 74 65 73 74 20 74 6b 74 31 34 37 33 2d 33 2e  _test tkt1473-3.
0ae0: 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  2 {.  execsql {.
0af0: 20 20 20 20 53 45 4c 45 43 54 20 45 58 49 53 54      SELECT EXIST
0b00: 53 0a 20 20 20 20 20 20 28 53 45 4c 45 43 54 20  S.      (SELECT 
0b10: 31 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20  1 FROM t1 WHERE 
0b20: 61 3d 31 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45  a=1 UNION ALL SE
0b30: 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 31 20 57  LECT 2 FROM t1 W
0b40: 48 45 52 45 20 62 3d 30 29 0a 20 20 7d 0a 7d 20  HERE b=0).  }.} 
0b50: 7b 31 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31  {1}.do_test tkt1
0b60: 34 37 33 2d 33 2e 33 20 7b 0a 20 20 65 78 65 63  473-3.3 {.  exec
0b70: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
0b80: 20 45 58 49 53 54 53 0a 20 20 20 20 20 20 28 53   EXISTS.      (S
0b90: 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 31 20  ELECT 1 FROM t1 
0ba0: 57 48 45 52 45 20 61 3d 31 20 55 4e 49 4f 4e 20  WHERE a=1 UNION 
0bb0: 53 45 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 31  SELECT 2 FROM t1
0bc0: 20 57 48 45 52 45 20 62 3d 30 29 0a 20 20 7d 0a   WHERE b=0).  }.
0bd0: 7d 20 7b 31 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  } {1}.do_test tk
0be0: 74 31 34 37 33 2d 33 2e 34 20 7b 0a 20 20 65 78  t1473-3.4 {.  ex
0bf0: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
0c00: 43 54 20 45 58 49 53 54 53 0a 20 20 20 20 20 20  CT EXISTS.      
0c10: 28 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74  (SELECT 1 FROM t
0c20: 31 20 57 48 45 52 45 20 61 3d 31 20 55 4e 49 4f  1 WHERE a=1 UNIO
0c30: 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 32 20 46  N ALL SELECT 2 F
0c40: 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3d 34  ROM t1 WHERE b=4
0c50: 29 0a 20 20 7d 0a 7d 20 7b 31 7d 0a 64 6f 5f 74  ).  }.} {1}.do_t
0c60: 65 73 74 20 74 6b 74 31 34 37 33 2d 33 2e 35 20  est tkt1473-3.5 
0c70: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
0c80: 20 20 53 45 4c 45 43 54 20 45 58 49 53 54 53 0a    SELECT EXISTS.
0c90: 20 20 20 20 20 20 28 53 45 4c 45 43 54 20 31 20        (SELECT 1 
0ca0: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 3d  FROM t1 WHERE a=
0cb0: 31 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 32  1 UNION SELECT 2
0cc0: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62   FROM t1 WHERE b
0cd0: 3d 34 29 0a 20 20 7d 0a 7d 20 7b 31 7d 0a 64 6f  =4).  }.} {1}.do
0ce0: 5f 74 65 73 74 20 74 6b 74 31 34 37 33 2d 33 2e  _test tkt1473-3.
0cf0: 36 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  6 {.  execsql {.
0d00: 20 20 20 20 53 45 4c 45 43 54 20 45 58 49 53 54      SELECT EXIST
0d10: 53 0a 20 20 20 20 20 20 28 53 45 4c 45 43 54 20  S.      (SELECT 
0d20: 31 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20  1 FROM t1 WHERE 
0d30: 61 3d 30 20 55 4e 49 4f 4e 20 41 4c 4c 20 53 45  a=0 UNION ALL SE
0d40: 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 31 20 57  LECT 2 FROM t1 W
0d50: 48 45 52 45 20 62 3d 34 29 0a 20 20 7d 0a 7d 20  HERE b=4).  }.} 
0d60: 7b 31 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31  {1}.do_test tkt1
0d70: 34 37 33 2d 33 2e 37 20 7b 0a 20 20 65 78 65 63  473-3.7 {.  exec
0d80: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
0d90: 20 45 58 49 53 54 53 0a 20 20 20 20 20 20 28 53   EXISTS.      (S
0da0: 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 31 20  ELECT 1 FROM t1 
0db0: 57 48 45 52 45 20 61 3d 30 20 55 4e 49 4f 4e 20  WHERE a=0 UNION 
0dc0: 53 45 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 31  SELECT 2 FROM t1
0dd0: 20 57 48 45 52 45 20 62 3d 34 29 0a 20 20 7d 0a   WHERE b=4).  }.
0de0: 7d 20 7b 31 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  } {1}.do_test tk
0df0: 74 31 34 37 33 2d 33 2e 38 20 7b 0a 20 20 65 78  t1473-3.8 {.  ex
0e00: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
0e10: 43 54 20 45 58 49 53 54 53 0a 20 20 20 20 20 20  CT EXISTS.      
0e20: 28 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74  (SELECT 1 FROM t
0e30: 31 20 57 48 45 52 45 20 61 3d 30 20 55 4e 49 4f  1 WHERE a=0 UNIO
0e40: 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 32 20 46  N ALL SELECT 2 F
0e50: 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62 3d 30  ROM t1 WHERE b=0
0e60: 29 0a 20 20 7d 0a 7d 20 7b 30 7d 0a 64 6f 5f 74  ).  }.} {0}.do_t
0e70: 65 73 74 20 74 6b 74 31 34 37 33 2d 33 2e 39 20  est tkt1473-3.9 
0e80: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
0e90: 20 20 53 45 4c 45 43 54 20 45 58 49 53 54 53 0a    SELECT EXISTS.
0ea0: 20 20 20 20 20 20 28 53 45 4c 45 43 54 20 31 20        (SELECT 1 
0eb0: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 3d  FROM t1 WHERE a=
0ec0: 30 20 55 4e 49 4f 4e 20 53 45 4c 45 43 54 20 32  0 UNION SELECT 2
0ed0: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 62   FROM t1 WHERE b
0ee0: 3d 30 29 0a 20 20 7d 0a 7d 20 7b 30 7d 0a 0a 64  =0).  }.} {0}..d
0ef0: 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33 2d 34  o_test tkt1473-4
0f00: 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .1 {.  execsql {
0f10: 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c  .    CREATE TABL
0f20: 45 20 74 32 28 78 2c 79 29 3b 0a 20 20 20 20 49  E t2(x,y);.    I
0f30: 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41  NSERT INTO t2 VA
0f40: 4c 55 45 53 28 31 2c 32 29 3b 0a 20 20 20 20 49  LUES(1,2);.    I
0f50: 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 53 45  NSERT INTO t2 SE
0f60: 4c 45 43 54 20 78 2b 32 2c 20 79 2b 32 20 46 52  LECT x+2, y+2 FR
0f70: 4f 4d 20 74 32 3b 0a 20 20 20 20 49 4e 53 45 52  OM t2;.    INSER
0f80: 54 20 49 4e 54 4f 20 74 32 20 53 45 4c 45 43 54  T INTO t2 SELECT
0f90: 20 78 2b 34 2c 20 79 2b 34 20 46 52 4f 4d 20 74   x+4, y+4 FROM t
0fa0: 32 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  2;.    INSERT IN
0fb0: 54 4f 20 74 32 20 53 45 4c 45 43 54 20 78 2b 38  TO t2 SELECT x+8
0fc0: 2c 20 79 2b 38 20 46 52 4f 4d 20 74 32 3b 0a 20  , y+8 FROM t2;. 
0fd0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
0fe0: 32 20 53 45 4c 45 43 54 20 78 2b 31 36 2c 20 79  2 SELECT x+16, y
0ff0: 2b 31 36 20 46 52 4f 4d 20 74 32 3b 0a 20 20 20  +16 FROM t2;.   
1000: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20   INSERT INTO t2 
1010: 53 45 4c 45 43 54 20 78 2b 33 32 2c 20 79 2b 33  SELECT x+32, y+3
1020: 32 20 46 52 4f 4d 20 74 32 3b 0a 20 20 20 20 49  2 FROM t2;.    I
1030: 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 53 45  NSERT INTO t2 SE
1040: 4c 45 43 54 20 78 2b 36 34 2c 20 79 2b 36 34 20  LECT x+64, y+64 
1050: 46 52 4f 4d 20 74 32 3b 0a 20 20 20 20 53 45 4c  FROM t2;.    SEL
1060: 45 43 54 20 63 6f 75 6e 74 28 2a 29 2c 20 73 75  ECT count(*), su
1070: 6d 28 78 29 2c 20 73 75 6d 28 79 29 20 46 52 4f  m(x), sum(y) FRO
1080: 4d 20 74 32 3b 0a 20 20 7d 0a 7d 20 7b 36 34 20  M t2;.  }.} {64 
1090: 34 30 39 36 20 34 31 36 30 7d 0a 64 6f 5f 74 65  4096 4160}.do_te
10a0: 73 74 20 74 6b 74 31 34 37 33 2d 34 2e 32 20 7b  st tkt1473-4.2 {
10b0: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
10c0: 20 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74   SELECT 1 FROM t
10d0: 32 20 57 48 45 52 45 20 78 3d 30 0a 20 20 20 20  2 WHERE x=0.    
10e0: 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45  UNION ALL.    SE
10f0: 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 32 20 57  LECT 2 FROM t2 W
1100: 48 45 52 45 20 78 3d 31 0a 20 20 20 20 55 4e 49  HERE x=1.    UNI
1110: 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43  ON ALL.    SELEC
1120: 54 20 33 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 3 FROM t2 WHER
1130: 45 20 78 3d 32 0a 20 20 20 20 55 4e 49 4f 4e 20  E x=2.    UNION 
1140: 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 34  ALL.    SELECT 4
1150: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78   FROM t2 WHERE x
1160: 3d 33 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c  =3.    UNION ALL
1170: 0a 20 20 20 20 53 45 4c 45 43 54 20 35 20 46 52  .    SELECT 5 FR
1180: 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 34 0a  OM t2 WHERE x=4.
1190: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
11a0: 20 20 53 45 4c 45 43 54 20 36 20 46 52 4f 4d 20    SELECT 6 FROM 
11b0: 74 32 20 57 48 45 52 45 20 79 3d 30 0a 20 20 20  t2 WHERE y=0.   
11c0: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53   UNION ALL.    S
11d0: 45 4c 45 43 54 20 37 20 46 52 4f 4d 20 74 32 20  ELECT 7 FROM t2 
11e0: 57 48 45 52 45 20 79 3d 31 0a 20 20 20 20 55 4e  WHERE y=1.    UN
11f0: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45  ION ALL.    SELE
1200: 43 54 20 38 20 46 52 4f 4d 20 74 32 20 57 48 45  CT 8 FROM t2 WHE
1210: 52 45 20 79 3d 32 0a 20 20 20 20 55 4e 49 4f 4e  RE y=2.    UNION
1220: 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20   ALL.    SELECT 
1230: 39 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  9 FROM t2 WHERE 
1240: 79 3d 33 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c  y=3.    UNION AL
1250: 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 31 30 20  L.    SELECT 10 
1260: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d  FROM t2 WHERE y=
1270: 34 0a 20 20 7d 0a 7d 20 7b 32 20 34 20 38 20 31  4.  }.} {2 4 8 1
1280: 30 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34  0}.do_test tkt14
1290: 37 33 2d 34 2e 33 20 7b 0a 20 20 65 78 65 63 73  73-4.3 {.  execs
12a0: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
12b0: 28 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 31  (.      SELECT 1
12c0: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78   FROM t2 WHERE x
12d0: 3d 30 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41  =0.      UNION A
12e0: 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20  LL.      SELECT 
12f0: 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  2 FROM t2 WHERE 
1300: 78 3d 31 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20  x=1.      UNION 
1310: 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ALL.      SELECT
1320: 20 33 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   3 FROM t2 WHERE
1330: 20 78 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e   x=2.      UNION
1340: 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43   ALL.      SELEC
1350: 54 20 34 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 4 FROM t2 WHER
1360: 45 20 78 3d 33 0a 20 20 20 20 20 20 55 4e 49 4f  E x=3.      UNIO
1370: 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45  N ALL.      SELE
1380: 43 54 20 35 20 46 52 4f 4d 20 74 32 20 57 48 45  CT 5 FROM t2 WHE
1390: 52 45 20 78 3d 34 0a 20 20 20 20 20 20 55 4e 49  RE x=4.      UNI
13a0: 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c  ON ALL.      SEL
13b0: 45 43 54 20 36 20 46 52 4f 4d 20 74 32 20 57 48  ECT 6 FROM t2 WH
13c0: 45 52 45 20 79 3d 30 0a 20 20 20 20 20 20 55 4e  ERE y=0.      UN
13d0: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45  ION ALL.      SE
13e0: 4c 45 43 54 20 37 20 46 52 4f 4d 20 74 32 20 57  LECT 7 FROM t2 W
13f0: 48 45 52 45 20 79 3d 31 0a 20 20 20 20 20 20 55  HERE y=1.      U
1400: 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53  NION ALL.      S
1410: 45 4c 45 43 54 20 38 20 46 52 4f 4d 20 74 32 20  ELECT 8 FROM t2 
1420: 57 48 45 52 45 20 79 3d 32 0a 20 20 20 20 20 20  WHERE y=2.      
1430: 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20  UNION ALL.      
1440: 53 45 4c 45 43 54 20 39 20 46 52 4f 4d 20 74 32  SELECT 9 FROM t2
1450: 20 57 48 45 52 45 20 79 3d 33 0a 20 20 20 20 20   WHERE y=3.     
1460: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20   UNION ALL.     
1470: 20 53 45 4c 45 43 54 20 31 30 20 46 52 4f 4d 20   SELECT 10 FROM 
1480: 74 32 20 57 48 45 52 45 20 79 3d 34 0a 20 20 20  t2 WHERE y=4.   
1490: 20 29 0a 20 20 7d 0a 7d 20 7b 32 7d 0a 64 6f 5f   ).  }.} {2}.do_
14a0: 74 65 73 74 20 74 6b 74 31 34 37 33 2d 34 2e 34  test tkt1473-4.4
14b0: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
14c0: 20 20 20 53 45 4c 45 43 54 20 28 0a 20 20 20 20     SELECT (.    
14d0: 20 20 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20    SELECT 1 FROM 
14e0: 74 32 20 57 48 45 52 45 20 78 3d 30 0a 20 20 20  t2 WHERE x=0.   
14f0: 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20     UNION ALL.   
1500: 20 20 20 53 45 4c 45 43 54 20 32 20 46 52 4f 4d     SELECT 2 FROM
1510: 20 74 32 20 57 48 45 52 45 20 78 3d 2d 31 0a 20   t2 WHERE x=-1. 
1520: 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20       UNION ALL. 
1530: 20 20 20 20 20 53 45 4c 45 43 54 20 33 20 46 52       SELECT 3 FR
1540: 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 32 0a  OM t2 WHERE x=2.
1550: 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a        UNION ALL.
1560: 20 20 20 20 20 20 53 45 4c 45 43 54 20 34 20 46        SELECT 4 F
1570: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 33  ROM t2 WHERE x=3
1580: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c  .      UNION ALL
1590: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 35 20  .      SELECT 5 
15a0: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d  FROM t2 WHERE x=
15b0: 34 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c  4.      UNION AL
15c0: 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 36  L.      SELECT 6
15d0: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79   FROM t2 WHERE y
15e0: 3d 30 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41  =0.      UNION A
15f0: 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20  LL.      SELECT 
1600: 37 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  7 FROM t2 WHERE 
1610: 79 3d 31 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20  y=1.      UNION 
1620: 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ALL.      SELECT
1630: 20 38 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   8 FROM t2 WHERE
1640: 20 79 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e   y=2.      UNION
1650: 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43   ALL.      SELEC
1660: 54 20 39 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 9 FROM t2 WHER
1670: 45 20 79 3d 33 0a 20 20 20 20 20 20 55 4e 49 4f  E y=3.      UNIO
1680: 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45  N ALL.      SELE
1690: 43 54 20 31 30 20 46 52 4f 4d 20 74 32 20 57 48  CT 10 FROM t2 WH
16a0: 45 52 45 20 79 3d 34 0a 20 20 20 20 29 0a 20 20  ERE y=4.    ).  
16b0: 7d 0a 7d 20 7b 34 7d 0a 64 6f 5f 74 65 73 74 20  }.} {4}.do_test 
16c0: 74 6b 74 31 34 37 33 2d 34 2e 35 20 7b 0a 20 20  tkt1473-4.5 {.  
16d0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
16e0: 4c 45 43 54 20 28 0a 20 20 20 20 20 20 53 45 4c  LECT (.      SEL
16f0: 45 43 54 20 31 20 46 52 4f 4d 20 74 32 20 57 48  ECT 1 FROM t2 WH
1700: 45 52 45 20 78 3d 30 0a 20 20 20 20 20 20 55 4e  ERE x=0.      UN
1710: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45  ION ALL.      SE
1720: 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 32 20 57  LECT 2 FROM t2 W
1730: 48 45 52 45 20 78 3d 2d 31 0a 20 20 20 20 20 20  HERE x=-1.      
1740: 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20  UNION ALL.      
1750: 53 45 4c 45 43 54 20 33 20 46 52 4f 4d 20 74 32  SELECT 3 FROM t2
1760: 20 57 48 45 52 45 20 78 3d 32 0a 20 20 20 20 20   WHERE x=2.     
1770: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20   UNION ALL.     
1780: 20 53 45 4c 45 43 54 20 34 20 46 52 4f 4d 20 74   SELECT 4 FROM t
1790: 32 20 57 48 45 52 45 20 78 3d 2d 31 0a 20 20 20  2 WHERE x=-1.   
17a0: 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20     UNION ALL.   
17b0: 20 20 20 53 45 4c 45 43 54 20 35 20 46 52 4f 4d     SELECT 5 FROM
17c0: 20 74 32 20 57 48 45 52 45 20 78 3d 34 0a 20 20   t2 WHERE x=4.  
17d0: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
17e0: 20 20 20 20 53 45 4c 45 43 54 20 36 20 46 52 4f      SELECT 6 FRO
17f0: 4d 20 74 32 20 57 48 45 52 45 20 79 3d 30 0a 20  M t2 WHERE y=0. 
1800: 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20       UNION ALL. 
1810: 20 20 20 20 20 53 45 4c 45 43 54 20 37 20 46 52       SELECT 7 FR
1820: 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 31 0a  OM t2 WHERE y=1.
1830: 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a        UNION ALL.
1840: 20 20 20 20 20 20 53 45 4c 45 43 54 20 38 20 46        SELECT 8 F
1850: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 32  ROM t2 WHERE y=2
1860: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c  .      UNION ALL
1870: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 39 20  .      SELECT 9 
1880: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d  FROM t2 WHERE y=
1890: 33 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c  3.      UNION AL
18a0: 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 31  L.      SELECT 1
18b0: 30 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  0 FROM t2 WHERE 
18c0: 79 3d 2d 34 0a 20 20 20 20 29 0a 20 20 7d 0a 7d  y=-4.    ).  }.}
18d0: 20 7b 38 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   {8}.do_test tkt
18e0: 31 34 37 33 2d 34 2e 36 20 7b 0a 20 20 65 78 65  1473-4.6 {.  exe
18f0: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
1900: 54 20 28 0a 20 20 20 20 20 20 53 45 4c 45 43 54  T (.      SELECT
1910: 20 31 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   1 FROM t2 WHERE
1920: 20 78 3d 30 0a 20 20 20 20 20 20 55 4e 49 4f 4e   x=0.      UNION
1930: 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43   ALL.      SELEC
1940: 54 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 2 FROM t2 WHER
1950: 45 20 78 3d 2d 31 0a 20 20 20 20 20 20 55 4e 49  E x=-1.      UNI
1960: 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c  ON ALL.      SEL
1970: 45 43 54 20 33 20 46 52 4f 4d 20 74 32 20 57 48  ECT 3 FROM t2 WH
1980: 45 52 45 20 78 3d 32 0a 20 20 20 20 20 20 55 4e  ERE x=2.      UN
1990: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45  ION ALL.      SE
19a0: 4c 45 43 54 20 34 20 46 52 4f 4d 20 74 32 20 57  LECT 4 FROM t2 W
19b0: 48 45 52 45 20 78 3d 2d 32 0a 20 20 20 20 20 20  HERE x=-2.      
19c0: 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20  UNION ALL.      
19d0: 53 45 4c 45 43 54 20 35 20 46 52 4f 4d 20 74 32  SELECT 5 FROM t2
19e0: 20 57 48 45 52 45 20 78 3d 34 0a 20 20 20 20 20   WHERE x=4.     
19f0: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20   UNION ALL.     
1a00: 20 53 45 4c 45 43 54 20 36 20 46 52 4f 4d 20 74   SELECT 6 FROM t
1a10: 32 20 57 48 45 52 45 20 79 3d 30 0a 20 20 20 20  2 WHERE y=0.    
1a20: 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20    UNION ALL.    
1a30: 20 20 53 45 4c 45 43 54 20 37 20 46 52 4f 4d 20    SELECT 7 FROM 
1a40: 74 32 20 57 48 45 52 45 20 79 3d 31 0a 20 20 20  t2 WHERE y=1.   
1a50: 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20     UNION ALL.   
1a60: 20 20 20 53 45 4c 45 43 54 20 38 20 46 52 4f 4d     SELECT 8 FROM
1a70: 20 74 32 20 57 48 45 52 45 20 79 3d 2d 33 0a 20   t2 WHERE y=-3. 
1a80: 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20       UNION ALL. 
1a90: 20 20 20 20 20 53 45 4c 45 43 54 20 39 20 46 52       SELECT 9 FR
1aa0: 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 33 0a  OM t2 WHERE y=3.
1ab0: 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a        UNION ALL.
1ac0: 20 20 20 20 20 20 53 45 4c 45 43 54 20 31 30 20        SELECT 10 
1ad0: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d  FROM t2 WHERE y=
1ae0: 34 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 31  4.    ).  }.} {1
1af0: 30 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34  0}.do_test tkt14
1b00: 37 33 2d 34 2e 37 20 7b 0a 20 20 65 78 65 63 73  73-4.7 {.  execs
1b10: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
1b20: 28 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 31  (.      SELECT 1
1b30: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78   FROM t2 WHERE x
1b40: 3d 30 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41  =0.      UNION A
1b50: 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20  LL.      SELECT 
1b60: 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  2 FROM t2 WHERE 
1b70: 78 3d 2d 31 0a 20 20 20 20 20 20 55 4e 49 4f 4e  x=-1.      UNION
1b80: 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43   ALL.      SELEC
1b90: 54 20 33 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 3 FROM t2 WHER
1ba0: 45 20 78 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f  E x=2.      UNIO
1bb0: 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45  N ALL.      SELE
1bc0: 43 54 20 34 20 46 52 4f 4d 20 74 32 20 57 48 45  CT 4 FROM t2 WHE
1bd0: 52 45 20 78 3d 2d 32 0a 20 20 20 20 20 20 55 4e  RE x=-2.      UN
1be0: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45  ION ALL.      SE
1bf0: 4c 45 43 54 20 35 20 46 52 4f 4d 20 74 32 20 57  LECT 5 FROM t2 W
1c00: 48 45 52 45 20 78 3d 34 0a 20 20 20 20 20 20 55  HERE x=4.      U
1c10: 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53  NION ALL.      S
1c20: 45 4c 45 43 54 20 36 20 46 52 4f 4d 20 74 32 20  ELECT 6 FROM t2 
1c30: 57 48 45 52 45 20 79 3d 30 0a 20 20 20 20 20 20  WHERE y=0.      
1c40: 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20  UNION ALL.      
1c50: 53 45 4c 45 43 54 20 37 20 46 52 4f 4d 20 74 32  SELECT 7 FROM t2
1c60: 20 57 48 45 52 45 20 79 3d 31 0a 20 20 20 20 20   WHERE y=1.     
1c70: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20   UNION ALL.     
1c80: 20 53 45 4c 45 43 54 20 38 20 46 52 4f 4d 20 74   SELECT 8 FROM t
1c90: 32 20 57 48 45 52 45 20 79 3d 2d 33 0a 20 20 20  2 WHERE y=-3.   
1ca0: 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20     UNION ALL.   
1cb0: 20 20 20 53 45 4c 45 43 54 20 39 20 46 52 4f 4d     SELECT 9 FROM
1cc0: 20 74 32 20 57 48 45 52 45 20 79 3d 33 0a 20 20   t2 WHERE y=3.  
1cd0: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
1ce0: 20 20 20 20 53 45 4c 45 43 54 20 31 30 20 46 52      SELECT 10 FR
1cf0: 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 2d 34  OM t2 WHERE y=-4
1d00: 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 7b 7d  .    ).  }.} {{}
1d10: 7d 0a 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34  }..do_test tkt14
1d20: 37 33 2d 35 2e 33 20 7b 0a 20 20 65 78 65 63 73  73-5.3 {.  execs
1d30: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
1d40: 45 58 49 53 54 53 20 28 0a 20 20 20 20 20 20 53  EXISTS (.      S
1d50: 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 32 20  ELECT 1 FROM t2 
1d60: 57 48 45 52 45 20 78 3d 30 0a 20 20 20 20 20 20  WHERE x=0.      
1d70: 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20  UNION ALL.      
1d80: 53 45 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 32  SELECT 2 FROM t2
1d90: 20 57 48 45 52 45 20 78 3d 31 0a 20 20 20 20 20   WHERE x=1.     
1da0: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20   UNION ALL.     
1db0: 20 53 45 4c 45 43 54 20 33 20 46 52 4f 4d 20 74   SELECT 3 FROM t
1dc0: 32 20 57 48 45 52 45 20 78 3d 32 0a 20 20 20 20  2 WHERE x=2.    
1dd0: 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20    UNION ALL.    
1de0: 20 20 53 45 4c 45 43 54 20 34 20 46 52 4f 4d 20    SELECT 4 FROM 
1df0: 74 32 20 57 48 45 52 45 20 78 3d 33 0a 20 20 20  t2 WHERE x=3.   
1e00: 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20     UNION ALL.   
1e10: 20 20 20 53 45 4c 45 43 54 20 35 20 46 52 4f 4d     SELECT 5 FROM
1e20: 20 74 32 20 57 48 45 52 45 20 78 3d 34 0a 20 20   t2 WHERE x=4.  
1e30: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
1e40: 20 20 20 20 53 45 4c 45 43 54 20 36 20 46 52 4f      SELECT 6 FRO
1e50: 4d 20 74 32 20 57 48 45 52 45 20 79 3d 30 0a 20  M t2 WHERE y=0. 
1e60: 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20       UNION ALL. 
1e70: 20 20 20 20 20 53 45 4c 45 43 54 20 37 20 46 52       SELECT 7 FR
1e80: 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 31 0a  OM t2 WHERE y=1.
1e90: 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a        UNION ALL.
1ea0: 20 20 20 20 20 20 53 45 4c 45 43 54 20 38 20 46        SELECT 8 F
1eb0: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 32  ROM t2 WHERE y=2
1ec0: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c  .      UNION ALL
1ed0: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 39 20  .      SELECT 9 
1ee0: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d  FROM t2 WHERE y=
1ef0: 33 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c  3.      UNION AL
1f00: 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 31  L.      SELECT 1
1f10: 30 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  0 FROM t2 WHERE 
1f20: 79 3d 34 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20  y=4.    ).  }.} 
1f30: 7b 31 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31  {1}.do_test tkt1
1f40: 34 37 33 2d 35 2e 34 20 7b 0a 20 20 65 78 65 63  473-5.4 {.  exec
1f50: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
1f60: 20 45 58 49 53 54 53 20 28 0a 20 20 20 20 20 20   EXISTS (.      
1f70: 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 32  SELECT 1 FROM t2
1f80: 20 57 48 45 52 45 20 78 3d 30 0a 20 20 20 20 20   WHERE x=0.     
1f90: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20   UNION ALL.     
1fa0: 20 53 45 4c 45 43 54 20 32 20 46 52 4f 4d 20 74   SELECT 2 FROM t
1fb0: 32 20 57 48 45 52 45 20 78 3d 2d 31 0a 20 20 20  2 WHERE x=-1.   
1fc0: 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20     UNION ALL.   
1fd0: 20 20 20 53 45 4c 45 43 54 20 33 20 46 52 4f 4d     SELECT 3 FROM
1fe0: 20 74 32 20 57 48 45 52 45 20 78 3d 32 0a 20 20   t2 WHERE x=2.  
1ff0: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
2000: 20 20 20 20 53 45 4c 45 43 54 20 34 20 46 52 4f      SELECT 4 FRO
2010: 4d 20 74 32 20 57 48 45 52 45 20 78 3d 33 0a 20  M t2 WHERE x=3. 
2020: 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20       UNION ALL. 
2030: 20 20 20 20 20 53 45 4c 45 43 54 20 35 20 46 52       SELECT 5 FR
2040: 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 34 0a  OM t2 WHERE x=4.
2050: 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a        UNION ALL.
2060: 20 20 20 20 20 20 53 45 4c 45 43 54 20 36 20 46        SELECT 6 F
2070: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 30  ROM t2 WHERE y=0
2080: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c  .      UNION ALL
2090: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 37 20  .      SELECT 7 
20a0: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d  FROM t2 WHERE y=
20b0: 31 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c  1.      UNION AL
20c0: 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 38  L.      SELECT 8
20d0: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79   FROM t2 WHERE y
20e0: 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41  =2.      UNION A
20f0: 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20  LL.      SELECT 
2100: 39 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  9 FROM t2 WHERE 
2110: 79 3d 33 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20  y=3.      UNION 
2120: 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ALL.      SELECT
2130: 20 31 30 20 46 52 4f 4d 20 74 32 20 57 48 45 52   10 FROM t2 WHER
2140: 45 20 79 3d 34 0a 20 20 20 20 29 0a 20 20 7d 0a  E y=4.    ).  }.
2150: 7d 20 7b 31 7d 0a 0a 64 6f 5f 74 65 73 74 20 74  } {1}..do_test t
2160: 6b 74 31 34 37 33 2d 35 2e 35 20 7b 0a 20 20 65  kt1473-5.5 {.  e
2170: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
2180: 45 43 54 20 45 58 49 53 54 53 20 28 0a 20 20 20  ECT EXISTS (.   
2190: 20 20 20 53 45 4c 45 43 54 20 31 20 46 52 4f 4d     SELECT 1 FROM
21a0: 20 74 32 20 57 48 45 52 45 20 78 3d 30 0a 20 20   t2 WHERE x=0.  
21b0: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
21c0: 20 20 20 20 53 45 4c 45 43 54 20 32 20 46 52 4f      SELECT 2 FRO
21d0: 4d 20 74 32 20 57 48 45 52 45 20 78 3d 2d 31 0a  M t2 WHERE x=-1.
21e0: 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a        UNION ALL.
21f0: 20 20 20 20 20 20 53 45 4c 45 43 54 20 33 20 46        SELECT 3 F
2200: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 32  ROM t2 WHERE x=2
2210: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c  .      UNION ALL
2220: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 34 20  .      SELECT 4 
2230: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d  FROM t2 WHERE x=
2240: 2d 31 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41  -1.      UNION A
2250: 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20  LL.      SELECT 
2260: 35 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  5 FROM t2 WHERE 
2270: 78 3d 34 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20  x=4.      UNION 
2280: 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ALL.      SELECT
2290: 20 36 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   6 FROM t2 WHERE
22a0: 20 79 3d 30 0a 20 20 20 20 20 20 55 4e 49 4f 4e   y=0.      UNION
22b0: 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43   ALL.      SELEC
22c0: 54 20 37 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 7 FROM t2 WHER
22d0: 45 20 79 3d 31 0a 20 20 20 20 20 20 55 4e 49 4f  E y=1.      UNIO
22e0: 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45  N ALL.      SELE
22f0: 43 54 20 38 20 46 52 4f 4d 20 74 32 20 57 48 45  CT 8 FROM t2 WHE
2300: 52 45 20 79 3d 32 0a 20 20 20 20 20 20 55 4e 49  RE y=2.      UNI
2310: 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c  ON ALL.      SEL
2320: 45 43 54 20 39 20 46 52 4f 4d 20 74 32 20 57 48  ECT 9 FROM t2 WH
2330: 45 52 45 20 79 3d 33 0a 20 20 20 20 20 20 55 4e  ERE y=3.      UN
2340: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45  ION ALL.      SE
2350: 4c 45 43 54 20 31 30 20 46 52 4f 4d 20 74 32 20  LECT 10 FROM t2 
2360: 57 48 45 52 45 20 79 3d 2d 34 0a 20 20 20 20 29  WHERE y=-4.    )
2370: 0a 20 20 7d 0a 7d 20 7b 31 7d 0a 64 6f 5f 74 65  .  }.} {1}.do_te
2380: 73 74 20 74 6b 74 31 34 37 33 2d 35 2e 36 20 7b  st tkt1473-5.6 {
2390: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
23a0: 20 53 45 4c 45 43 54 20 45 58 49 53 54 53 20 28   SELECT EXISTS (
23b0: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 31 20  .      SELECT 1 
23c0: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d  FROM t2 WHERE x=
23d0: 30 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c  0.      UNION AL
23e0: 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 32  L.      SELECT 2
23f0: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78   FROM t2 WHERE x
2400: 3d 2d 31 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20  =-1.      UNION 
2410: 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ALL.      SELECT
2420: 20 33 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   3 FROM t2 WHERE
2430: 20 78 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e   x=2.      UNION
2440: 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43   ALL.      SELEC
2450: 54 20 34 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 4 FROM t2 WHER
2460: 45 20 78 3d 2d 32 0a 20 20 20 20 20 20 55 4e 49  E x=-2.      UNI
2470: 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c  ON ALL.      SEL
2480: 45 43 54 20 35 20 46 52 4f 4d 20 74 32 20 57 48  ECT 5 FROM t2 WH
2490: 45 52 45 20 78 3d 34 0a 20 20 20 20 20 20 55 4e  ERE x=4.      UN
24a0: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45  ION ALL.      SE
24b0: 4c 45 43 54 20 36 20 46 52 4f 4d 20 74 32 20 57  LECT 6 FROM t2 W
24c0: 48 45 52 45 20 79 3d 30 0a 20 20 20 20 20 20 55  HERE y=0.      U
24d0: 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53  NION ALL.      S
24e0: 45 4c 45 43 54 20 37 20 46 52 4f 4d 20 74 32 20  ELECT 7 FROM t2 
24f0: 57 48 45 52 45 20 79 3d 31 0a 20 20 20 20 20 20  WHERE y=1.      
2500: 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20  UNION ALL.      
2510: 53 45 4c 45 43 54 20 38 20 46 52 4f 4d 20 74 32  SELECT 8 FROM t2
2520: 20 57 48 45 52 45 20 79 3d 2d 33 0a 20 20 20 20   WHERE y=-3.    
2530: 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20    UNION ALL.    
2540: 20 20 53 45 4c 45 43 54 20 39 20 46 52 4f 4d 20    SELECT 9 FROM 
2550: 74 32 20 57 48 45 52 45 20 79 3d 33 0a 20 20 20  t2 WHERE y=3.   
2560: 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20     UNION ALL.   
2570: 20 20 20 53 45 4c 45 43 54 20 31 30 20 46 52 4f     SELECT 10 FRO
2580: 4d 20 74 32 20 57 48 45 52 45 20 79 3d 34 0a 20  M t2 WHERE y=4. 
2590: 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 31 7d 0a 64     ).  }.} {1}.d
25a0: 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33 2d 35  o_test tkt1473-5
25b0: 2e 37 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .7 {.  execsql {
25c0: 0a 20 20 20 20 53 45 4c 45 43 54 20 45 58 49 53  .    SELECT EXIS
25d0: 54 53 20 28 0a 20 20 20 20 20 20 53 45 4c 45 43  TS (.      SELEC
25e0: 54 20 31 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 1 FROM t2 WHER
25f0: 45 20 78 3d 30 0a 20 20 20 20 20 20 55 4e 49 4f  E x=0.      UNIO
2600: 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45  N ALL.      SELE
2610: 43 54 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45  CT 2 FROM t2 WHE
2620: 52 45 20 78 3d 2d 31 0a 20 20 20 20 20 20 55 4e  RE x=-1.      UN
2630: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53 45  ION ALL.      SE
2640: 4c 45 43 54 20 33 20 46 52 4f 4d 20 74 32 20 57  LECT 3 FROM t2 W
2650: 48 45 52 45 20 78 3d 32 0a 20 20 20 20 20 20 55  HERE x=2.      U
2660: 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20 20 53  NION ALL.      S
2670: 45 4c 45 43 54 20 34 20 46 52 4f 4d 20 74 32 20  ELECT 4 FROM t2 
2680: 57 48 45 52 45 20 78 3d 2d 32 0a 20 20 20 20 20  WHERE x=-2.     
2690: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 20   UNION ALL.     
26a0: 20 53 45 4c 45 43 54 20 35 20 46 52 4f 4d 20 74   SELECT 5 FROM t
26b0: 32 20 57 48 45 52 45 20 78 3d 34 0a 20 20 20 20  2 WHERE x=4.    
26c0: 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20    UNION ALL.    
26d0: 20 20 53 45 4c 45 43 54 20 36 20 46 52 4f 4d 20    SELECT 6 FROM 
26e0: 74 32 20 57 48 45 52 45 20 79 3d 30 0a 20 20 20  t2 WHERE y=0.   
26f0: 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20     UNION ALL.   
2700: 20 20 20 53 45 4c 45 43 54 20 37 20 46 52 4f 4d     SELECT 7 FROM
2710: 20 74 32 20 57 48 45 52 45 20 79 3d 31 0a 20 20   t2 WHERE y=1.  
2720: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
2730: 20 20 20 20 53 45 4c 45 43 54 20 38 20 46 52 4f      SELECT 8 FRO
2740: 4d 20 74 32 20 57 48 45 52 45 20 79 3d 2d 33 0a  M t2 WHERE y=-3.
2750: 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a        UNION ALL.
2760: 20 20 20 20 20 20 53 45 4c 45 43 54 20 39 20 46        SELECT 9 F
2770: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 33  ROM t2 WHERE y=3
2780: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c  .      UNION ALL
2790: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 31 30  .      SELECT 10
27a0: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79   FROM t2 WHERE y
27b0: 3d 2d 34 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20  =-4.    ).  }.} 
27c0: 7b 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 74 6b 74  {0}..do_test tkt
27d0: 31 34 37 33 2d 36 2e 33 20 7b 0a 20 20 65 78 65  1473-6.3 {.  exe
27e0: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
27f0: 54 20 45 58 49 53 54 53 20 28 0a 20 20 20 20 20  T EXISTS (.     
2800: 20 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74   SELECT 1 FROM t
2810: 32 20 57 48 45 52 45 20 78 3d 30 0a 20 20 20 20  2 WHERE x=0.    
2820: 20 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45    UNION.      SE
2830: 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 32 20 57  LECT 2 FROM t2 W
2840: 48 45 52 45 20 78 3d 31 0a 20 20 20 20 20 20 55  HERE x=1.      U
2850: 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43  NION.      SELEC
2860: 54 20 33 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 3 FROM t2 WHER
2870: 45 20 78 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f  E x=2.      UNIO
2880: 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 34  N.      SELECT 4
2890: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78   FROM t2 WHERE x
28a0: 3d 33 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20  =3.      UNION. 
28b0: 20 20 20 20 20 53 45 4c 45 43 54 20 35 20 46 52       SELECT 5 FR
28c0: 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 34 0a  OM t2 WHERE x=4.
28d0: 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20 20        UNION.    
28e0: 20 20 53 45 4c 45 43 54 20 36 20 46 52 4f 4d 20    SELECT 6 FROM 
28f0: 74 32 20 57 48 45 52 45 20 79 3d 30 0a 20 20 20  t2 WHERE y=0.   
2900: 20 20 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53     UNION.      S
2910: 45 4c 45 43 54 20 37 20 46 52 4f 4d 20 74 32 20  ELECT 7 FROM t2 
2920: 57 48 45 52 45 20 79 3d 31 0a 20 20 20 20 20 20  WHERE y=1.      
2930: 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45  UNION.      SELE
2940: 43 54 20 38 20 46 52 4f 4d 20 74 32 20 57 48 45  CT 8 FROM t2 WHE
2950: 52 45 20 79 3d 32 0a 20 20 20 20 20 20 55 4e 49  RE y=2.      UNI
2960: 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20  ON.      SELECT 
2970: 39 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  9 FROM t2 WHERE 
2980: 79 3d 33 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a  y=3.      UNION.
2990: 20 20 20 20 20 20 53 45 4c 45 43 54 20 31 30 20        SELECT 10 
29a0: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d  FROM t2 WHERE y=
29b0: 34 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 31  4.    ).  }.} {1
29c0: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37  }.do_test tkt147
29d0: 33 2d 36 2e 34 20 7b 0a 20 20 65 78 65 63 73 71  3-6.4 {.  execsq
29e0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 45  l {.    SELECT E
29f0: 58 49 53 54 53 20 28 0a 20 20 20 20 20 20 53 45  XISTS (.      SE
2a00: 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 32 20 57  LECT 1 FROM t2 W
2a10: 48 45 52 45 20 78 3d 30 0a 20 20 20 20 20 20 55  HERE x=0.      U
2a20: 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43  NION.      SELEC
2a30: 54 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 2 FROM t2 WHER
2a40: 45 20 78 3d 2d 31 0a 20 20 20 20 20 20 55 4e 49  E x=-1.      UNI
2a50: 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20  ON.      SELECT 
2a60: 33 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  3 FROM t2 WHERE 
2a70: 78 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a  x=2.      UNION.
2a80: 20 20 20 20 20 20 53 45 4c 45 43 54 20 34 20 46        SELECT 4 F
2a90: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 33  ROM t2 WHERE x=3
2aa0: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20  .      UNION.   
2ab0: 20 20 20 53 45 4c 45 43 54 20 35 20 46 52 4f 4d     SELECT 5 FROM
2ac0: 20 74 32 20 57 48 45 52 45 20 78 3d 34 0a 20 20   t2 WHERE x=4.  
2ad0: 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20      UNION.      
2ae0: 53 45 4c 45 43 54 20 36 20 46 52 4f 4d 20 74 32  SELECT 6 FROM t2
2af0: 20 57 48 45 52 45 20 79 3d 30 0a 20 20 20 20 20   WHERE y=0.     
2b00: 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c   UNION.      SEL
2b10: 45 43 54 20 37 20 46 52 4f 4d 20 74 32 20 57 48  ECT 7 FROM t2 WH
2b20: 45 52 45 20 79 3d 31 0a 20 20 20 20 20 20 55 4e  ERE y=1.      UN
2b30: 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ION.      SELECT
2b40: 20 38 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   8 FROM t2 WHERE
2b50: 20 79 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e   y=2.      UNION
2b60: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 39 20  .      SELECT 9 
2b70: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d  FROM t2 WHERE y=
2b80: 33 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20  3.      UNION.  
2b90: 20 20 20 20 53 45 4c 45 43 54 20 31 30 20 46 52      SELECT 10 FR
2ba0: 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 34 0a  OM t2 WHERE y=4.
2bb0: 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 31 7d 0a      ).  }.} {1}.
2bc0: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33  .do_test tkt1473
2bd0: 2d 36 2e 35 20 7b 0a 20 20 65 78 65 63 73 71 6c  -6.5 {.  execsql
2be0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 45 58   {.    SELECT EX
2bf0: 49 53 54 53 20 28 0a 20 20 20 20 20 20 53 45 4c  ISTS (.      SEL
2c00: 45 43 54 20 31 20 46 52 4f 4d 20 74 32 20 57 48  ECT 1 FROM t2 WH
2c10: 45 52 45 20 78 3d 30 0a 20 20 20 20 20 20 55 4e  ERE x=0.      UN
2c20: 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ION.      SELECT
2c30: 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   2 FROM t2 WHERE
2c40: 20 78 3d 2d 31 0a 20 20 20 20 20 20 55 4e 49 4f   x=-1.      UNIO
2c50: 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 33  N.      SELECT 3
2c60: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78   FROM t2 WHERE x
2c70: 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20  =2.      UNION. 
2c80: 20 20 20 20 20 53 45 4c 45 43 54 20 34 20 46 52       SELECT 4 FR
2c90: 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 2d 31  OM t2 WHERE x=-1
2ca0: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20  .      UNION.   
2cb0: 20 20 20 53 45 4c 45 43 54 20 35 20 46 52 4f 4d     SELECT 5 FROM
2cc0: 20 74 32 20 57 48 45 52 45 20 78 3d 34 0a 20 20   t2 WHERE x=4.  
2cd0: 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20      UNION.      
2ce0: 53 45 4c 45 43 54 20 36 20 46 52 4f 4d 20 74 32  SELECT 6 FROM t2
2cf0: 20 57 48 45 52 45 20 79 3d 30 0a 20 20 20 20 20   WHERE y=0.     
2d00: 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c   UNION.      SEL
2d10: 45 43 54 20 37 20 46 52 4f 4d 20 74 32 20 57 48  ECT 7 FROM t2 WH
2d20: 45 52 45 20 79 3d 31 0a 20 20 20 20 20 20 55 4e  ERE y=1.      UN
2d30: 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ION.      SELECT
2d40: 20 38 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   8 FROM t2 WHERE
2d50: 20 79 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e   y=2.      UNION
2d60: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 39 20  .      SELECT 9 
2d70: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d  FROM t2 WHERE y=
2d80: 33 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20  3.      UNION.  
2d90: 20 20 20 20 53 45 4c 45 43 54 20 31 30 20 46 52      SELECT 10 FR
2da0: 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 2d 34  OM t2 WHERE y=-4
2db0: 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 31 7d  .    ).  }.} {1}
2dc0: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33  .do_test tkt1473
2dd0: 2d 36 2e 36 20 7b 0a 20 20 65 78 65 63 73 71 6c  -6.6 {.  execsql
2de0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 45 58   {.    SELECT EX
2df0: 49 53 54 53 20 28 0a 20 20 20 20 20 20 53 45 4c  ISTS (.      SEL
2e00: 45 43 54 20 31 20 46 52 4f 4d 20 74 32 20 57 48  ECT 1 FROM t2 WH
2e10: 45 52 45 20 78 3d 30 0a 20 20 20 20 20 20 55 4e  ERE x=0.      UN
2e20: 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ION.      SELECT
2e30: 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   2 FROM t2 WHERE
2e40: 20 78 3d 2d 31 0a 20 20 20 20 20 20 55 4e 49 4f   x=-1.      UNIO
2e50: 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 33  N.      SELECT 3
2e60: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78   FROM t2 WHERE x
2e70: 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20  =2.      UNION. 
2e80: 20 20 20 20 20 53 45 4c 45 43 54 20 34 20 46 52       SELECT 4 FR
2e90: 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 2d 32  OM t2 WHERE x=-2
2ea0: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20  .      UNION.   
2eb0: 20 20 20 53 45 4c 45 43 54 20 35 20 46 52 4f 4d     SELECT 5 FROM
2ec0: 20 74 32 20 57 48 45 52 45 20 78 3d 34 0a 20 20   t2 WHERE x=4.  
2ed0: 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20      UNION.      
2ee0: 53 45 4c 45 43 54 20 36 20 46 52 4f 4d 20 74 32  SELECT 6 FROM t2
2ef0: 20 57 48 45 52 45 20 79 3d 30 0a 20 20 20 20 20   WHERE y=0.     
2f00: 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c   UNION.      SEL
2f10: 45 43 54 20 37 20 46 52 4f 4d 20 74 32 20 57 48  ECT 7 FROM t2 WH
2f20: 45 52 45 20 79 3d 31 0a 20 20 20 20 20 20 55 4e  ERE y=1.      UN
2f30: 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ION.      SELECT
2f40: 20 38 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   8 FROM t2 WHERE
2f50: 20 79 3d 2d 33 0a 20 20 20 20 20 20 55 4e 49 4f   y=-3.      UNIO
2f60: 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 39  N.      SELECT 9
2f70: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79   FROM t2 WHERE y
2f80: 3d 33 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20  =3.      UNION. 
2f90: 20 20 20 20 20 53 45 4c 45 43 54 20 31 30 20 46       SELECT 10 F
2fa0: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 34  ROM t2 WHERE y=4
2fb0: 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 31 7d  .    ).  }.} {1}
2fc0: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33  .do_test tkt1473
2fd0: 2d 36 2e 37 20 7b 0a 20 20 65 78 65 63 73 71 6c  -6.7 {.  execsql
2fe0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 45 58   {.    SELECT EX
2ff0: 49 53 54 53 20 28 0a 20 20 20 20 20 20 53 45 4c  ISTS (.      SEL
3000: 45 43 54 20 31 20 46 52 4f 4d 20 74 32 20 57 48  ECT 1 FROM t2 WH
3010: 45 52 45 20 78 3d 30 0a 20 20 20 20 20 20 55 4e  ERE x=0.      UN
3020: 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ION.      SELECT
3030: 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   2 FROM t2 WHERE
3040: 20 78 3d 2d 31 0a 20 20 20 20 20 20 55 4e 49 4f   x=-1.      UNIO
3050: 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 33  N.      SELECT 3
3060: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78   FROM t2 WHERE x
3070: 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20  =2.      UNION. 
3080: 20 20 20 20 20 53 45 4c 45 43 54 20 34 20 46 52       SELECT 4 FR
3090: 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 2d 32  OM t2 WHERE x=-2
30a0: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20  .      UNION.   
30b0: 20 20 20 53 45 4c 45 43 54 20 35 20 46 52 4f 4d     SELECT 5 FROM
30c0: 20 74 32 20 57 48 45 52 45 20 78 3d 34 0a 20 20   t2 WHERE x=4.  
30d0: 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20      UNION.      
30e0: 53 45 4c 45 43 54 20 36 20 46 52 4f 4d 20 74 32  SELECT 6 FROM t2
30f0: 20 57 48 45 52 45 20 79 3d 30 0a 20 20 20 20 20   WHERE y=0.     
3100: 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c   UNION.      SEL
3110: 45 43 54 20 37 20 46 52 4f 4d 20 74 32 20 57 48  ECT 7 FROM t2 WH
3120: 45 52 45 20 79 3d 31 0a 20 20 20 20 20 20 55 4e  ERE y=1.      UN
3130: 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ION.      SELECT
3140: 20 38 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   8 FROM t2 WHERE
3150: 20 79 3d 2d 33 0a 20 20 20 20 20 20 55 4e 49 4f   y=-3.      UNIO
3160: 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 39  N.      SELECT 9
3170: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79   FROM t2 WHERE y
3180: 3d 33 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20  =3.      UNION. 
3190: 20 20 20 20 20 53 45 4c 45 43 54 20 31 30 20 46       SELECT 10 F
31a0: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 2d  ROM t2 WHERE y=-
31b0: 34 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 30  4.    ).  }.} {0
31c0: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37  }.do_test tkt147
31d0: 33 2d 36 2e 38 20 7b 0a 20 20 65 78 65 63 73 71  3-6.8 {.  execsq
31e0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 45  l {.    SELECT E
31f0: 58 49 53 54 53 20 28 0a 20 20 20 20 20 20 53 45  XISTS (.      SE
3200: 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 32 20 57  LECT 1 FROM t2 W
3210: 48 45 52 45 20 78 3d 30 0a 20 20 20 20 20 20 55  HERE x=0.      U
3220: 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43  NION.      SELEC
3230: 54 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 2 FROM t2 WHER
3240: 45 20 78 3d 2d 31 0a 20 20 20 20 20 20 55 4e 49  E x=-1.      UNI
3250: 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20  ON.      SELECT 
3260: 33 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  3 FROM t2 WHERE 
3270: 78 3d 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a  x=2.      UNION.
3280: 20 20 20 20 20 20 53 45 4c 45 43 54 20 34 20 46        SELECT 4 F
3290: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 2d  ROM t2 WHERE x=-
32a0: 32 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20  2.      UNION.  
32b0: 20 20 20 20 53 45 4c 45 43 54 20 35 20 46 52 4f      SELECT 5 FRO
32c0: 4d 20 74 32 20 57 48 45 52 45 20 78 3d 34 0a 20  M t2 WHERE x=4. 
32d0: 20 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20       UNION ALL. 
32e0: 20 20 20 20 20 53 45 4c 45 43 54 20 36 20 46 52       SELECT 6 FR
32f0: 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 30 0a  OM t2 WHERE y=0.
3300: 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20 20        UNION.    
3310: 20 20 53 45 4c 45 43 54 20 37 20 46 52 4f 4d 20    SELECT 7 FROM 
3320: 74 32 20 57 48 45 52 45 20 79 3d 31 0a 20 20 20  t2 WHERE y=1.   
3330: 20 20 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53     UNION.      S
3340: 45 4c 45 43 54 20 38 20 46 52 4f 4d 20 74 32 20  ELECT 8 FROM t2 
3350: 57 48 45 52 45 20 79 3d 2d 33 0a 20 20 20 20 20  WHERE y=-3.     
3360: 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c   UNION.      SEL
3370: 45 43 54 20 39 20 46 52 4f 4d 20 74 32 20 57 48  ECT 9 FROM t2 WH
3380: 45 52 45 20 79 3d 33 0a 20 20 20 20 20 20 55 4e  ERE y=3.      UN
3390: 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ION.      SELECT
33a0: 20 31 30 20 46 52 4f 4d 20 74 32 20 57 48 45 52   10 FROM t2 WHER
33b0: 45 20 79 3d 34 0a 20 20 20 20 29 0a 20 20 7d 0a  E y=4.    ).  }.
33c0: 7d 20 7b 31 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  } {1}.do_test tk
33d0: 74 31 34 37 33 2d 36 2e 39 20 7b 0a 20 20 65 78  t1473-6.9 {.  ex
33e0: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
33f0: 43 54 20 45 58 49 53 54 53 20 28 0a 20 20 20 20  CT EXISTS (.    
3400: 20 20 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20    SELECT 1 FROM 
3410: 74 32 20 57 48 45 52 45 20 78 3d 30 0a 20 20 20  t2 WHERE x=0.   
3420: 20 20 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53     UNION.      S
3430: 45 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 32 20  ELECT 2 FROM t2 
3440: 57 48 45 52 45 20 78 3d 2d 31 0a 20 20 20 20 20  WHERE x=-1.     
3450: 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c   UNION.      SEL
3460: 45 43 54 20 33 20 46 52 4f 4d 20 74 32 20 57 48  ECT 3 FROM t2 WH
3470: 45 52 45 20 78 3d 32 0a 20 20 20 20 20 20 55 4e  ERE x=2.      UN
3480: 49 4f 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ION.      SELECT
3490: 20 34 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   4 FROM t2 WHERE
34a0: 20 78 3d 2d 32 0a 20 20 20 20 20 20 55 4e 49 4f   x=-2.      UNIO
34b0: 4e 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 35  N.      SELECT 5
34c0: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78   FROM t2 WHERE x
34d0: 3d 34 0a 20 20 20 20 20 20 55 4e 49 4f 4e 20 41  =4.      UNION A
34e0: 4c 4c 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20  LL.      SELECT 
34f0: 36 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  6 FROM t2 WHERE 
3500: 79 3d 30 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a  y=0.      UNION.
3510: 20 20 20 20 20 20 53 45 4c 45 43 54 20 37 20 46        SELECT 7 F
3520: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 31  ROM t2 WHERE y=1
3530: 0a 20 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20  .      UNION.   
3540: 20 20 20 53 45 4c 45 43 54 20 38 20 46 52 4f 4d     SELECT 8 FROM
3550: 20 74 32 20 57 48 45 52 45 20 79 3d 2d 33 0a 20   t2 WHERE y=-3. 
3560: 20 20 20 20 20 55 4e 49 4f 4e 0a 20 20 20 20 20       UNION.     
3570: 20 53 45 4c 45 43 54 20 39 20 46 52 4f 4d 20 74   SELECT 9 FROM t
3580: 32 20 57 48 45 52 45 20 79 3d 33 0a 20 20 20 20  2 WHERE y=3.    
3590: 20 20 55 4e 49 4f 4e 0a 20 20 20 20 20 20 53 45    UNION.      SE
35a0: 4c 45 43 54 20 31 30 20 46 52 4f 4d 20 74 32 20  LECT 10 FROM t2 
35b0: 57 48 45 52 45 20 79 3d 2d 34 0a 20 20 20 20 29  WHERE y=-4.    )
35c0: 0a 20 20 7d 0a 7d 20 7b 30 7d 0a 0a 64 6f 5f 74  .  }.} {0}..do_t
35d0: 65 73 74 20 74 6b 74 31 34 37 33 2d 37 2e 31 20  est tkt1473-7.1 
35e0: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
35f0: 20 20 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20    SELECT 1 FROM 
3600: 74 32 20 57 48 45 52 45 20 78 3d 31 20 45 58 43  t2 WHERE x=1 EXC
3610: 45 50 54 20 53 45 4c 45 43 54 20 32 20 46 52 4f  EPT SELECT 2 FRO
3620: 4d 20 74 32 20 57 48 45 52 45 20 79 3d 32 0a 20  M t2 WHERE y=2. 
3630: 20 7d 0a 7d 20 7b 31 7d 0a 64 6f 5f 74 65 73 74   }.} {1}.do_test
3640: 20 74 6b 74 31 34 37 33 2d 37 2e 32 20 7b 0a 20   tkt1473-7.2 {. 
3650: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
3660: 45 4c 45 43 54 20 28 0a 20 20 20 20 20 20 53 45  ELECT (.      SE
3670: 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 32 20 57  LECT 1 FROM t2 W
3680: 48 45 52 45 20 78 3d 31 20 45 58 43 45 50 54 20  HERE x=1 EXCEPT 
3690: 53 45 4c 45 43 54 20 32 20 46 52 4f 4d 20 74 32  SELECT 2 FROM t2
36a0: 20 57 48 45 52 45 20 79 3d 32 0a 20 20 20 20 29   WHERE y=2.    )
36b0: 0a 20 20 7d 0a 7d 20 7b 31 7d 0a 64 6f 5f 74 65  .  }.} {1}.do_te
36c0: 73 74 20 74 6b 74 31 34 37 33 2d 37 2e 33 20 7b  st tkt1473-7.3 {
36d0: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
36e0: 20 53 45 4c 45 43 54 20 45 58 49 53 54 53 20 28   SELECT EXISTS (
36f0: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 31 20  .      SELECT 1 
3700: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d  FROM t2 WHERE x=
3710: 31 20 45 58 43 45 50 54 20 53 45 4c 45 43 54 20  1 EXCEPT SELECT 
3720: 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  2 FROM t2 WHERE 
3730: 79 3d 32 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20  y=2.    ).  }.} 
3740: 7b 31 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31  {1}.do_test tkt1
3750: 34 37 33 2d 37 2e 34 20 7b 0a 20 20 65 78 65 63  473-7.4 {.  exec
3760: 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  sql {.    SELECT
3770: 20 28 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20   (.      SELECT 
3780: 31 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  1 FROM t2 WHERE 
3790: 78 3d 30 20 45 58 43 45 50 54 20 53 45 4c 45 43  x=0 EXCEPT SELEC
37a0: 54 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 2 FROM t2 WHER
37b0: 45 20 79 3d 32 0a 20 20 20 20 29 0a 20 20 7d 0a  E y=2.    ).  }.
37c0: 7d 20 7b 7b 7d 7d 0a 64 6f 5f 74 65 73 74 20 74  } {{}}.do_test t
37d0: 6b 74 31 34 37 33 2d 37 2e 35 20 7b 0a 20 20 65  kt1473-7.5 {.  e
37e0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
37f0: 45 43 54 20 45 58 49 53 54 53 20 28 0a 20 20 20  ECT EXISTS (.   
3800: 20 20 20 53 45 4c 45 43 54 20 31 20 46 52 4f 4d     SELECT 1 FROM
3810: 20 74 32 20 57 48 45 52 45 20 78 3d 30 20 45 58   t2 WHERE x=0 EX
3820: 43 45 50 54 20 53 45 4c 45 43 54 20 32 20 46 52  CEPT SELECT 2 FR
3830: 4f 4d 20 74 32 20 57 48 45 52 45 20 79 3d 32 0a  OM t2 WHERE y=2.
3840: 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 30 7d 0a      ).  }.} {0}.
3850: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33  .do_test tkt1473
3860: 2d 38 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c  -8.1 {.  execsql
3870: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 31 20   {.    SELECT 1 
3880: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d  FROM t2 WHERE x=
3890: 31 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45  1 INTERSECT SELE
38a0: 43 54 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45  CT 2 FROM t2 WHE
38b0: 52 45 20 79 3d 32 0a 20 20 7d 0a 7d 20 7b 7d 0a  RE y=2.  }.} {}.
38c0: 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33 2d  do_test tkt1473-
38d0: 38 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  8.1 {.  execsql 
38e0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 31 20 46  {.    SELECT 1 F
38f0: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 31  ROM t2 WHERE x=1
3900: 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43   INTERSECT SELEC
3910: 54 20 31 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 1 FROM t2 WHER
3920: 45 20 79 3d 32 0a 20 20 7d 0a 7d 20 7b 31 7d 0a  E y=2.  }.} {1}.
3930: 64 6f 5f 74 65 73 74 20 74 6b 74 31 34 37 33 2d  do_test tkt1473-
3940: 38 2e 33 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  8.3 {.  execsql 
3950: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 28 0a 20  {.    SELECT (. 
3960: 20 20 20 20 20 53 45 4c 45 43 54 20 31 20 46 52       SELECT 1 FR
3970: 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 31 20  OM t2 WHERE x=1 
3980: 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43 54  INTERSECT SELECT
3990: 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   2 FROM t2 WHERE
39a0: 20 79 3d 32 0a 20 20 20 20 29 0a 20 20 7d 0a 7d   y=2.    ).  }.}
39b0: 20 7b 7b 7d 7d 0a 64 6f 5f 74 65 73 74 20 74 6b   {{}}.do_test tk
39c0: 74 31 34 37 33 2d 38 2e 34 20 7b 0a 20 20 65 78  t1473-8.4 {.  ex
39d0: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
39e0: 43 54 20 28 0a 20 20 20 20 20 20 53 45 4c 45 43  CT (.      SELEC
39f0: 54 20 31 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T 1 FROM t2 WHER
3a00: 45 20 78 3d 31 20 49 4e 54 45 52 53 45 43 54 20  E x=1 INTERSECT 
3a10: 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 74 32  SELECT 1 FROM t2
3a20: 20 57 48 45 52 45 20 79 3d 32 0a 20 20 20 20 29   WHERE y=2.    )
3a30: 0a 20 20 7d 0a 7d 20 7b 31 7d 0a 64 6f 5f 74 65  .  }.} {1}.do_te
3a40: 73 74 20 74 6b 74 31 34 37 33 2d 38 2e 35 20 7b  st tkt1473-8.5 {
3a50: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
3a60: 20 53 45 4c 45 43 54 20 45 58 49 53 54 53 20 28   SELECT EXISTS (
3a70: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 31 20  .      SELECT 1 
3a80: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d  FROM t2 WHERE x=
3a90: 31 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45  1 INTERSECT SELE
3aa0: 43 54 20 32 20 46 52 4f 4d 20 74 32 20 57 48 45  CT 2 FROM t2 WHE
3ab0: 52 45 20 79 3d 32 0a 20 20 20 20 29 0a 20 20 7d  RE y=2.    ).  }
3ac0: 0a 7d 20 7b 30 7d 0a 64 6f 5f 74 65 73 74 20 74  .} {0}.do_test t
3ad0: 6b 74 31 34 37 33 2d 38 2e 36 20 7b 0a 20 20 65  kt1473-8.6 {.  e
3ae0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
3af0: 45 43 54 20 45 58 49 53 54 53 20 28 0a 20 20 20  ECT EXISTS (.   
3b00: 20 20 20 53 45 4c 45 43 54 20 31 20 46 52 4f 4d     SELECT 1 FROM
3b10: 20 74 32 20 57 48 45 52 45 20 78 3d 31 20 49 4e   t2 WHERE x=1 IN
3b20: 54 45 52 53 45 43 54 20 53 45 4c 45 43 54 20 31  TERSECT SELECT 1
3b30: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 79   FROM t2 WHERE y
3b40: 3d 32 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b  =2.    ).  }.} {
3b50: 31 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 31 34  1}.do_test tkt14
3b60: 37 33 2d 38 2e 37 20 7b 0a 20 20 65 78 65 63 73  73-8.7 {.  execs
3b70: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
3b80: 28 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 31  (.      SELECT 1
3b90: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 78   FROM t2 WHERE x
3ba0: 3d 30 20 49 4e 54 45 52 53 45 43 54 20 53 45 4c  =0 INTERSECT SEL
3bb0: 45 43 54 20 31 20 46 52 4f 4d 20 74 32 20 57 48  ECT 1 FROM t2 WH
3bc0: 45 52 45 20 79 3d 32 0a 20 20 20 20 29 0a 20 20  ERE y=2.    ).  
3bd0: 7d 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f 74 65 73 74  }.} {{}}.do_test
3be0: 20 74 6b 74 31 34 37 33 2d 38 2e 38 20 7b 0a 20   tkt1473-8.8 {. 
3bf0: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
3c00: 45 4c 45 43 54 20 45 58 49 53 54 53 20 28 0a 20  ELECT EXISTS (. 
3c10: 20 20 20 20 20 53 45 4c 45 43 54 20 31 20 46 52       SELECT 1 FR
3c20: 4f 4d 20 74 32 20 57 48 45 52 45 20 78 3d 31 20  OM t2 WHERE x=1 
3c30: 49 4e 54 45 52 53 45 43 54 20 53 45 4c 45 43 54  INTERSECT SELECT
3c40: 20 31 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   1 FROM t2 WHERE
3c50: 20 79 3d 30 0a 20 20 20 20 29 0a 20 20 7d 0a 7d   y=0.    ).  }.}
3c60: 20 7b 30 7d 0a 0a 0a 0a 0a 66 69 6e 69 73 68 5f   {0}.....finish_
3c70: 74 65 73 74 0a                                   test.