/ Hex Artifact Content
Login

Artifact 4f9a9319ceea74a16769618bd3105a690c0d1ba0:


0000: 23 20 32 30 30 38 20 46 65 62 20 36 0a 23 0a 23  # 2008 Feb 6.#.#
0010: 20 54 68 65 20 61 75 74 68 6f 72 20 64 69 73 63   The author disc
0020: 6c 61 69 6d 73 20 63 6f 70 79 72 69 67 68 74 20  laims copyright 
0030: 74 6f 20 74 68 69 73 20 73 6f 75 72 63 65 20 63  to this source c
0040: 6f 64 65 2e 20 49 6e 20 70 6c 61 63 65 20 6f 66  ode. In place of
0050: 0a 23 20 61 20 6c 65 67 61 6c 20 6e 6f 74 69 63  .# a legal notic
0060: 65 2c 20 68 65 72 65 20 69 73 20 61 20 62 6c 65  e, here is a ble
0070: 73 73 69 6e 67 3a 0a 23 0a 23 20 20 20 20 4d 61  ssing:.#.#    Ma
0080: 79 20 79 6f 75 20 64 6f 20 67 6f 6f 64 20 61 6e  y you do good an
0090: 64 20 6e 6f 74 20 65 76 69 6c 2e 0a 23 20 20 20  d not evil..#   
00a0: 20 4d 61 79 20 79 6f 75 20 66 69 6e 64 20 66 6f   May you find fo
00b0: 72 67 69 76 65 6e 65 73 73 20 66 6f 72 20 79 6f  rgiveness for yo
00c0: 75 72 73 65 6c 66 20 61 6e 64 20 66 6f 72 67 69  urself and forgi
00d0: 76 65 20 6f 74 68 65 72 73 2e 0a 23 20 20 20 20  ve others..#    
00e0: 4d 61 79 20 79 6f 75 20 73 68 61 72 65 20 66 72  May you share fr
00f0: 65 65 6c 79 2c 20 6e 65 76 65 72 20 74 61 6b 69  eely, never taki
0100: 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20 79 6f 75  ng more than you
0110: 20 67 69 76 65 2e 0a 23 0a 23 2a 2a 2a 2a 2a 2a   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 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20  *.#.# This file 
0170: 69 73 20 74 6f 20 74 65 73 74 20 74 68 61 74 20  is to test that 
0180: 74 69 63 6b 65 74 20 23 32 39 32 37 20 69 73 20  ticket #2927 is 
0190: 66 69 78 65 64 2e 0a 23 0a 23 20 24 49 64 3a 20  fixed..#.# $Id: 
01a0: 74 6b 74 32 39 32 37 2e 74 65 73 74 2c 76 20 31  tkt2927.test,v 1
01b0: 2e 33 20 32 30 30 38 2f 30 37 2f 31 32 20 31 34  .3 2008/07/12 14
01c0: 3a 35 32 3a 32 31 20 64 72 68 20 45 78 70 20 24  :52:21 drh Exp $
01d0: 0a 23 0a 0a 73 65 74 20 74 65 73 74 64 69 72 20  .#..set testdir 
01e0: 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 24 61  [file dirname $a
01f0: 72 67 76 30 5d 0a 73 6f 75 72 63 65 20 24 74 65  rgv0].source $te
0200: 73 74 64 69 72 2f 74 65 73 74 65 72 2e 74 63 6c  stdir/tester.tcl
0210: 0a 0a 23 20 43 72 65 61 74 65 20 61 20 64 61 74  ..# Create a dat
0220: 61 62 61 73 65 2e 0a 23 0a 64 6f 5f 74 65 73 74  abase..#.do_test
0230: 20 74 6b 74 32 39 32 37 2d 31 2e 31 20 7b 0a 20   tkt2927-1.1 {. 
0240: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 43   db eval {.    C
0250: 52 45 41 54 45 20 54 41 42 4c 45 20 74 31 28 61  REATE TABLE t1(a
0260: 2c 20 62 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  , b);.    INSERT
0270: 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28   INTO t1 VALUES(
0280: 31 2c 31 31 29 3b 0a 20 20 20 20 49 4e 53 45 52  1,11);.    INSER
0290: 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53  T INTO t1 VALUES
02a0: 28 32 2c 32 32 29 3b 0a 20 20 20 20 49 4e 53 45  (2,22);.    INSE
02b0: 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45  RT INTO t1 VALUE
02c0: 53 28 33 2c 33 33 29 3b 0a 20 20 20 20 49 4e 53  S(3,33);.    INS
02d0: 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55  ERT INTO t1 VALU
02e0: 45 53 28 34 2c 34 34 29 3b 0a 20 20 20 20 49 4e  ES(4,44);.    IN
02f0: 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c  SERT INTO t1 VAL
0300: 55 45 53 28 35 2c 35 35 29 3b 0a 20 20 20 20 53  UES(5,55);.    S
0310: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 31 3b  ELECT * FROM t1;
0320: 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32  .  }.} {1 11 2 2
0330: 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35  2 3 33 4 44 5 55
0340: 7d 0a 0a 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  }...do_test tkt2
0350: 39 32 37 2d 32 2e 31 20 7b 0a 20 20 64 62 20 65  927-2.1 {.  db e
0360: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
0370: 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20   a, b FROM t1.  
0380: 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20    UNION ALL.    
0390: 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d  SELECT a, b FROM
03a0: 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20   t1.  }.} {1 11 
03b0: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
03c0: 20 35 35 20 31 20 31 31 20 32 20 32 32 20 33 20   55 1 11 2 22 3 
03d0: 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f  33 4 44 5 55}.do
03e0: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 32 2e  _test tkt2927-2.
03f0: 32 20 7b 0a 23 73 65 74 20 73 71 6c 69 74 65 5f  2 {.#set sqlite_
0400: 61 64 64 6f 70 5f 74 72 61 63 65 20 31 0a 20 20  addop_trace 1.  
0410: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
0420: 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74  LECT a, b FROM t
0430: 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a  1.    UNION ALL.
0440: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61 62      SELECT a, ab
0450: 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d  s(b) FROM t1.  }
0460: 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20  .} {1 11 2 22 3 
0470: 33 33 20 34 20 34 34 20 35 20 35 35 20 31 20 31  33 4 44 5 55 1 1
0480: 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34  1 2 22 3 33 4 44
0490: 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74   5 55}.do_test t
04a0: 6b 74 32 39 32 37 2d 32 2e 33 20 7b 0a 20 20 64  kt2927-2.3 {.  d
04b0: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
04c0: 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31  ECT a, b FROM t1
04d0: 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20  .    UNION ALL. 
04e0: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
04f0: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  , b FROM t1.  }.
0500: 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33  } {1 11 2 22 3 3
0510: 33 20 34 20 34 34 20 35 20 35 35 20 31 20 31 31  3 4 44 5 55 1 11
0520: 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20   2 22 3 33 4 44 
0530: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
0540: 74 32 39 32 37 2d 32 2e 34 20 7b 0a 20 20 64 62  t2927-2.4 {.  db
0550: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
0560: 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a  CT a, b FROM t1.
0570: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
0580: 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c    SELECT abs(a),
0590: 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a   abs(b) FROM t1.
05a0: 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32    }.} {1 11 2 22
05b0: 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35 20   3 33 4 44 5 55 
05c0: 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34  1 11 2 22 3 33 4
05d0: 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73   44 5 55}.do_tes
05e0: 74 20 74 6b 74 32 39 32 37 2d 32 2e 35 20 7b 0a  t tkt2927-2.5 {.
05f0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
0600: 53 45 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29  SELECT a, abs(b)
0610: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49   FROM t1.    UNI
0620: 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43  ON ALL.    SELEC
0630: 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20  T a, b FROM t1. 
0640: 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20   }.} {1 11 2 22 
0650: 33 20 33 33 20 34 20 34 34 20 35 20 35 35 20 31  3 33 4 44 5 55 1
0660: 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20   11 2 22 3 33 4 
0670: 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74  44 5 55}.do_test
0680: 20 74 6b 74 32 39 32 37 2d 32 2e 36 20 7b 0a 20   tkt2927-2.6 {. 
0690: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
06a0: 45 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20  ELECT a, abs(b) 
06b0: 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f  FROM t1.    UNIO
06c0: 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54  N ALL.    SELECT
06d0: 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20   a, abs(b) FROM 
06e0: 74 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32  t1.  }.} {1 11 2
06f0: 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20   22 3 33 4 44 5 
0700: 35 35 20 31 20 31 31 20 32 20 32 32 20 33 20 33  55 1 11 2 22 3 3
0710: 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f  3 4 44 5 55}.do_
0720: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 32 2e 37  test tkt2927-2.7
0730: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
0740: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61 62 73     SELECT a, abs
0750: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  (b) FROM t1.    
0760: 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45  UNION ALL.    SE
0770: 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62 20 46  LECT abs(a), b F
0780: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 20  ROM t1.  }.} {1 
0790: 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34  11 2 22 3 33 4 4
07a0: 34 20 35 20 35 35 20 31 20 31 31 20 32 20 32 32  4 5 55 1 11 2 22
07b0: 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35 7d   3 33 4 44 5 55}
07c0: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
07d0: 2d 32 2e 38 20 7b 0a 20 20 64 62 20 65 76 61 6c  -2.8 {.  db eval
07e0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
07f0: 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a   abs(b) FROM t1.
0800: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
0810: 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c    SELECT abs(a),
0820: 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a   abs(b) FROM t1.
0830: 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32    }.} {1 11 2 22
0840: 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35 20   3 33 4 44 5 55 
0850: 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34  1 11 2 22 3 33 4
0860: 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73   44 5 55}.do_tes
0870: 74 20 74 6b 74 32 39 32 37 2d 32 2e 39 20 7b 0a  t tkt2927-2.9 {.
0880: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
0890: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62  SELECT abs(a), b
08a0: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49   FROM t1.    UNI
08b0: 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43  ON ALL.    SELEC
08c0: 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20  T a, b FROM t1. 
08d0: 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20   }.} {1 11 2 22 
08e0: 33 20 33 33 20 34 20 34 34 20 35 20 35 35 20 31  3 33 4 44 5 55 1
08f0: 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20   11 2 22 3 33 4 
0900: 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74  44 5 55}.do_test
0910: 20 74 6b 74 32 39 32 37 2d 32 2e 31 30 20 7b 0a   tkt2927-2.10 {.
0920: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
0930: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62  SELECT abs(a), b
0940: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49   FROM t1.    UNI
0950: 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43  ON ALL.    SELEC
0960: 54 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  T a, abs(b) FROM
0970: 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20   t1.  }.} {1 11 
0980: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
0990: 20 35 35 20 31 20 31 31 20 32 20 32 32 20 33 20   55 1 11 2 22 3 
09a0: 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f  33 4 44 5 55}.do
09b0: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 32 2e  _test tkt2927-2.
09c0: 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  11 {.  db eval {
09d0: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28  .    SELECT abs(
09e0: 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20  a), b FROM t1.  
09f0: 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20    UNION ALL.    
0a00: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62  SELECT abs(a), b
0a10: 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b   FROM t1.  }.} {
0a20: 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34  1 11 2 22 3 33 4
0a30: 20 34 34 20 35 20 35 35 20 31 20 31 31 20 32 20   44 5 55 1 11 2 
0a40: 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35  22 3 33 4 44 5 5
0a50: 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39  5}.do_test tkt29
0a60: 32 37 2d 32 2e 31 32 20 7b 0a 20 20 64 62 20 65  27-2.12 {.  db e
0a70: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
0a80: 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20   abs(a), b FROM 
0a90: 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c  t1.    UNION ALL
0aa0: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28  .    SELECT abs(
0ab0: 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20  a), abs(b) FROM 
0ac0: 74 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32  t1.  }.} {1 11 2
0ad0: 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20   22 3 33 4 44 5 
0ae0: 35 35 20 31 20 31 31 20 32 20 32 32 20 33 20 33  55 1 11 2 22 3 3
0af0: 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f  3 4 44 5 55}.do_
0b00: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 32 2e 31  test tkt2927-2.1
0b10: 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
0b20: 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61      SELECT abs(a
0b30: 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74  ), abs(b) FROM t
0b40: 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a  1.    UNION ALL.
0b50: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20      SELECT a, b 
0b60: 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31  FROM t1.  }.} {1
0b70: 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20   11 2 22 3 33 4 
0b80: 34 34 20 35 20 35 35 20 31 20 31 31 20 32 20 32  44 5 55 1 11 2 2
0b90: 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35  2 3 33 4 44 5 55
0ba0: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32  }.do_test tkt292
0bb0: 37 2d 32 2e 31 34 20 7b 0a 20 20 64 62 20 65 76  7-2.14 {.  db ev
0bc0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
0bd0: 61 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46  abs(a), abs(b) F
0be0: 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e  ROM t1.    UNION
0bf0: 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20   ALL.    SELECT 
0c00: 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74  a, abs(b) FROM t
0c10: 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20  1.  }.} {1 11 2 
0c20: 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35  22 3 33 4 44 5 5
0c30: 35 20 31 20 31 31 20 32 20 32 32 20 33 20 33 33  5 1 11 2 22 3 33
0c40: 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74   4 44 5 55}.do_t
0c50: 65 73 74 20 74 6b 74 32 39 32 37 2d 32 2e 31 35  est tkt2927-2.15
0c60: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
0c70: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
0c80: 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31  , abs(b) FROM t1
0c90: 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20  .    UNION ALL. 
0ca0: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
0cb0: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  , b FROM t1.  }.
0cc0: 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33  } {1 11 2 22 3 3
0cd0: 33 20 34 20 34 34 20 35 20 35 35 20 31 20 31 31  3 4 44 5 55 1 11
0ce0: 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20   2 22 3 33 4 44 
0cf0: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
0d00: 74 32 39 32 37 2d 32 2e 31 36 20 7b 0a 20 20 64  t2927-2.16 {.  d
0d10: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
0d20: 45 43 54 20 61 62 73 28 61 29 2c 20 61 62 73 28  ECT abs(a), abs(
0d30: 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55  b) FROM t1.    U
0d40: 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c  NION ALL.    SEL
0d50: 45 43 54 20 61 62 73 28 61 29 2c 20 61 62 73 28  ECT abs(a), abs(
0d60: 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d  b) FROM t1.  }.}
0d70: 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33   {1 11 2 22 3 33
0d80: 20 34 20 34 34 20 35 20 35 35 20 31 20 31 31 20   4 44 5 55 1 11 
0d90: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
0da0: 20 35 35 7d 0a 0a 0a 64 6f 5f 74 65 73 74 20 74   55}...do_test t
0db0: 6b 74 32 39 32 37 2d 33 2e 31 20 7b 0a 20 20 64  kt2927-3.1 {.  d
0dc0: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
0dd0: 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31  ECT a, b FROM t1
0de0: 0a 20 20 20 20 55 4e 49 4f 4e 20 0a 20 20 20 20  .    UNION .    
0df0: 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d  SELECT a, b FROM
0e00: 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t1.    ORDER BY
0e10: 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32   1.  }.} {1 11 2
0e20: 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20   22 3 33 4 44 5 
0e30: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
0e40: 39 32 37 2d 33 2e 32 20 7b 0a 20 20 64 62 20 65  927-3.2 {.  db e
0e50: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
0e60: 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20   a, b FROM t1.  
0e70: 20 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53 45 4c    UNION .    SEL
0e80: 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46 52  ECT a, abs(b) FR
0e90: 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20  OM t1.    ORDER 
0ea0: 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31  BY 1.  }.} {1 11
0eb0: 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20   2 22 3 33 4 44 
0ec0: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
0ed0: 74 32 39 32 37 2d 33 2e 33 20 7b 0a 20 20 64 62  t2927-3.3 {.  db
0ee0: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
0ef0: 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a  CT a, b FROM t1.
0f00: 20 20 20 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53      UNION .    S
0f10: 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62 20  ELECT abs(a), b 
0f20: 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45  FROM t1.    ORDE
0f30: 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20  R BY 1.  }.} {1 
0f40: 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34  11 2 22 3 33 4 4
0f50: 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 5 55}.do_test 
0f60: 74 6b 74 32 39 32 37 2d 33 2e 34 20 7b 0a 20 20  tkt2927-3.4 {.  
0f70: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
0f80: 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74  LECT a, b FROM t
0f90: 31 0a 20 20 20 20 55 4e 49 4f 4e 20 0a 20 20 20  1.    UNION .   
0fa0: 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20   SELECT abs(a), 
0fb0: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
0fc0: 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20     ORDER BY 1.  
0fd0: 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33  }.} {1 11 2 22 3
0fe0: 20 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64   33 4 44 5 55}.d
0ff0: 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 33  o_test tkt2927-3
1000: 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .5 {.  db eval {
1010: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61  .    SELECT a, a
1020: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
1030: 20 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53 45 4c    UNION .    SEL
1040: 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31  ECT a, b FROM t1
1050: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a  .    ORDER BY 1.
1060: 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32    }.} {1 11 2 22
1070: 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35 7d   3 33 4 44 5 55}
1080: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
1090: 2d 33 2e 36 20 7b 0a 20 20 64 62 20 65 76 61 6c  -3.6 {.  db eval
10a0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
10b0: 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a   abs(b) FROM t1.
10c0: 20 20 20 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53      UNION .    S
10d0: 45 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20  ELECT a, abs(b) 
10e0: 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45  FROM t1.    ORDE
10f0: 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20  R BY 1.  }.} {1 
1100: 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34  11 2 22 3 33 4 4
1110: 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 5 55}.do_test 
1120: 74 6b 74 32 39 32 37 2d 33 2e 37 20 7b 0a 20 20  tkt2927-3.7 {.  
1130: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1140: 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46  LECT a, abs(b) F
1150: 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e  ROM t1.    UNION
1160: 20 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73   .    SELECT abs
1170: 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20  (a), b FROM t1. 
1180: 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20     ORDER BY 1.  
1190: 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33  }.} {1 11 2 22 3
11a0: 20 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64   33 4 44 5 55}.d
11b0: 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 33  o_test tkt2927-3
11c0: 2e 38 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .8 {.  db eval {
11d0: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61  .    SELECT a, a
11e0: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
11f0: 20 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53 45 4c    UNION .    SEL
1200: 45 43 54 20 61 62 73 28 61 29 2c 20 61 62 73 28  ECT abs(a), abs(
1210: 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f  b) FROM t1.    O
1220: 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20  RDER BY 1.  }.} 
1230: 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20  {1 11 2 22 3 33 
1240: 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65  4 44 5 55}.do_te
1250: 73 74 20 74 6b 74 32 39 32 37 2d 33 2e 39 20 7b  st tkt2927-3.9 {
1260: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
1270: 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20   SELECT abs(a), 
1280: 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e  b FROM t1.    UN
1290: 49 4f 4e 20 0a 20 20 20 20 53 45 4c 45 43 54 20  ION .    SELECT 
12a0: 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20  a, b FROM t1.   
12b0: 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a   ORDER BY 1.  }.
12c0: 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33  } {1 11 2 22 3 3
12d0: 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f  3 4 44 5 55}.do_
12e0: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 33 2e 31  test tkt2927-3.1
12f0: 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
1300: 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61      SELECT abs(a
1310: 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20  ), b FROM t1.   
1320: 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53 45 4c 45   UNION .    SELE
1330: 43 54 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f  CT a, abs(b) FRO
1340: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
1350: 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20  Y 1.  }.} {1 11 
1360: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
1370: 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   55}.do_test tkt
1380: 32 39 32 37 2d 33 2e 31 31 20 7b 0a 20 20 64 62  2927-3.11 {.  db
1390: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
13a0: 43 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f  CT abs(a), b FRO
13b0: 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 0a  M t1.    UNION .
13c0: 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61      SELECT abs(a
13d0: 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20  ), b FROM t1.   
13e0: 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a   ORDER BY 1.  }.
13f0: 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33  } {1 11 2 22 3 3
1400: 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f  3 4 44 5 55}.do_
1410: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 33 2e 31  test tkt2927-3.1
1420: 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
1430: 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61      SELECT abs(a
1440: 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20  ), b FROM t1.   
1450: 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53 45 4c 45   UNION .    SELE
1460: 43 54 20 61 62 73 28 61 29 2c 20 61 62 73 28 62  CT abs(a), abs(b
1470: 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52  ) FROM t1.    OR
1480: 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b  DER BY 1.  }.} {
1490: 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34  1 11 2 22 3 33 4
14a0: 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73   44 5 55}.do_tes
14b0: 74 20 74 6b 74 32 39 32 37 2d 33 2e 31 33 20 7b  t tkt2927-3.13 {
14c0: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
14d0: 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20   SELECT abs(a), 
14e0: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
14f0: 20 20 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53 45     UNION .    SE
1500: 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74  LECT a, b FROM t
1510: 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 31  1.    ORDER BY 1
1520: 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32  .  }.} {1 11 2 2
1530: 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35  2 3 33 4 44 5 55
1540: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32  }.do_test tkt292
1550: 37 2d 33 2e 31 34 20 7b 0a 20 20 64 62 20 65 76  7-3.14 {.  db ev
1560: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1570: 61 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46  abs(a), abs(b) F
1580: 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e  ROM t1.    UNION
1590: 20 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20   .    SELECT a, 
15a0: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
15b0: 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20     ORDER BY 1.  
15c0: 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33  }.} {1 11 2 22 3
15d0: 20 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64   33 4 44 5 55}.d
15e0: 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 33  o_test tkt2927-3
15f0: 2e 31 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .15 {.  db eval 
1600: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73  {.    SELECT abs
1610: 28 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  (a), abs(b) FROM
1620: 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 0a 20   t1.    UNION . 
1630: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
1640: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  , b FROM t1.    
1650: 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d  ORDER BY 1.  }.}
1660: 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33   {1 11 2 22 3 33
1670: 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74   4 44 5 55}.do_t
1680: 65 73 74 20 74 6b 74 32 39 32 37 2d 33 2e 31 36  est tkt2927-3.16
1690: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
16a0: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
16b0: 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31  , abs(b) FROM t1
16c0: 0a 20 20 20 20 55 4e 49 4f 4e 20 0a 20 20 20 20  .    UNION .    
16d0: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 61  SELECT abs(a), a
16e0: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
16f0: 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d    ORDER BY 1.  }
1700: 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20  .} {1 11 2 22 3 
1710: 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 0a 0a  33 4 44 5 55}...
1720: 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d  do_test tkt2927-
1730: 34 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  4.1 {.  db eval 
1740: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b 62  {.    SELECT a+b
1750: 2c 20 61 2d 62 2c 20 61 2c 20 62 20 46 52 4f 4d  , a-b, a, b FROM
1760: 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c   t1.    UNION AL
1770: 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b 62  L.    SELECT a+b
1780: 2c 20 61 2d 62 2c 20 61 2c 20 62 20 46 52 4f 4d  , a-b, a, b FROM
1790: 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d 31   t1.  }.} {12 -1
17a0: 30 20 31 20 31 31 20 32 34 20 2d 32 30 20 32 20  0 1 11 24 -20 2 
17b0: 32 32 20 33 36 20 2d 33 30 20 33 20 33 33 20 34  22 36 -30 3 33 4
17c0: 38 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35  8 -40 4 44 60 -5
17d0: 30 20 35 20 35 35 20 31 32 20 2d 31 30 20 31 20  0 5 55 12 -10 1 
17e0: 31 31 20 32 34 20 2d 32 30 20 32 20 32 32 20 33  11 24 -20 2 22 3
17f0: 36 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34  6 -30 3 33 48 -4
1800: 30 20 34 20 34 34 20 36 30 20 2d 35 30 20 35 20  0 4 44 60 -50 5 
1810: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
1820: 39 32 37 2d 34 2e 32 20 7b 0a 20 20 64 62 20 65  927-4.2 {.  db e
1830: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
1840: 20 61 2b 62 2c 20 61 2d 62 2c 20 61 2c 20 62 20   a+b, a-b, a, b 
1850: 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f  FROM t1.    UNIO
1860: 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54  N ALL.    SELECT
1870: 20 61 2b 62 2c 20 61 2d 62 2c 20 61 2c 20 61 62   a+b, a-b, a, ab
1880: 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d  s(b) FROM t1.  }
1890: 0a 7d 20 7b 31 32 20 2d 31 30 20 31 20 31 31 20  .} {12 -10 1 11 
18a0: 32 34 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d  24 -20 2 22 36 -
18b0: 33 30 20 33 20 33 33 20 34 38 20 2d 34 30 20 34  30 3 33 48 -40 4
18c0: 20 34 34 20 36 30 20 2d 35 30 20 35 20 35 35 20   44 60 -50 5 55 
18d0: 31 32 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d  12 -10 1 11 24 -
18e0: 32 30 20 32 20 32 32 20 33 36 20 2d 33 30 20 33  20 2 22 36 -30 3
18f0: 20 33 33 20 34 38 20 2d 34 30 20 34 20 34 34 20   33 48 -40 4 44 
1900: 36 30 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f 5f  60 -50 5 55}.do_
1910: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 34 2e 33  test tkt2927-4.3
1920: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1930: 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61     SELECT a+b, a
1940: 2d 62 2c 20 61 2c 20 62 20 46 52 4f 4d 20 74 31  -b, a, b FROM t1
1950: 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20  .    UNION ALL. 
1960: 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61     SELECT a+b, a
1970: 2d 62 2c 20 61 62 73 28 61 29 2c 20 62 20 46 52  -b, abs(a), b FR
1980: 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20  OM t1.  }.} {12 
1990: 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32 30 20  -10 1 11 24 -20 
19a0: 32 20 32 32 20 33 36 20 2d 33 30 20 33 20 33 33  2 22 36 -30 3 33
19b0: 20 34 38 20 2d 34 30 20 34 20 34 34 20 36 30 20   48 -40 4 44 60 
19c0: 2d 35 30 20 35 20 35 35 20 31 32 20 2d 31 30 20  -50 5 55 12 -10 
19d0: 31 20 31 31 20 32 34 20 2d 32 30 20 32 20 32 32  1 11 24 -20 2 22
19e0: 20 33 36 20 2d 33 30 20 33 20 33 33 20 34 38 20   36 -30 3 33 48 
19f0: 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35 30 20  -40 4 44 60 -50 
1a00: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
1a10: 74 32 39 32 37 2d 34 2e 34 20 7b 0a 20 20 64 62  t2927-4.4 {.  db
1a20: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1a30: 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 2c 20  CT a+b, a-b, a, 
1a40: 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e  b FROM t1.    UN
1a50: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45  ION ALL.    SELE
1a60: 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 62 73  CT a+b, a-b, abs
1a70: 28 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  (a), abs(b) FROM
1a80: 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d 31   t1.  }.} {12 -1
1a90: 30 20 31 20 31 31 20 32 34 20 2d 32 30 20 32 20  0 1 11 24 -20 2 
1aa0: 32 32 20 33 36 20 2d 33 30 20 33 20 33 33 20 34  22 36 -30 3 33 4
1ab0: 38 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35  8 -40 4 44 60 -5
1ac0: 30 20 35 20 35 35 20 31 32 20 2d 31 30 20 31 20  0 5 55 12 -10 1 
1ad0: 31 31 20 32 34 20 2d 32 30 20 32 20 32 32 20 33  11 24 -20 2 22 3
1ae0: 36 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34  6 -30 3 33 48 -4
1af0: 30 20 34 20 34 34 20 36 30 20 2d 35 30 20 35 20  0 4 44 60 -50 5 
1b00: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
1b10: 39 32 37 2d 34 2e 35 20 7b 0a 20 20 64 62 20 65  927-4.5 {.  db e
1b20: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
1b30: 20 61 2b 62 2c 20 61 2d 62 2c 20 61 2c 20 61 62   a+b, a-b, a, ab
1b40: 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20  s(b) FROM t1.   
1b50: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53   UNION ALL.    S
1b60: 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20  ELECT a+b, a-b, 
1b70: 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 7d  a, b FROM t1.  }
1b80: 0a 7d 20 7b 31 32 20 2d 31 30 20 31 20 31 31 20  .} {12 -10 1 11 
1b90: 32 34 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d  24 -20 2 22 36 -
1ba0: 33 30 20 33 20 33 33 20 34 38 20 2d 34 30 20 34  30 3 33 48 -40 4
1bb0: 20 34 34 20 36 30 20 2d 35 30 20 35 20 35 35 20   44 60 -50 5 55 
1bc0: 31 32 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d  12 -10 1 11 24 -
1bd0: 32 30 20 32 20 32 32 20 33 36 20 2d 33 30 20 33  20 2 22 36 -30 3
1be0: 20 33 33 20 34 38 20 2d 34 30 20 34 20 34 34 20   33 48 -40 4 44 
1bf0: 36 30 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f 5f  60 -50 5 55}.do_
1c00: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 34 2e 36  test tkt2927-4.6
1c10: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1c20: 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61     SELECT a+b, a
1c30: 2d 62 2c 20 61 2c 20 61 62 73 28 62 29 20 46 52  -b, a, abs(b) FR
1c40: 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20  OM t1.    UNION 
1c50: 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ALL.    SELECT a
1c60: 2b 62 2c 20 61 2d 62 2c 20 61 2c 20 61 62 73 28  +b, a-b, a, abs(
1c70: 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d  b) FROM t1.  }.}
1c80: 20 7b 31 32 20 2d 31 30 20 31 20 31 31 20 32 34   {12 -10 1 11 24
1c90: 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33 30   -20 2 22 36 -30
1ca0: 20 33 20 33 33 20 34 38 20 2d 34 30 20 34 20 34   3 33 48 -40 4 4
1cb0: 34 20 36 30 20 2d 35 30 20 35 20 35 35 20 31 32  4 60 -50 5 55 12
1cc0: 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32 30   -10 1 11 24 -20
1cd0: 20 32 20 32 32 20 33 36 20 2d 33 30 20 33 20 33   2 22 36 -30 3 3
1ce0: 33 20 34 38 20 2d 34 30 20 34 20 34 34 20 36 30  3 48 -40 4 44 60
1cf0: 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f 5f 74 65   -50 5 55}.do_te
1d00: 73 74 20 74 6b 74 32 39 32 37 2d 34 2e 37 20 7b  st tkt2927-4.7 {
1d10: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
1d20: 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62   SELECT a+b, a-b
1d30: 2c 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  , a, abs(b) FROM
1d40: 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c   t1.    UNION AL
1d50: 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b 62  L.    SELECT a+b
1d60: 2c 20 61 2d 62 2c 20 61 62 73 28 61 29 2c 20 62  , a-b, abs(a), b
1d70: 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b   FROM t1.  }.} {
1d80: 31 32 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d  12 -10 1 11 24 -
1d90: 32 30 20 32 20 32 32 20 33 36 20 2d 33 30 20 33  20 2 22 36 -30 3
1da0: 20 33 33 20 34 38 20 2d 34 30 20 34 20 34 34 20   33 48 -40 4 44 
1db0: 36 30 20 2d 35 30 20 35 20 35 35 20 31 32 20 2d  60 -50 5 55 12 -
1dc0: 31 30 20 31 20 31 31 20 32 34 20 2d 32 30 20 32  10 1 11 24 -20 2
1dd0: 20 32 32 20 33 36 20 2d 33 30 20 33 20 33 33 20   22 36 -30 3 33 
1de0: 34 38 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d  48 -40 4 44 60 -
1df0: 35 30 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74  50 5 55}.do_test
1e00: 20 74 6b 74 32 39 32 37 2d 34 2e 38 20 7b 0a 20   tkt2927-4.8 {. 
1e10: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1e20: 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20  ELECT a+b, a-b, 
1e30: 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74  a, abs(b) FROM t
1e40: 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a  1.    UNION ALL.
1e50: 20 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20      SELECT a+b, 
1e60: 61 2d 62 2c 20 61 62 73 28 61 29 2c 20 61 62 73  a-b, abs(a), abs
1e70: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  (b) FROM t1.  }.
1e80: 7d 20 7b 31 32 20 2d 31 30 20 31 20 31 31 20 32  } {12 -10 1 11 2
1e90: 34 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33  4 -20 2 22 36 -3
1ea0: 30 20 33 20 33 33 20 34 38 20 2d 34 30 20 34 20  0 3 33 48 -40 4 
1eb0: 34 34 20 36 30 20 2d 35 30 20 35 20 35 35 20 31  44 60 -50 5 55 1
1ec0: 32 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32  2 -10 1 11 24 -2
1ed0: 30 20 32 20 32 32 20 33 36 20 2d 33 30 20 33 20  0 2 22 36 -30 3 
1ee0: 33 33 20 34 38 20 2d 34 30 20 34 20 34 34 20 36  33 48 -40 4 44 6
1ef0: 30 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f 5f 74  0 -50 5 55}.do_t
1f00: 65 73 74 20 74 6b 74 32 39 32 37 2d 34 2e 39 20  est tkt2927-4.9 
1f10: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
1f20: 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d    SELECT a+b, a-
1f30: 62 2c 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f  b, abs(a), b FRO
1f40: 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41  M t1.    UNION A
1f50: 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b  LL.    SELECT a+
1f60: 62 2c 20 61 2d 62 2c 20 61 2c 20 62 20 46 52 4f  b, a-b, a, b FRO
1f70: 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d  M t1.  }.} {12 -
1f80: 31 30 20 31 20 31 31 20 32 34 20 2d 32 30 20 32  10 1 11 24 -20 2
1f90: 20 32 32 20 33 36 20 2d 33 30 20 33 20 33 33 20   22 36 -30 3 33 
1fa0: 34 38 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d  48 -40 4 44 60 -
1fb0: 35 30 20 35 20 35 35 20 31 32 20 2d 31 30 20 31  50 5 55 12 -10 1
1fc0: 20 31 31 20 32 34 20 2d 32 30 20 32 20 32 32 20   11 24 -20 2 22 
1fd0: 33 36 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d  36 -30 3 33 48 -
1fe0: 34 30 20 34 20 34 34 20 36 30 20 2d 35 30 20 35  40 4 44 60 -50 5
1ff0: 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   55}.do_test tkt
2000: 32 39 32 37 2d 34 2e 31 30 20 7b 0a 20 20 64 62  2927-4.10 {.  db
2010: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
2020: 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 62 73  CT a+b, a-b, abs
2030: 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20  (a), b FROM t1. 
2040: 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20     UNION ALL.   
2050: 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62   SELECT a+b, a-b
2060: 2c 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  , a, abs(b) FROM
2070: 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d 31   t1.  }.} {12 -1
2080: 30 20 31 20 31 31 20 32 34 20 2d 32 30 20 32 20  0 1 11 24 -20 2 
2090: 32 32 20 33 36 20 2d 33 30 20 33 20 33 33 20 34  22 36 -30 3 33 4
20a0: 38 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35  8 -40 4 44 60 -5
20b0: 30 20 35 20 35 35 20 31 32 20 2d 31 30 20 31 20  0 5 55 12 -10 1 
20c0: 31 31 20 32 34 20 2d 32 30 20 32 20 32 32 20 33  11 24 -20 2 22 3
20d0: 36 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34  6 -30 3 33 48 -4
20e0: 30 20 34 20 34 34 20 36 30 20 2d 35 30 20 35 20  0 4 44 60 -50 5 
20f0: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
2100: 39 32 37 2d 34 2e 31 31 20 7b 0a 20 20 64 62 20  927-4.11 {.  db 
2110: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2120: 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 62 73 28  T a+b, a-b, abs(
2130: 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20  a), b FROM t1.  
2140: 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20    UNION ALL.    
2150: 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c  SELECT a+b, a-b,
2160: 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20   abs(a), b FROM 
2170: 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d 31 30  t1.  }.} {12 -10
2180: 20 31 20 31 31 20 32 34 20 2d 32 30 20 32 20 32   1 11 24 -20 2 2
2190: 32 20 33 36 20 2d 33 30 20 33 20 33 33 20 34 38  2 36 -30 3 33 48
21a0: 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35 30   -40 4 44 60 -50
21b0: 20 35 20 35 35 20 31 32 20 2d 31 30 20 31 20 31   5 55 12 -10 1 1
21c0: 31 20 32 34 20 2d 32 30 20 32 20 32 32 20 33 36  1 24 -20 2 22 36
21d0: 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34 30   -30 3 33 48 -40
21e0: 20 34 20 34 34 20 36 30 20 2d 35 30 20 35 20 35   4 44 60 -50 5 5
21f0: 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39  5}.do_test tkt29
2200: 32 37 2d 34 2e 31 32 20 7b 0a 20 20 64 62 20 65  27-4.12 {.  db e
2210: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2220: 20 61 2b 62 2c 20 61 2d 62 2c 20 61 62 73 28 61   a+b, a-b, abs(a
2230: 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20  ), b FROM t1.   
2240: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53   UNION ALL.    S
2250: 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20  ELECT a+b, a-b, 
2260: 61 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46  abs(a), abs(b) F
2270: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32  ROM t1.  }.} {12
2280: 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32 30   -10 1 11 24 -20
2290: 20 32 20 32 32 20 33 36 20 2d 33 30 20 33 20 33   2 22 36 -30 3 3
22a0: 33 20 34 38 20 2d 34 30 20 34 20 34 34 20 36 30  3 48 -40 4 44 60
22b0: 20 2d 35 30 20 35 20 35 35 20 31 32 20 2d 31 30   -50 5 55 12 -10
22c0: 20 31 20 31 31 20 32 34 20 2d 32 30 20 32 20 32   1 11 24 -20 2 2
22d0: 32 20 33 36 20 2d 33 30 20 33 20 33 33 20 34 38  2 36 -30 3 33 48
22e0: 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35 30   -40 4 44 60 -50
22f0: 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74   5 55}.do_test t
2300: 6b 74 32 39 32 37 2d 34 2e 31 33 20 7b 0a 20 20  kt2927-4.13 {.  
2310: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
2320: 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61  LECT a+b, a-b, a
2330: 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46 52  bs(a), abs(b) FR
2340: 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20  OM t1.    UNION 
2350: 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ALL.    SELECT a
2360: 2b 62 2c 20 61 2d 62 2c 20 61 2c 20 62 20 46 52  +b, a-b, a, b FR
2370: 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20  OM t1.  }.} {12 
2380: 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32 30 20  -10 1 11 24 -20 
2390: 32 20 32 32 20 33 36 20 2d 33 30 20 33 20 33 33  2 22 36 -30 3 33
23a0: 20 34 38 20 2d 34 30 20 34 20 34 34 20 36 30 20   48 -40 4 44 60 
23b0: 2d 35 30 20 35 20 35 35 20 31 32 20 2d 31 30 20  -50 5 55 12 -10 
23c0: 31 20 31 31 20 32 34 20 2d 32 30 20 32 20 32 32  1 11 24 -20 2 22
23d0: 20 33 36 20 2d 33 30 20 33 20 33 33 20 34 38 20   36 -30 3 33 48 
23e0: 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35 30 20  -40 4 44 60 -50 
23f0: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
2400: 74 32 39 32 37 2d 34 2e 31 34 20 7b 0a 20 20 64  t2927-4.14 {.  d
2410: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2420: 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 62  ECT a+b, a-b, ab
2430: 73 28 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f  s(a), abs(b) FRO
2440: 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41  M t1.    UNION A
2450: 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b  LL.    SELECT a+
2460: 62 2c 20 61 2d 62 2c 20 61 2c 20 61 62 73 28 62  b, a-b, a, abs(b
2470: 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20  ) FROM t1.  }.} 
2480: 7b 31 32 20 2d 31 30 20 31 20 31 31 20 32 34 20  {12 -10 1 11 24 
2490: 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33 30 20  -20 2 22 36 -30 
24a0: 33 20 33 33 20 34 38 20 2d 34 30 20 34 20 34 34  3 33 48 -40 4 44
24b0: 20 36 30 20 2d 35 30 20 35 20 35 35 20 31 32 20   60 -50 5 55 12 
24c0: 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32 30 20  -10 1 11 24 -20 
24d0: 32 20 32 32 20 33 36 20 2d 33 30 20 33 20 33 33  2 22 36 -30 3 33
24e0: 20 34 38 20 2d 34 30 20 34 20 34 34 20 36 30 20   48 -40 4 44 60 
24f0: 2d 35 30 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73  -50 5 55}.do_tes
2500: 74 20 74 6b 74 32 39 32 37 2d 34 2e 31 35 20 7b  t tkt2927-4.15 {
2510: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
2520: 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62   SELECT a+b, a-b
2530: 2c 20 61 62 73 28 61 29 2c 20 61 62 73 28 62 29  , abs(a), abs(b)
2540: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49   FROM t1.    UNI
2550: 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43  ON ALL.    SELEC
2560: 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 62 73 28  T a+b, a-b, abs(
2570: 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20  a), b FROM t1.  
2580: 7d 0a 7d 20 7b 31 32 20 2d 31 30 20 31 20 31 31  }.} {12 -10 1 11
2590: 20 32 34 20 2d 32 30 20 32 20 32 32 20 33 36 20   24 -20 2 22 36 
25a0: 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34 30 20  -30 3 33 48 -40 
25b0: 34 20 34 34 20 36 30 20 2d 35 30 20 35 20 35 35  4 44 60 -50 5 55
25c0: 20 31 32 20 2d 31 30 20 31 20 31 31 20 32 34 20   12 -10 1 11 24 
25d0: 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33 30 20  -20 2 22 36 -30 
25e0: 33 20 33 33 20 34 38 20 2d 34 30 20 34 20 34 34  3 33 48 -40 4 44
25f0: 20 36 30 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f   60 -50 5 55}.do
2600: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 34 2e  _test tkt2927-4.
2610: 31 36 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  16 {.  db eval {
2620: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c  .    SELECT a+b,
2630: 20 61 2d 62 2c 20 61 62 73 28 61 29 2c 20 61 62   a-b, abs(a), ab
2640: 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20  s(b) FROM t1.   
2650: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53   UNION ALL.    S
2660: 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20  ELECT a+b, a-b, 
2670: 61 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46  abs(a), abs(b) F
2680: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32  ROM t1.  }.} {12
2690: 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32 30   -10 1 11 24 -20
26a0: 20 32 20 32 32 20 33 36 20 2d 33 30 20 33 20 33   2 22 36 -30 3 3
26b0: 33 20 34 38 20 2d 34 30 20 34 20 34 34 20 36 30  3 48 -40 4 44 60
26c0: 20 2d 35 30 20 35 20 35 35 20 31 32 20 2d 31 30   -50 5 55 12 -10
26d0: 20 31 20 31 31 20 32 34 20 2d 32 30 20 32 20 32   1 11 24 -20 2 2
26e0: 32 20 33 36 20 2d 33 30 20 33 20 33 33 20 34 38  2 36 -30 3 33 48
26f0: 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35 30   -40 4 44 60 -50
2700: 20 35 20 35 35 7d 0a 0a 0a 64 6f 5f 74 65 73 74   5 55}...do_test
2710: 20 74 6b 74 32 39 32 37 2d 35 2e 31 20 7b 0a 20   tkt2927-5.1 {. 
2720: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
2730: 45 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20  ELECT a, b FROM 
2740: 74 31 0a 20 20 20 20 45 58 43 45 50 54 0a 20 20  t1.    EXCEPT.  
2750: 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52    SELECT a, b FR
2760: 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a 64  OM t1.  }.} {}.d
2770: 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 35  o_test tkt2927-5
2780: 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
2790: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62  .    SELECT a, b
27a0: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 45 58 43   FROM t1.    EXC
27b0: 45 50 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61  EPT.    SELECT a
27c0: 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31  , abs(b) FROM t1
27d0: 0a 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73  .  }.} {}.do_tes
27e0: 74 20 74 6b 74 32 39 32 37 2d 35 2e 33 20 7b 0a  t tkt2927-5.3 {.
27f0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2800: 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d  SELECT a, b FROM
2810: 20 74 31 0a 20 20 20 20 45 58 43 45 50 54 0a 20   t1.    EXCEPT. 
2820: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
2830: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  , b FROM t1.  }.
2840: 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74  } {}.do_test tkt
2850: 32 39 32 37 2d 35 2e 34 20 7b 0a 20 20 64 62 20  2927-5.4 {.  db 
2860: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2870: 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20  T a, b FROM t1. 
2880: 20 20 20 45 58 43 45 50 54 0a 20 20 20 20 53 45     EXCEPT.    SE
2890: 4c 45 43 54 20 61 62 73 28 61 29 2c 20 61 62 73  LECT abs(a), abs
28a0: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  (b) FROM t1.  }.
28b0: 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74  } {}.do_test tkt
28c0: 32 39 32 37 2d 35 2e 35 20 7b 0a 20 20 64 62 20  2927-5.5 {.  db 
28d0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
28e0: 54 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  T a, abs(b) FROM
28f0: 20 74 31 0a 20 20 20 20 45 58 43 45 50 54 0a 20   t1.    EXCEPT. 
2900: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20 46     SELECT a, b F
2910: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a  ROM t1.  }.} {}.
2920: 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d  do_test tkt2927-
2930: 35 2e 36 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  5.6 {.  db eval 
2940: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  {.    SELECT a, 
2950: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
2960: 20 20 20 45 58 43 45 50 54 0a 20 20 20 20 53 45     EXCEPT.    SE
2970: 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46  LECT a, abs(b) F
2980: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a  ROM t1.  }.} {}.
2990: 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d  do_test tkt2927-
29a0: 35 2e 37 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  5.7 {.  db eval 
29b0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  {.    SELECT a, 
29c0: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
29d0: 20 20 20 45 58 43 45 50 54 0a 20 20 20 20 53 45     EXCEPT.    SE
29e0: 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62 20 46  LECT abs(a), b F
29f0: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a  ROM t1.  }.} {}.
2a00: 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d  do_test tkt2927-
2a10: 35 2e 38 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  5.8 {.  db eval 
2a20: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  {.    SELECT a, 
2a30: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
2a40: 20 20 20 45 58 43 45 50 54 0a 20 20 20 20 53 45     EXCEPT.    SE
2a50: 4c 45 43 54 20 61 62 73 28 61 29 2c 20 61 62 73  LECT abs(a), abs
2a60: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  (b) FROM t1.  }.
2a70: 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74  } {}.do_test tkt
2a80: 32 39 32 37 2d 35 2e 39 20 7b 0a 20 20 64 62 20  2927-5.9 {.  db 
2a90: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2aa0: 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d  T abs(a), b FROM
2ab0: 20 74 31 0a 20 20 20 20 45 58 43 45 50 54 0a 20   t1.    EXCEPT. 
2ac0: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20 46     SELECT a, b F
2ad0: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a  ROM t1.  }.} {}.
2ae0: 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d  do_test tkt2927-
2af0: 35 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c  5.10 {.  db eval
2b00: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62   {.    SELECT ab
2b10: 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a  s(a), b FROM t1.
2b20: 20 20 20 20 45 58 43 45 50 54 0a 20 20 20 20 53      EXCEPT.    S
2b30: 45 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20  ELECT a, abs(b) 
2b40: 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d  FROM t1.  }.} {}
2b50: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
2b60: 2d 35 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61  -5.11 {.  db eva
2b70: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
2b80: 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31  bs(a), b FROM t1
2b90: 0a 20 20 20 20 45 58 43 45 50 54 0a 20 20 20 20  .    EXCEPT.    
2ba0: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62  SELECT abs(a), b
2bb0: 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b   FROM t1.  }.} {
2bc0: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32  }.do_test tkt292
2bd0: 37 2d 35 2e 31 32 20 7b 0a 20 20 64 62 20 65 76  7-5.12 {.  db ev
2be0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
2bf0: 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74  abs(a), b FROM t
2c00: 31 0a 20 20 20 20 45 58 43 45 50 54 0a 20 20 20  1.    EXCEPT.   
2c10: 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20   SELECT abs(a), 
2c20: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
2c30: 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20   }.} {}.do_test 
2c40: 74 6b 74 32 39 32 37 2d 35 2e 31 33 20 7b 0a 20  tkt2927-5.13 {. 
2c50: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
2c60: 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 61 62  ELECT abs(a), ab
2c70: 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20  s(b) FROM t1.   
2c80: 20 45 58 43 45 50 54 0a 20 20 20 20 53 45 4c 45   EXCEPT.    SELE
2c90: 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a  CT a, b FROM t1.
2ca0: 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74    }.} {}.do_test
2cb0: 20 74 6b 74 32 39 32 37 2d 35 2e 31 34 20 7b 0a   tkt2927-5.14 {.
2cc0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2cd0: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 61  SELECT abs(a), a
2ce0: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
2cf0: 20 20 45 58 43 45 50 54 0a 20 20 20 20 53 45 4c    EXCEPT.    SEL
2d00: 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46 52  ECT a, abs(b) FR
2d10: 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a 64  OM t1.  }.} {}.d
2d20: 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 35  o_test tkt2927-5
2d30: 2e 31 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .15 {.  db eval 
2d40: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73  {.    SELECT abs
2d50: 28 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  (a), abs(b) FROM
2d60: 20 74 31 0a 20 20 20 20 45 58 43 45 50 54 0a 20   t1.    EXCEPT. 
2d70: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
2d80: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  , b FROM t1.  }.
2d90: 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74  } {}.do_test tkt
2da0: 32 39 32 37 2d 35 2e 31 36 20 7b 0a 20 20 64 62  2927-5.16 {.  db
2db0: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
2dc0: 43 54 20 61 62 73 28 61 29 2c 20 61 62 73 28 62  CT abs(a), abs(b
2dd0: 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 45 58  ) FROM t1.    EX
2de0: 43 45 50 54 0a 20 20 20 20 53 45 4c 45 43 54 20  CEPT.    SELECT 
2df0: 61 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46  abs(a), abs(b) F
2e00: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a  ROM t1.  }.} {}.
2e10: 0a 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32  ..do_test tkt292
2e20: 37 2d 36 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  7-6.1 {.  db eva
2e30: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
2e40: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  , b FROM t1.    
2e50: 49 4e 54 45 52 53 45 43 54 0a 20 20 20 20 53 45  INTERSECT.    SE
2e60: 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74  LECT a, b FROM t
2e70: 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 31  1.    ORDER BY 1
2e80: 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32  .  }.} {1 11 2 2
2e90: 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35  2 3 33 4 44 5 55
2ea0: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32  }.do_test tkt292
2eb0: 37 2d 36 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  7-6.2 {.  db eva
2ec0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
2ed0: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  , b FROM t1.    
2ee0: 49 4e 54 45 52 53 45 43 54 0a 20 20 20 20 53 45  INTERSECT.    SE
2ef0: 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46  LECT a, abs(b) F
2f00: 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52  ROM t1.    ORDER
2f10: 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31   BY 1.  }.} {1 1
2f20: 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34  1 2 22 3 33 4 44
2f30: 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74   5 55}.do_test t
2f40: 6b 74 32 39 32 37 2d 36 2e 33 20 7b 0a 20 20 64  kt2927-6.3 {.  d
2f50: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2f60: 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31  ECT a, b FROM t1
2f70: 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54 0a 20  .    INTERSECT. 
2f80: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
2f90: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  , b FROM t1.    
2fa0: 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d  ORDER BY 1.  }.}
2fb0: 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33   {1 11 2 22 3 33
2fc0: 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74   4 44 5 55}.do_t
2fd0: 65 73 74 20 74 6b 74 32 39 32 37 2d 36 2e 34 20  est tkt2927-6.4 
2fe0: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2ff0: 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52    SELECT a, b FR
3000: 4f 4d 20 74 31 0a 20 20 20 20 49 4e 54 45 52 53  OM t1.    INTERS
3010: 45 43 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ECT.    SELECT a
3020: 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46 52  bs(a), abs(b) FR
3030: 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20  OM t1.    ORDER 
3040: 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31  BY 1.  }.} {1 11
3050: 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20   2 22 3 33 4 44 
3060: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
3070: 74 32 39 32 37 2d 36 2e 35 20 7b 0a 20 20 64 62  t2927-6.5 {.  db
3080: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
3090: 43 54 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f  CT a, abs(b) FRO
30a0: 4d 20 74 31 0a 20 20 20 20 49 4e 54 45 52 53 45  M t1.    INTERSE
30b0: 43 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c  CT.    SELECT a,
30c0: 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f   b FROM t1.    O
30d0: 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20  RDER BY 1.  }.} 
30e0: 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20  {1 11 2 22 3 33 
30f0: 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65  4 44 5 55}.do_te
3100: 73 74 20 74 6b 74 32 39 32 37 2d 36 2e 36 20 7b  st tkt2927-6.6 {
3110: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
3120: 20 53 45 4c 45 43 54 20 61 2c 20 61 62 73 28 62   SELECT a, abs(b
3130: 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 49 4e  ) FROM t1.    IN
3140: 54 45 52 53 45 43 54 0a 20 20 20 20 53 45 4c 45  TERSECT.    SELE
3150: 43 54 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f  CT a, abs(b) FRO
3160: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
3170: 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20  Y 1.  }.} {1 11 
3180: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
3190: 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   55}.do_test tkt
31a0: 32 39 32 37 2d 36 2e 37 20 7b 0a 20 20 64 62 20  2927-6.7 {.  db 
31b0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
31c0: 54 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  T a, abs(b) FROM
31d0: 20 74 31 0a 20 20 20 20 49 4e 54 45 52 53 45 43   t1.    INTERSEC
31e0: 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73  T.    SELECT abs
31f0: 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20  (a), b FROM t1. 
3200: 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20     ORDER BY 1.  
3210: 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33  }.} {1 11 2 22 3
3220: 20 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64   33 4 44 5 55}.d
3230: 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 36  o_test tkt2927-6
3240: 2e 38 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .8 {.  db eval {
3250: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61  .    SELECT a, a
3260: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
3270: 20 20 49 4e 54 45 52 53 45 43 54 0a 20 20 20 20    INTERSECT.    
3280: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 61  SELECT abs(a), a
3290: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
32a0: 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d    ORDER BY 1.  }
32b0: 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20  .} {1 11 2 22 3 
32c0: 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f  33 4 44 5 55}.do
32d0: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 36 2e  _test tkt2927-6.
32e0: 39 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  9 {.  db eval {.
32f0: 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61      SELECT abs(a
3300: 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20  ), b FROM t1.   
3310: 20 49 4e 54 45 52 53 45 43 54 0a 20 20 20 20 53   INTERSECT.    S
3320: 45 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20  ELECT a, b FROM 
3330: 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t1.    ORDER BY 
3340: 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20  1.  }.} {1 11 2 
3350: 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35  22 3 33 4 44 5 5
3360: 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39  5}.do_test tkt29
3370: 32 37 2d 36 2e 31 30 20 7b 0a 20 20 64 62 20 65  27-6.10 {.  db e
3380: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
3390: 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20   abs(a), b FROM 
33a0: 74 31 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54  t1.    INTERSECT
33b0: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61  .    SELECT a, a
33c0: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
33d0: 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d    ORDER BY 1.  }
33e0: 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20  .} {1 11 2 22 3 
33f0: 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f  33 4 44 5 55}.do
3400: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 36 2e  _test tkt2927-6.
3410: 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  11 {.  db eval {
3420: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28  .    SELECT abs(
3430: 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20  a), b FROM t1.  
3440: 20 20 49 4e 54 45 52 53 45 43 54 0a 20 20 20 20    INTERSECT.    
3450: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62  SELECT abs(a), b
3460: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44   FROM t1.    ORD
3470: 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31  ER BY 1.  }.} {1
3480: 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20   11 2 22 3 33 4 
3490: 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74  44 5 55}.do_test
34a0: 20 74 6b 74 32 39 32 37 2d 36 2e 31 32 20 7b 0a   tkt2927-6.12 {.
34b0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
34c0: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62  SELECT abs(a), b
34d0: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 49 4e 54   FROM t1.    INT
34e0: 45 52 53 45 43 54 0a 20 20 20 20 53 45 4c 45 43  ERSECT.    SELEC
34f0: 54 20 61 62 73 28 61 29 2c 20 61 62 73 28 62 29  T abs(a), abs(b)
3500: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44   FROM t1.    ORD
3510: 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31  ER BY 1.  }.} {1
3520: 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20   11 2 22 3 33 4 
3530: 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74  44 5 55}.do_test
3540: 20 74 6b 74 32 39 32 37 2d 36 2e 31 33 20 7b 0a   tkt2927-6.13 {.
3550: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
3560: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 61  SELECT abs(a), a
3570: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
3580: 20 20 49 4e 54 45 52 53 45 43 54 0a 20 20 20 20    INTERSECT.    
3590: 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d  SELECT a, b FROM
35a0: 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t1.    ORDER BY
35b0: 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32   1.  }.} {1 11 2
35c0: 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20   22 3 33 4 44 5 
35d0: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
35e0: 39 32 37 2d 36 2e 31 34 20 7b 0a 20 20 64 62 20  927-6.14 {.  db 
35f0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
3600: 54 20 61 62 73 28 61 29 2c 20 61 62 73 28 62 29  T abs(a), abs(b)
3610: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 49 4e 54   FROM t1.    INT
3620: 45 52 53 45 43 54 0a 20 20 20 20 53 45 4c 45 43  ERSECT.    SELEC
3630: 54 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  T a, abs(b) FROM
3640: 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t1.    ORDER BY
3650: 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32   1.  }.} {1 11 2
3660: 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20   22 3 33 4 44 5 
3670: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
3680: 39 32 37 2d 36 2e 31 35 20 7b 0a 20 20 64 62 20  927-6.15 {.  db 
3690: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
36a0: 54 20 61 62 73 28 61 29 2c 20 61 62 73 28 62 29  T abs(a), abs(b)
36b0: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 49 4e 54   FROM t1.    INT
36c0: 45 52 53 45 43 54 0a 20 20 20 20 53 45 4c 45 43  ERSECT.    SELEC
36d0: 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d  T abs(a), b FROM
36e0: 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t1.    ORDER BY
36f0: 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32   1.  }.} {1 11 2
3700: 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20   22 3 33 4 44 5 
3710: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
3720: 39 32 37 2d 36 2e 31 36 20 7b 0a 20 20 64 62 20  927-6.16 {.  db 
3730: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
3740: 54 20 61 62 73 28 61 29 2c 20 61 62 73 28 62 29  T abs(a), abs(b)
3750: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 49 4e 54   FROM t1.    INT
3760: 45 52 53 45 43 54 0a 20 20 20 20 53 45 4c 45 43  ERSECT.    SELEC
3770: 54 20 61 62 73 28 61 29 2c 20 61 62 73 28 62 29  T abs(a), abs(b)
3780: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44   FROM t1.    ORD
3790: 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31  ER BY 1.  }.} {1
37a0: 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20   11 2 22 3 33 4 
37b0: 34 34 20 35 20 35 35 7d 0a 0a 23 20 54 69 63 6b  44 5 55}..# Tick
37c0: 65 74 20 23 33 30 39 32 20 69 73 20 74 68 65 20  et #3092 is the 
37d0: 73 61 6d 65 20 62 75 67 2e 20 20 42 75 74 20 61  same bug.  But a
37e0: 6e 6f 74 68 65 72 20 74 65 73 74 20 63 61 73 65  nother test case
37f0: 20 6e 65 76 65 72 20 68 75 72 74 73 2e 0a 23 0a   never hurts..#.
3800: 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d  do_test tkt2927-
3810: 37 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  7.1 {.  db eval 
3820: 7b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42  {.    CREATE TAB
3830: 4c 45 20 68 6f 73 74 20 28 0a 20 20 20 20 20 68  LE host (.     h
3840: 6f 73 74 6e 61 6d 65 20 74 65 78 74 20 6e 6f 74  ostname text not
3850: 20 6e 75 6c 6c 20 70 72 69 6d 61 72 79 20 6b 65   null primary ke
3860: 79 2c 0a 20 20 20 20 20 63 6f 6e 73 6f 6c 65 48  y,.     consoleH
3870: 6f 73 74 20 74 65 78 74 2c 0a 20 20 20 20 20 63  ost text,.     c
3880: 6f 6e 73 6f 6c 65 50 6f 72 74 20 74 65 78 74 0a  onsolePort text.
3890: 20 20 20 20 29 3b 0a 20 20 20 20 49 4e 53 45 52      );.    INSER
38a0: 54 20 49 4e 54 4f 20 22 68 6f 73 74 22 20 56 41  T INTO "host" VA
38b0: 4c 55 45 53 28 27 61 61 6c 64 30 34 27 2c 27 61  LUES('aald04','a
38c0: 61 6c 70 30 33 27 2c 27 34 27 29 3b 0a 20 20 20  alp03','4');.   
38d0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 22 68 6f   INSERT INTO "ho
38e0: 73 74 22 20 56 41 4c 55 45 53 28 27 61 61 6c 64  st" VALUES('aald
38f0: 31 37 27 2c 27 61 61 6c 70 30 31 27 2c 27 31 27  17','aalp01','1'
3900: 29 3b 0a 20 20 20 20 43 52 45 41 54 45 20 56 49  );.    CREATE VI
3910: 45 57 20 63 6f 6e 73 6f 6c 65 6d 61 70 31 61 20  EW consolemap1a 
3920: 61 73 0a 20 20 20 20 20 20 73 65 6c 65 63 74 20  as.      select 
3930: 68 6f 73 74 6e 61 6d 65 2c 20 63 6f 6e 73 6f 6c  hostname, consol
3940: 65 68 6f 73 74 2c 20 27 2f 64 65 76 2f 63 75 61  ehost, '/dev/cua
3950: 44 30 2e 27 20 7c 7c 20 28 63 6f 6e 73 6f 6c 65  D0.' || (console
3960: 70 6f 72 74 2d 31 29 20 63 6f 6e 73 6f 6c 65 70  port-1) consolep
3970: 6f 72 74 0a 20 20 20 20 20 20 20 20 66 72 6f 6d  ort.        from
3980: 20 68 6f 73 74 20 77 68 65 72 65 20 63 6f 6e 73   host where cons
3990: 6f 6c 65 68 6f 73 74 3d 27 61 61 6c 70 30 31 27  olehost='aalp01'
39a0: 3b 0a 20 20 20 20 43 52 45 41 54 45 20 56 49 45  ;.    CREATE VIE
39b0: 57 20 63 6f 6e 73 6f 6c 65 6d 61 70 31 62 20 61  W consolemap1b a
39c0: 73 0a 20 20 20 20 20 20 73 65 6c 65 63 74 20 68  s.      select h
39d0: 6f 73 74 6e 61 6d 65 20 68 6f 73 74 6e 61 6d 65  ostname hostname
39e0: 2c 20 63 6f 6e 73 6f 6c 65 68 6f 73 74 20 63 6f  , consolehost co
39f0: 6e 73 6f 6c 65 68 6f 73 74 2c 20 27 2f 64 65 76  nsolehost, '/dev
3a00: 2f 63 75 61 44 27 20 7c 7c 0a 20 20 20 20 20 20  /cuaD' ||.      
3a10: 20 20 20 20 20 20 20 73 75 62 73 74 72 28 27 30         substr('0
3a20: 31 27 2c 31 2b 28 28 63 6f 6e 73 6f 6c 65 70 6f  1',1+((consolepo
3a30: 72 74 2d 31 29 2f 31 36 29 2c 31 29 20 7c 7c 0a  rt-1)/16),1) ||.
3a40: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 75 62               sub
3a50: 73 74 72 28 27 30 31 32 33 34 35 36 37 38 39 61  str('0123456789a
3a60: 62 63 64 65 66 27 2c 31 2b 28 28 63 6f 6e 73 6f  bcdef',1+((conso
3a70: 6c 65 70 6f 72 74 2d 31 29 25 31 36 29 2c 31 29  leport-1)%16),1)
3a80: 20 63 6f 6e 73 6f 6c 65 70 6f 72 74 0a 20 20 20   consoleport.   
3a90: 20 20 20 20 20 66 72 6f 6d 20 68 6f 73 74 20 77       from host w
3aa0: 68 65 72 65 20 63 6f 6e 73 6f 6c 65 68 6f 73 74  here consolehost
3ab0: 3d 27 61 61 6c 70 30 33 27 3b 0a 20 20 20 20 43  ='aalp03';.    C
3ac0: 52 45 41 54 45 20 56 49 45 57 20 63 6f 6e 73 6f  REATE VIEW conso
3ad0: 6c 65 6d 61 70 31 20 61 73 0a 20 20 20 20 20 20  lemap1 as.      
3ae0: 73 65 6c 65 63 74 20 2a 20 66 72 6f 6d 20 63 6f  select * from co
3af0: 6e 73 6f 6c 65 6d 61 70 31 61 0a 20 20 20 20 20  nsolemap1a.     
3b00: 20 75 6e 69 6f 6e 0a 20 20 20 20 20 20 73 65 6c   union.      sel
3b10: 65 63 74 20 2a 20 66 72 6f 6d 20 63 6f 6e 73 6f  ect * from conso
3b20: 6c 65 6d 61 70 31 62 3b 0a 20 20 20 20 53 45 4c  lemap1b;.    SEL
3b30: 45 43 54 20 2a 20 66 72 6f 6d 20 63 6f 6e 73 6f  ECT * from conso
3b40: 6c 65 6d 61 70 31 62 3b 0a 20 20 7d 0a 7d 20 7b  lemap1b;.  }.} {
3b50: 61 61 6c 64 30 34 20 61 61 6c 70 30 33 20 2f 64  aald04 aalp03 /d
3b60: 65 76 2f 63 75 61 44 30 33 7d 0a 64 6f 5f 74 65  ev/cuaD03}.do_te
3b70: 73 74 20 74 6b 74 32 39 32 37 2d 37 2e 32 20 7b  st tkt2927-7.2 {
3b80: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
3b90: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 63   SELECT * FROM c
3ba0: 6f 6e 73 6f 6c 65 6d 61 70 31 0a 20 20 7d 0a 7d  onsolemap1.  }.}
3bb0: 20 7b 61 61 6c 64 30 34 20 61 61 6c 70 30 33 20   {aald04 aalp03 
3bc0: 2f 64 65 76 2f 63 75 61 44 30 33 20 61 61 6c 64  /dev/cuaD03 aald
3bd0: 31 37 20 61 61 6c 70 30 31 20 2f 64 65 76 2f 63  17 aalp01 /dev/c
3be0: 75 61 44 30 2e 30 7d 0a 0a 66 69 6e 69 73 68 5f  uaD0.0}..finish_
3bf0: 74 65 73 74 0a                                   test.