SQLite4
Hex Artifact Content
Not logged in

Artifact 4752868b9eeeb07a217f7f19f4cbaac98d6d086d:


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 34 20 32 30 30 38 2f 30 38 2f 30 34 20 30 33  .4 2008/08/04 03
01c0: 3a 35 31 3a 32 34 20 64 61 6e 69 65 6c 6b 31 39  :51:24 danielk19
01d0: 37 37 20 45 78 70 20 24 0a 23 0a 0a 73 65 74 20  77 Exp $.#..set 
01e0: 74 65 73 74 64 69 72 20 5b 66 69 6c 65 20 64 69  testdir [file di
01f0: 72 6e 61 6d 65 20 24 61 72 67 76 30 5d 0a 73 6f  rname $argv0].so
0200: 75 72 63 65 20 24 74 65 73 74 64 69 72 2f 74 65  urce $testdir/te
0210: 73 74 65 72 2e 74 63 6c 0a 0a 69 66 63 61 70 61  ster.tcl..ifcapa
0220: 62 6c 65 20 21 63 6f 6d 70 6f 75 6e 64 20 7b 0a  ble !compound {.
0230: 20 20 66 69 6e 69 73 68 5f 74 65 73 74 0a 20 20    finish_test.  
0240: 72 65 74 75 72 6e 0a 7d 0a 0a 23 20 43 72 65 61  return.}..# Crea
0250: 74 65 20 61 20 64 61 74 61 62 61 73 65 2e 0a 23  te a database..#
0260: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
0270: 2d 31 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  -1.1 {.  db eval
0280: 20 7b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41   {.    CREATE TA
0290: 42 4c 45 20 74 31 28 61 2c 20 62 29 3b 0a 20 20  BLE t1(a, b);.  
02a0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
02b0: 20 56 41 4c 55 45 53 28 31 2c 31 31 29 3b 0a 20   VALUES(1,11);. 
02c0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
02d0: 31 20 56 41 4c 55 45 53 28 32 2c 32 32 29 3b 0a  1 VALUES(2,22);.
02e0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
02f0: 74 31 20 56 41 4c 55 45 53 28 33 2c 33 33 29 3b  t1 VALUES(3,33);
0300: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
0310: 20 74 31 20 56 41 4c 55 45 53 28 34 2c 34 34 29   t1 VALUES(4,44)
0320: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
0330: 4f 20 74 31 20 56 41 4c 55 45 53 28 35 2c 35 35  O t1 VALUES(5,55
0340: 29 3b 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20  );.    SELECT * 
0350: 46 52 4f 4d 20 74 31 3b 0a 20 20 7d 0a 7d 20 7b  FROM t1;.  }.} {
0360: 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34  1 11 2 22 3 33 4
0370: 20 34 34 20 35 20 35 35 7d 0a 0a 0a 64 6f 5f 74   44 5 55}...do_t
0380: 65 73 74 20 74 6b 74 32 39 32 37 2d 32 2e 31 20  est tkt2927-2.1 
0390: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
03a0: 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52    SELECT a, b FR
03b0: 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20  OM t1.    UNION 
03c0: 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ALL.    SELECT a
03d0: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  , b FROM t1.  }.
03e0: 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33  } {1 11 2 22 3 3
03f0: 33 20 34 20 34 34 20 35 20 35 35 20 31 20 31 31  3 4 44 5 55 1 11
0400: 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20   2 22 3 33 4 44 
0410: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
0420: 74 32 39 32 37 2d 32 2e 32 20 7b 0a 23 73 65 74  t2927-2.2 {.#set
0430: 20 73 71 6c 69 74 65 5f 61 64 64 6f 70 5f 74 72   sqlite_addop_tr
0440: 61 63 65 20 31 0a 20 20 64 62 20 65 76 61 6c 20  ace 1.  db eval 
0450: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  {.    SELECT a, 
0460: 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e  b FROM t1.    UN
0470: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45  ION ALL.    SELE
0480: 43 54 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f  CT a, abs(b) FRO
0490: 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31  M t1.  }.} {1 11
04a0: 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20   2 22 3 33 4 44 
04b0: 35 20 35 35 20 31 20 31 31 20 32 20 32 32 20 33  5 55 1 11 2 22 3
04c0: 20 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64   33 4 44 5 55}.d
04d0: 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 32  o_test tkt2927-2
04e0: 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .3 {.  db eval {
04f0: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62  .    SELECT a, b
0500: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49   FROM t1.    UNI
0510: 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43  ON ALL.    SELEC
0520: 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d  T abs(a), b FROM
0530: 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20   t1.  }.} {1 11 
0540: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
0550: 20 35 35 20 31 20 31 31 20 32 20 32 32 20 33 20   55 1 11 2 22 3 
0560: 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f  33 4 44 5 55}.do
0570: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 32 2e  _test tkt2927-2.
0580: 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
0590: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20      SELECT a, b 
05a0: 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f  FROM t1.    UNIO
05b0: 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54  N ALL.    SELECT
05c0: 20 61 62 73 28 61 29 2c 20 61 62 73 28 62 29 20   abs(a), abs(b) 
05d0: 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31  FROM t1.  }.} {1
05e0: 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20   11 2 22 3 33 4 
05f0: 34 34 20 35 20 35 35 20 31 20 31 31 20 32 20 32  44 5 55 1 11 2 2
0600: 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35  2 3 33 4 44 5 55
0610: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32  }.do_test tkt292
0620: 37 2d 32 2e 35 20 7b 0a 20 20 64 62 20 65 76 61  7-2.5 {.  db eva
0630: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
0640: 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31  , abs(b) FROM t1
0650: 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20  .    UNION ALL. 
0660: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20 46     SELECT a, b F
0670: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 20  ROM t1.  }.} {1 
0680: 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34  11 2 22 3 33 4 4
0690: 34 20 35 20 35 35 20 31 20 31 31 20 32 20 32 32  4 5 55 1 11 2 22
06a0: 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35 7d   3 33 4 44 5 55}
06b0: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
06c0: 2d 32 2e 36 20 7b 0a 20 20 64 62 20 65 76 61 6c  -2.6 {.  db eval
06d0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
06e0: 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a   abs(b) FROM t1.
06f0: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
0700: 20 20 53 45 4c 45 43 54 20 61 2c 20 61 62 73 28    SELECT a, abs(
0710: 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d  b) FROM t1.  }.}
0720: 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33   {1 11 2 22 3 33
0730: 20 34 20 34 34 20 35 20 35 35 20 31 20 31 31 20   4 44 5 55 1 11 
0740: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
0750: 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   55}.do_test tkt
0760: 32 39 32 37 2d 32 2e 37 20 7b 0a 20 20 64 62 20  2927-2.7 {.  db 
0770: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
0780: 54 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  T a, abs(b) FROM
0790: 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c   t1.    UNION AL
07a0: 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73  L.    SELECT abs
07b0: 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20  (a), b FROM t1. 
07c0: 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20   }.} {1 11 2 22 
07d0: 33 20 33 33 20 34 20 34 34 20 35 20 35 35 20 31  3 33 4 44 5 55 1
07e0: 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20   11 2 22 3 33 4 
07f0: 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74  44 5 55}.do_test
0800: 20 74 6b 74 32 39 32 37 2d 32 2e 38 20 7b 0a 20   tkt2927-2.8 {. 
0810: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
0820: 45 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20  ELECT a, abs(b) 
0830: 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f  FROM t1.    UNIO
0840: 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54  N ALL.    SELECT
0850: 20 61 62 73 28 61 29 2c 20 61 62 73 28 62 29 20   abs(a), abs(b) 
0860: 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31  FROM t1.  }.} {1
0870: 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20   11 2 22 3 33 4 
0880: 34 34 20 35 20 35 35 20 31 20 31 31 20 32 20 32  44 5 55 1 11 2 2
0890: 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35  2 3 33 4 44 5 55
08a0: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32  }.do_test tkt292
08b0: 37 2d 32 2e 39 20 7b 0a 20 20 64 62 20 65 76 61  7-2.9 {.  db eva
08c0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
08d0: 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31  bs(a), b FROM t1
08e0: 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20  .    UNION ALL. 
08f0: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20 46     SELECT a, b F
0900: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 20  ROM t1.  }.} {1 
0910: 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34  11 2 22 3 33 4 4
0920: 34 20 35 20 35 35 20 31 20 31 31 20 32 20 32 32  4 5 55 1 11 2 22
0930: 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35 7d   3 33 4 44 5 55}
0940: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
0950: 2d 32 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61  -2.10 {.  db eva
0960: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
0970: 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31  bs(a), b FROM t1
0980: 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20  .    UNION ALL. 
0990: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61 62 73     SELECT a, abs
09a0: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  (b) FROM t1.  }.
09b0: 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33  } {1 11 2 22 3 3
09c0: 33 20 34 20 34 34 20 35 20 35 35 20 31 20 31 31  3 4 44 5 55 1 11
09d0: 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20   2 22 3 33 4 44 
09e0: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
09f0: 74 32 39 32 37 2d 32 2e 31 31 20 7b 0a 20 20 64  t2927-2.11 {.  d
0a00: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
0a10: 45 43 54 20 61 62 73 28 61 29 2c 20 62 20 46 52  ECT abs(a), b FR
0a20: 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20  OM t1.    UNION 
0a30: 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ALL.    SELECT a
0a40: 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31  bs(a), b FROM t1
0a50: 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32  .  }.} {1 11 2 2
0a60: 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35  2 3 33 4 44 5 55
0a70: 20 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20   1 11 2 22 3 33 
0a80: 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65  4 44 5 55}.do_te
0a90: 73 74 20 74 6b 74 32 39 32 37 2d 32 2e 31 32 20  st tkt2927-2.12 
0aa0: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
0ab0: 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c    SELECT abs(a),
0ac0: 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55   b FROM t1.    U
0ad0: 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c  NION ALL.    SEL
0ae0: 45 43 54 20 61 62 73 28 61 29 2c 20 61 62 73 28  ECT abs(a), abs(
0af0: 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d  b) FROM t1.  }.}
0b00: 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33   {1 11 2 22 3 33
0b10: 20 34 20 34 34 20 35 20 35 35 20 31 20 31 31 20   4 44 5 55 1 11 
0b20: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
0b30: 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   55}.do_test tkt
0b40: 32 39 32 37 2d 32 2e 31 33 20 7b 0a 20 20 64 62  2927-2.13 {.  db
0b50: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
0b60: 43 54 20 61 62 73 28 61 29 2c 20 61 62 73 28 62  CT abs(a), abs(b
0b70: 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e  ) FROM t1.    UN
0b80: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45  ION ALL.    SELE
0b90: 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a  CT a, b FROM t1.
0ba0: 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32    }.} {1 11 2 22
0bb0: 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35 20   3 33 4 44 5 55 
0bc0: 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34  1 11 2 22 3 33 4
0bd0: 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73   44 5 55}.do_tes
0be0: 74 20 74 6b 74 32 39 32 37 2d 32 2e 31 34 20 7b  t tkt2927-2.14 {
0bf0: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
0c00: 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20   SELECT abs(a), 
0c10: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
0c20: 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20     UNION ALL.   
0c30: 20 53 45 4c 45 43 54 20 61 2c 20 61 62 73 28 62   SELECT a, abs(b
0c40: 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20  ) FROM t1.  }.} 
0c50: 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20  {1 11 2 22 3 33 
0c60: 34 20 34 34 20 35 20 35 35 20 31 20 31 31 20 32  4 44 5 55 1 11 2
0c70: 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20   22 3 33 4 44 5 
0c80: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
0c90: 39 32 37 2d 32 2e 31 35 20 7b 0a 20 20 64 62 20  927-2.15 {.  db 
0ca0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
0cb0: 54 20 61 62 73 28 61 29 2c 20 61 62 73 28 62 29  T abs(a), abs(b)
0cc0: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49   FROM t1.    UNI
0cd0: 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43  ON ALL.    SELEC
0ce0: 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d  T abs(a), b FROM
0cf0: 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20   t1.  }.} {1 11 
0d00: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
0d10: 20 35 35 20 31 20 31 31 20 32 20 32 32 20 33 20   55 1 11 2 22 3 
0d20: 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f  33 4 44 5 55}.do
0d30: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 32 2e  _test tkt2927-2.
0d40: 31 36 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  16 {.  db eval {
0d50: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28  .    SELECT abs(
0d60: 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20  a), abs(b) FROM 
0d70: 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c  t1.    UNION ALL
0d80: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28  .    SELECT abs(
0d90: 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20  a), abs(b) FROM 
0da0: 74 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32  t1.  }.} {1 11 2
0db0: 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20   22 3 33 4 44 5 
0dc0: 35 35 20 31 20 31 31 20 32 20 32 32 20 33 20 33  55 1 11 2 22 3 3
0dd0: 33 20 34 20 34 34 20 35 20 35 35 7d 0a 0a 0a 64  3 4 44 5 55}...d
0de0: 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 33  o_test tkt2927-3
0df0: 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .1 {.  db eval {
0e00: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62  .    SELECT a, b
0e10: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49   FROM t1.    UNI
0e20: 4f 4e 20 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ON .    SELECT a
0e30: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  , b FROM t1.    
0e40: 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d  ORDER BY 1.  }.}
0e50: 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33   {1 11 2 22 3 33
0e60: 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74   4 44 5 55}.do_t
0e70: 65 73 74 20 74 6b 74 32 39 32 37 2d 33 2e 32 20  est tkt2927-3.2 
0e80: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
0e90: 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52    SELECT a, b FR
0ea0: 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20  OM t1.    UNION 
0eb0: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61  .    SELECT a, a
0ec0: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
0ed0: 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d    ORDER BY 1.  }
0ee0: 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20  .} {1 11 2 22 3 
0ef0: 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f  33 4 44 5 55}.do
0f00: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 33 2e  _test tkt2927-3.
0f10: 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
0f20: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20      SELECT a, b 
0f30: 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f  FROM t1.    UNIO
0f40: 4e 20 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62  N .    SELECT ab
0f50: 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a  s(a), b FROM t1.
0f60: 20 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20      ORDER BY 1. 
0f70: 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20   }.} {1 11 2 22 
0f80: 33 20 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a  3 33 4 44 5 55}.
0f90: 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d  do_test tkt2927-
0fa0: 33 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  3.4 {.  db eval 
0fb0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  {.    SELECT a, 
0fc0: 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e  b FROM t1.    UN
0fd0: 49 4f 4e 20 0a 20 20 20 20 53 45 4c 45 43 54 20  ION .    SELECT 
0fe0: 61 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46  abs(a), abs(b) F
0ff0: 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52  ROM t1.    ORDER
1000: 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31   BY 1.  }.} {1 1
1010: 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34  1 2 22 3 33 4 44
1020: 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74   5 55}.do_test t
1030: 6b 74 32 39 32 37 2d 33 2e 35 20 7b 0a 20 20 64  kt2927-3.5 {.  d
1040: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
1050: 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46 52  ECT a, abs(b) FR
1060: 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20  OM t1.    UNION 
1070: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62  .    SELECT a, b
1080: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44   FROM t1.    ORD
1090: 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31  ER BY 1.  }.} {1
10a0: 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34 20   11 2 22 3 33 4 
10b0: 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74  44 5 55}.do_test
10c0: 20 74 6b 74 32 39 32 37 2d 33 2e 36 20 7b 0a 20   tkt2927-3.6 {. 
10d0: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
10e0: 45 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20  ELECT a, abs(b) 
10f0: 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f  FROM t1.    UNIO
1100: 4e 20 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c  N .    SELECT a,
1110: 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a   abs(b) FROM t1.
1120: 20 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20      ORDER BY 1. 
1130: 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20   }.} {1 11 2 22 
1140: 33 20 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a  3 33 4 44 5 55}.
1150: 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d  do_test tkt2927-
1160: 33 2e 37 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  3.7 {.  db eval 
1170: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  {.    SELECT a, 
1180: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
1190: 20 20 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53 45     UNION .    SE
11a0: 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62 20 46  LECT abs(a), b F
11b0: 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52  ROM t1.    ORDER
11c0: 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31   BY 1.  }.} {1 1
11d0: 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34  1 2 22 3 33 4 44
11e0: 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74   5 55}.do_test t
11f0: 6b 74 32 39 32 37 2d 33 2e 38 20 7b 0a 20 20 64  kt2927-3.8 {.  d
1200: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
1210: 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46 52  ECT a, abs(b) FR
1220: 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20  OM t1.    UNION 
1230: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28  .    SELECT abs(
1240: 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20  a), abs(b) FROM 
1250: 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t1.    ORDER BY 
1260: 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20  1.  }.} {1 11 2 
1270: 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35  22 3 33 4 44 5 5
1280: 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39  5}.do_test tkt29
1290: 32 37 2d 33 2e 39 20 7b 0a 20 20 64 62 20 65 76  27-3.9 {.  db ev
12a0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
12b0: 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74  abs(a), b FROM t
12c0: 31 0a 20 20 20 20 55 4e 49 4f 4e 20 0a 20 20 20  1.    UNION .   
12d0: 20 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52 4f   SELECT a, b FRO
12e0: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
12f0: 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20  Y 1.  }.} {1 11 
1300: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
1310: 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   55}.do_test tkt
1320: 32 39 32 37 2d 33 2e 31 30 20 7b 0a 20 20 64 62  2927-3.10 {.  db
1330: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1340: 43 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f  CT abs(a), b FRO
1350: 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 0a  M t1.    UNION .
1360: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61 62      SELECT a, ab
1370: 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20  s(b) FROM t1.   
1380: 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a   ORDER BY 1.  }.
1390: 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33  } {1 11 2 22 3 3
13a0: 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f  3 4 44 5 55}.do_
13b0: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 33 2e 31  test tkt2927-3.1
13c0: 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
13d0: 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61      SELECT abs(a
13e0: 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20  ), b FROM t1.   
13f0: 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53 45 4c 45   UNION .    SELE
1400: 43 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f  CT abs(a), b FRO
1410: 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42  M t1.    ORDER B
1420: 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20  Y 1.  }.} {1 11 
1430: 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35  2 22 3 33 4 44 5
1440: 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   55}.do_test tkt
1450: 32 39 32 37 2d 33 2e 31 32 20 7b 0a 20 20 64 62  2927-3.12 {.  db
1460: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1470: 43 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f  CT abs(a), b FRO
1480: 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 0a  M t1.    UNION .
1490: 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61      SELECT abs(a
14a0: 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74  ), abs(b) FROM t
14b0: 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 31  1.    ORDER BY 1
14c0: 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32  .  }.} {1 11 2 2
14d0: 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35  2 3 33 4 44 5 55
14e0: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32  }.do_test tkt292
14f0: 37 2d 33 2e 31 33 20 7b 0a 20 20 64 62 20 65 76  7-3.13 {.  db ev
1500: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1510: 61 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46  abs(a), abs(b) F
1520: 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e  ROM t1.    UNION
1530: 20 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20   .    SELECT a, 
1540: 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52  b FROM t1.    OR
1550: 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b  DER BY 1.  }.} {
1560: 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34  1 11 2 22 3 33 4
1570: 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73   44 5 55}.do_tes
1580: 74 20 74 6b 74 32 39 32 37 2d 33 2e 31 34 20 7b  t tkt2927-3.14 {
1590: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
15a0: 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20   SELECT abs(a), 
15b0: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
15c0: 20 20 20 55 4e 49 4f 4e 20 0a 20 20 20 20 53 45     UNION .    SE
15d0: 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46  LECT a, abs(b) F
15e0: 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52  ROM t1.    ORDER
15f0: 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31   BY 1.  }.} {1 1
1600: 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34  1 2 22 3 33 4 44
1610: 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74   5 55}.do_test t
1620: 6b 74 32 39 32 37 2d 33 2e 31 35 20 7b 0a 20 20  kt2927-3.15 {.  
1630: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1640: 4c 45 43 54 20 61 62 73 28 61 29 2c 20 61 62 73  LECT abs(a), abs
1650: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  (b) FROM t1.    
1660: 55 4e 49 4f 4e 20 0a 20 20 20 20 53 45 4c 45 43  UNION .    SELEC
1670: 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d  T abs(a), b FROM
1680: 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t1.    ORDER BY
1690: 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32   1.  }.} {1 11 2
16a0: 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20   22 3 33 4 44 5 
16b0: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
16c0: 39 32 37 2d 33 2e 31 36 20 7b 0a 20 20 64 62 20  927-3.16 {.  db 
16d0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
16e0: 54 20 61 62 73 28 61 29 2c 20 61 62 73 28 62 29  T abs(a), abs(b)
16f0: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49   FROM t1.    UNI
1700: 4f 4e 20 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ON .    SELECT a
1710: 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46 52  bs(a), abs(b) FR
1720: 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20  OM t1.    ORDER 
1730: 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31  BY 1.  }.} {1 11
1740: 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20   2 22 3 33 4 44 
1750: 35 20 35 35 7d 0a 0a 0a 64 6f 5f 74 65 73 74 20  5 55}...do_test 
1760: 74 6b 74 32 39 32 37 2d 34 2e 31 20 7b 0a 20 20  tkt2927-4.1 {.  
1770: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1780: 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61  LECT a+b, a-b, a
1790: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  , b FROM t1.    
17a0: 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45  UNION ALL.    SE
17b0: 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61  LECT a+b, a-b, a
17c0: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  , b FROM t1.  }.
17d0: 7d 20 7b 31 32 20 2d 31 30 20 31 20 31 31 20 32  } {12 -10 1 11 2
17e0: 34 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33  4 -20 2 22 36 -3
17f0: 30 20 33 20 33 33 20 34 38 20 2d 34 30 20 34 20  0 3 33 48 -40 4 
1800: 34 34 20 36 30 20 2d 35 30 20 35 20 35 35 20 31  44 60 -50 5 55 1
1810: 32 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32  2 -10 1 11 24 -2
1820: 30 20 32 20 32 32 20 33 36 20 2d 33 30 20 33 20  0 2 22 36 -30 3 
1830: 33 33 20 34 38 20 2d 34 30 20 34 20 34 34 20 36  33 48 -40 4 44 6
1840: 30 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f 5f 74  0 -50 5 55}.do_t
1850: 65 73 74 20 74 6b 74 32 39 32 37 2d 34 2e 32 20  est tkt2927-4.2 
1860: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
1870: 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d    SELECT a+b, a-
1880: 62 2c 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a  b, a, b FROM t1.
1890: 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20      UNION ALL.  
18a0: 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d    SELECT a+b, a-
18b0: 62 2c 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f  b, a, abs(b) FRO
18c0: 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d  M t1.  }.} {12 -
18d0: 31 30 20 31 20 31 31 20 32 34 20 2d 32 30 20 32  10 1 11 24 -20 2
18e0: 20 32 32 20 33 36 20 2d 33 30 20 33 20 33 33 20   22 36 -30 3 33 
18f0: 34 38 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d  48 -40 4 44 60 -
1900: 35 30 20 35 20 35 35 20 31 32 20 2d 31 30 20 31  50 5 55 12 -10 1
1910: 20 31 31 20 32 34 20 2d 32 30 20 32 20 32 32 20   11 24 -20 2 22 
1920: 33 36 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d  36 -30 3 33 48 -
1930: 34 30 20 34 20 34 34 20 36 30 20 2d 35 30 20 35  40 4 44 60 -50 5
1940: 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   55}.do_test tkt
1950: 32 39 32 37 2d 34 2e 33 20 7b 0a 20 20 64 62 20  2927-4.3 {.  db 
1960: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1970: 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 2c 20 62  T a+b, a-b, a, b
1980: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49   FROM t1.    UNI
1990: 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43  ON ALL.    SELEC
19a0: 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 62 73 28  T a+b, a-b, abs(
19b0: 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20  a), b FROM t1.  
19c0: 7d 0a 7d 20 7b 31 32 20 2d 31 30 20 31 20 31 31  }.} {12 -10 1 11
19d0: 20 32 34 20 2d 32 30 20 32 20 32 32 20 33 36 20   24 -20 2 22 36 
19e0: 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34 30 20  -30 3 33 48 -40 
19f0: 34 20 34 34 20 36 30 20 2d 35 30 20 35 20 35 35  4 44 60 -50 5 55
1a00: 20 31 32 20 2d 31 30 20 31 20 31 31 20 32 34 20   12 -10 1 11 24 
1a10: 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33 30 20  -20 2 22 36 -30 
1a20: 33 20 33 33 20 34 38 20 2d 34 30 20 34 20 34 34  3 33 48 -40 4 44
1a30: 20 36 30 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f   60 -50 5 55}.do
1a40: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 34 2e  _test tkt2927-4.
1a50: 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
1a60: 20 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20      SELECT a+b, 
1a70: 61 2d 62 2c 20 61 2c 20 62 20 46 52 4f 4d 20 74  a-b, a, b FROM t
1a80: 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a  1.    UNION ALL.
1a90: 20 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20      SELECT a+b, 
1aa0: 61 2d 62 2c 20 61 62 73 28 61 29 2c 20 61 62 73  a-b, abs(a), abs
1ab0: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  (b) FROM t1.  }.
1ac0: 7d 20 7b 31 32 20 2d 31 30 20 31 20 31 31 20 32  } {12 -10 1 11 2
1ad0: 34 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33  4 -20 2 22 36 -3
1ae0: 30 20 33 20 33 33 20 34 38 20 2d 34 30 20 34 20  0 3 33 48 -40 4 
1af0: 34 34 20 36 30 20 2d 35 30 20 35 20 35 35 20 31  44 60 -50 5 55 1
1b00: 32 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32  2 -10 1 11 24 -2
1b10: 30 20 32 20 32 32 20 33 36 20 2d 33 30 20 33 20  0 2 22 36 -30 3 
1b20: 33 33 20 34 38 20 2d 34 30 20 34 20 34 34 20 36  33 48 -40 4 44 6
1b30: 30 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f 5f 74  0 -50 5 55}.do_t
1b40: 65 73 74 20 74 6b 74 32 39 32 37 2d 34 2e 35 20  est tkt2927-4.5 
1b50: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
1b60: 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d    SELECT a+b, a-
1b70: 62 2c 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f  b, a, abs(b) FRO
1b80: 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41  M t1.    UNION A
1b90: 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b  LL.    SELECT a+
1ba0: 62 2c 20 61 2d 62 2c 20 61 2c 20 62 20 46 52 4f  b, a-b, a, b FRO
1bb0: 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d  M t1.  }.} {12 -
1bc0: 31 30 20 31 20 31 31 20 32 34 20 2d 32 30 20 32  10 1 11 24 -20 2
1bd0: 20 32 32 20 33 36 20 2d 33 30 20 33 20 33 33 20   22 36 -30 3 33 
1be0: 34 38 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d  48 -40 4 44 60 -
1bf0: 35 30 20 35 20 35 35 20 31 32 20 2d 31 30 20 31  50 5 55 12 -10 1
1c00: 20 31 31 20 32 34 20 2d 32 30 20 32 20 32 32 20   11 24 -20 2 22 
1c10: 33 36 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d  36 -30 3 33 48 -
1c20: 34 30 20 34 20 34 34 20 36 30 20 2d 35 30 20 35  40 4 44 60 -50 5
1c30: 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74   55}.do_test tkt
1c40: 32 39 32 37 2d 34 2e 36 20 7b 0a 20 20 64 62 20  2927-4.6 {.  db 
1c50: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1c60: 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 2c 20 61  T a+b, a-b, a, a
1c70: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
1c80: 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20    UNION ALL.    
1c90: 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c  SELECT a+b, a-b,
1ca0: 20 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20   a, abs(b) FROM 
1cb0: 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d 31 30  t1.  }.} {12 -10
1cc0: 20 31 20 31 31 20 32 34 20 2d 32 30 20 32 20 32   1 11 24 -20 2 2
1cd0: 32 20 33 36 20 2d 33 30 20 33 20 33 33 20 34 38  2 36 -30 3 33 48
1ce0: 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35 30   -40 4 44 60 -50
1cf0: 20 35 20 35 35 20 31 32 20 2d 31 30 20 31 20 31   5 55 12 -10 1 1
1d00: 31 20 32 34 20 2d 32 30 20 32 20 32 32 20 33 36  1 24 -20 2 22 36
1d10: 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34 30   -30 3 33 48 -40
1d20: 20 34 20 34 34 20 36 30 20 2d 35 30 20 35 20 35   4 44 60 -50 5 5
1d30: 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39  5}.do_test tkt29
1d40: 32 37 2d 34 2e 37 20 7b 0a 20 20 64 62 20 65 76  27-4.7 {.  db ev
1d50: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1d60: 61 2b 62 2c 20 61 2d 62 2c 20 61 2c 20 61 62 73  a+b, a-b, a, abs
1d70: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  (b) FROM t1.    
1d80: 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45  UNION ALL.    SE
1d90: 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61  LECT a+b, a-b, a
1da0: 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31  bs(a), b FROM t1
1db0: 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d 31 30 20 31  .  }.} {12 -10 1
1dc0: 20 31 31 20 32 34 20 2d 32 30 20 32 20 32 32 20   11 24 -20 2 22 
1dd0: 33 36 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d  36 -30 3 33 48 -
1de0: 34 30 20 34 20 34 34 20 36 30 20 2d 35 30 20 35  40 4 44 60 -50 5
1df0: 20 35 35 20 31 32 20 2d 31 30 20 31 20 31 31 20   55 12 -10 1 11 
1e00: 32 34 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d  24 -20 2 22 36 -
1e10: 33 30 20 33 20 33 33 20 34 38 20 2d 34 30 20 34  30 3 33 48 -40 4
1e20: 20 34 34 20 36 30 20 2d 35 30 20 35 20 35 35 7d   44 60 -50 5 55}
1e30: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
1e40: 2d 34 2e 38 20 7b 0a 20 20 64 62 20 65 76 61 6c  -4.8 {.  db eval
1e50: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b   {.    SELECT a+
1e60: 62 2c 20 61 2d 62 2c 20 61 2c 20 61 62 73 28 62  b, a-b, a, abs(b
1e70: 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e  ) FROM t1.    UN
1e80: 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45  ION ALL.    SELE
1e90: 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 62 73  CT a+b, a-b, abs
1ea0: 28 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  (a), abs(b) FROM
1eb0: 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d 31   t1.  }.} {12 -1
1ec0: 30 20 31 20 31 31 20 32 34 20 2d 32 30 20 32 20  0 1 11 24 -20 2 
1ed0: 32 32 20 33 36 20 2d 33 30 20 33 20 33 33 20 34  22 36 -30 3 33 4
1ee0: 38 20 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35  8 -40 4 44 60 -5
1ef0: 30 20 35 20 35 35 20 31 32 20 2d 31 30 20 31 20  0 5 55 12 -10 1 
1f00: 31 31 20 32 34 20 2d 32 30 20 32 20 32 32 20 33  11 24 -20 2 22 3
1f10: 36 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34  6 -30 3 33 48 -4
1f20: 30 20 34 20 34 34 20 36 30 20 2d 35 30 20 35 20  0 4 44 60 -50 5 
1f30: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
1f40: 39 32 37 2d 34 2e 39 20 7b 0a 20 20 64 62 20 65  927-4.9 {.  db e
1f50: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
1f60: 20 61 2b 62 2c 20 61 2d 62 2c 20 61 62 73 28 61   a+b, a-b, abs(a
1f70: 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20  ), b FROM t1.   
1f80: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53   UNION ALL.    S
1f90: 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20  ELECT a+b, a-b, 
1fa0: 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 7d  a, b FROM t1.  }
1fb0: 0a 7d 20 7b 31 32 20 2d 31 30 20 31 20 31 31 20  .} {12 -10 1 11 
1fc0: 32 34 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d  24 -20 2 22 36 -
1fd0: 33 30 20 33 20 33 33 20 34 38 20 2d 34 30 20 34  30 3 33 48 -40 4
1fe0: 20 34 34 20 36 30 20 2d 35 30 20 35 20 35 35 20   44 60 -50 5 55 
1ff0: 31 32 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d  12 -10 1 11 24 -
2000: 32 30 20 32 20 32 32 20 33 36 20 2d 33 30 20 33  20 2 22 36 -30 3
2010: 20 33 33 20 34 38 20 2d 34 30 20 34 20 34 34 20   33 48 -40 4 44 
2020: 36 30 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f 5f  60 -50 5 55}.do_
2030: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 34 2e 31  test tkt2927-4.1
2040: 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
2050: 20 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20      SELECT a+b, 
2060: 61 2d 62 2c 20 61 62 73 28 61 29 2c 20 62 20 46  a-b, abs(a), b F
2070: 52 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e  ROM t1.    UNION
2080: 20 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20   ALL.    SELECT 
2090: 61 2b 62 2c 20 61 2d 62 2c 20 61 2c 20 61 62 73  a+b, a-b, a, abs
20a0: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a  (b) FROM t1.  }.
20b0: 7d 20 7b 31 32 20 2d 31 30 20 31 20 31 31 20 32  } {12 -10 1 11 2
20c0: 34 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33  4 -20 2 22 36 -3
20d0: 30 20 33 20 33 33 20 34 38 20 2d 34 30 20 34 20  0 3 33 48 -40 4 
20e0: 34 34 20 36 30 20 2d 35 30 20 35 20 35 35 20 31  44 60 -50 5 55 1
20f0: 32 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32  2 -10 1 11 24 -2
2100: 30 20 32 20 32 32 20 33 36 20 2d 33 30 20 33 20  0 2 22 36 -30 3 
2110: 33 33 20 34 38 20 2d 34 30 20 34 20 34 34 20 36  33 48 -40 4 44 6
2120: 30 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f 5f 74  0 -50 5 55}.do_t
2130: 65 73 74 20 74 6b 74 32 39 32 37 2d 34 2e 31 31  est tkt2927-4.11
2140: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
2150: 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61     SELECT a+b, a
2160: 2d 62 2c 20 61 62 73 28 61 29 2c 20 62 20 46 52  -b, abs(a), b FR
2170: 4f 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20  OM t1.    UNION 
2180: 41 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ALL.    SELECT a
2190: 2b 62 2c 20 61 2d 62 2c 20 61 62 73 28 61 29 2c  +b, a-b, abs(a),
21a0: 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d   b FROM t1.  }.}
21b0: 20 7b 31 32 20 2d 31 30 20 31 20 31 31 20 32 34   {12 -10 1 11 24
21c0: 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33 30   -20 2 22 36 -30
21d0: 20 33 20 33 33 20 34 38 20 2d 34 30 20 34 20 34   3 33 48 -40 4 4
21e0: 34 20 36 30 20 2d 35 30 20 35 20 35 35 20 31 32  4 60 -50 5 55 12
21f0: 20 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32 30   -10 1 11 24 -20
2200: 20 32 20 32 32 20 33 36 20 2d 33 30 20 33 20 33   2 22 36 -30 3 3
2210: 33 20 34 38 20 2d 34 30 20 34 20 34 34 20 36 30  3 48 -40 4 44 60
2220: 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f 5f 74 65   -50 5 55}.do_te
2230: 73 74 20 74 6b 74 32 39 32 37 2d 34 2e 31 32 20  st tkt2927-4.12 
2240: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2250: 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d    SELECT a+b, a-
2260: 62 2c 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f  b, abs(a), b FRO
2270: 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41  M t1.    UNION A
2280: 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b  LL.    SELECT a+
2290: 62 2c 20 61 2d 62 2c 20 61 62 73 28 61 29 2c 20  b, a-b, abs(a), 
22a0: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
22b0: 20 7d 0a 7d 20 7b 31 32 20 2d 31 30 20 31 20 31   }.} {12 -10 1 1
22c0: 31 20 32 34 20 2d 32 30 20 32 20 32 32 20 33 36  1 24 -20 2 22 36
22d0: 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34 30   -30 3 33 48 -40
22e0: 20 34 20 34 34 20 36 30 20 2d 35 30 20 35 20 35   4 44 60 -50 5 5
22f0: 35 20 31 32 20 2d 31 30 20 31 20 31 31 20 32 34  5 12 -10 1 11 24
2300: 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33 30   -20 2 22 36 -30
2310: 20 33 20 33 33 20 34 38 20 2d 34 30 20 34 20 34   3 33 48 -40 4 4
2320: 34 20 36 30 20 2d 35 30 20 35 20 35 35 7d 0a 64  4 60 -50 5 55}.d
2330: 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 34  o_test tkt2927-4
2340: 2e 31 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .13 {.  db eval 
2350: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b 62  {.    SELECT a+b
2360: 2c 20 61 2d 62 2c 20 61 62 73 28 61 29 2c 20 61  , a-b, abs(a), a
2370: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
2380: 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20    UNION ALL.    
2390: 53 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c  SELECT a+b, a-b,
23a0: 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20   a, b FROM t1.  
23b0: 7d 0a 7d 20 7b 31 32 20 2d 31 30 20 31 20 31 31  }.} {12 -10 1 11
23c0: 20 32 34 20 2d 32 30 20 32 20 32 32 20 33 36 20   24 -20 2 22 36 
23d0: 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34 30 20  -30 3 33 48 -40 
23e0: 34 20 34 34 20 36 30 20 2d 35 30 20 35 20 35 35  4 44 60 -50 5 55
23f0: 20 31 32 20 2d 31 30 20 31 20 31 31 20 32 34 20   12 -10 1 11 24 
2400: 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33 30 20  -20 2 22 36 -30 
2410: 33 20 33 33 20 34 38 20 2d 34 30 20 34 20 34 34  3 33 48 -40 4 44
2420: 20 36 30 20 2d 35 30 20 35 20 35 35 7d 0a 64 6f   60 -50 5 55}.do
2430: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 34 2e  _test tkt2927-4.
2440: 31 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  14 {.  db eval {
2450: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c  .    SELECT a+b,
2460: 20 61 2d 62 2c 20 61 62 73 28 61 29 2c 20 61 62   a-b, abs(a), ab
2470: 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20  s(b) FROM t1.   
2480: 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20 20 20 20 53   UNION ALL.    S
2490: 45 4c 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20  ELECT a+b, a-b, 
24a0: 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74  a, abs(b) FROM t
24b0: 31 0a 20 20 7d 0a 7d 20 7b 31 32 20 2d 31 30 20  1.  }.} {12 -10 
24c0: 31 20 31 31 20 32 34 20 2d 32 30 20 32 20 32 32  1 11 24 -20 2 22
24d0: 20 33 36 20 2d 33 30 20 33 20 33 33 20 34 38 20   36 -30 3 33 48 
24e0: 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35 30 20  -40 4 44 60 -50 
24f0: 35 20 35 35 20 31 32 20 2d 31 30 20 31 20 31 31  5 55 12 -10 1 11
2500: 20 32 34 20 2d 32 30 20 32 20 32 32 20 33 36 20   24 -20 2 22 36 
2510: 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34 30 20  -30 3 33 48 -40 
2520: 34 20 34 34 20 36 30 20 2d 35 30 20 35 20 35 35  4 44 60 -50 5 55
2530: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32  }.do_test tkt292
2540: 37 2d 34 2e 31 35 20 7b 0a 20 20 64 62 20 65 76  7-4.15 {.  db ev
2550: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
2560: 61 2b 62 2c 20 61 2d 62 2c 20 61 62 73 28 61 29  a+b, a-b, abs(a)
2570: 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31  , abs(b) FROM t1
2580: 0a 20 20 20 20 55 4e 49 4f 4e 20 41 4c 4c 0a 20  .    UNION ALL. 
2590: 20 20 20 53 45 4c 45 43 54 20 61 2b 62 2c 20 61     SELECT a+b, a
25a0: 2d 62 2c 20 61 62 73 28 61 29 2c 20 62 20 46 52  -b, abs(a), b FR
25b0: 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 31 32 20  OM t1.  }.} {12 
25c0: 2d 31 30 20 31 20 31 31 20 32 34 20 2d 32 30 20  -10 1 11 24 -20 
25d0: 32 20 32 32 20 33 36 20 2d 33 30 20 33 20 33 33  2 22 36 -30 3 33
25e0: 20 34 38 20 2d 34 30 20 34 20 34 34 20 36 30 20   48 -40 4 44 60 
25f0: 2d 35 30 20 35 20 35 35 20 31 32 20 2d 31 30 20  -50 5 55 12 -10 
2600: 31 20 31 31 20 32 34 20 2d 32 30 20 32 20 32 32  1 11 24 -20 2 22
2610: 20 33 36 20 2d 33 30 20 33 20 33 33 20 34 38 20   36 -30 3 33 48 
2620: 2d 34 30 20 34 20 34 34 20 36 30 20 2d 35 30 20  -40 4 44 60 -50 
2630: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
2640: 74 32 39 32 37 2d 34 2e 31 36 20 7b 0a 20 20 64  t2927-4.16 {.  d
2650: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2660: 45 43 54 20 61 2b 62 2c 20 61 2d 62 2c 20 61 62  ECT a+b, a-b, ab
2670: 73 28 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f  s(a), abs(b) FRO
2680: 4d 20 74 31 0a 20 20 20 20 55 4e 49 4f 4e 20 41  M t1.    UNION A
2690: 4c 4c 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2b  LL.    SELECT a+
26a0: 62 2c 20 61 2d 62 2c 20 61 62 73 28 61 29 2c 20  b, a-b, abs(a), 
26b0: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
26c0: 20 7d 0a 7d 20 7b 31 32 20 2d 31 30 20 31 20 31   }.} {12 -10 1 1
26d0: 31 20 32 34 20 2d 32 30 20 32 20 32 32 20 33 36  1 24 -20 2 22 36
26e0: 20 2d 33 30 20 33 20 33 33 20 34 38 20 2d 34 30   -30 3 33 48 -40
26f0: 20 34 20 34 34 20 36 30 20 2d 35 30 20 35 20 35   4 44 60 -50 5 5
2700: 35 20 31 32 20 2d 31 30 20 31 20 31 31 20 32 34  5 12 -10 1 11 24
2710: 20 2d 32 30 20 32 20 32 32 20 33 36 20 2d 33 30   -20 2 22 36 -30
2720: 20 33 20 33 33 20 34 38 20 2d 34 30 20 34 20 34   3 33 48 -40 4 4
2730: 34 20 36 30 20 2d 35 30 20 35 20 35 35 7d 0a 0a  4 60 -50 5 55}..
2740: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
2750: 2d 35 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  -5.1 {.  db eval
2760: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
2770: 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 45   b FROM t1.    E
2780: 58 43 45 50 54 0a 20 20 20 20 53 45 4c 45 43 54  XCEPT.    SELECT
2790: 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20   a, b FROM t1.  
27a0: 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 74  }.} {}.do_test t
27b0: 6b 74 32 39 32 37 2d 35 2e 32 20 7b 0a 20 20 64  kt2927-5.2 {.  d
27c0: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
27d0: 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31  ECT a, b FROM t1
27e0: 0a 20 20 20 20 45 58 43 45 50 54 0a 20 20 20 20  .    EXCEPT.    
27f0: 53 45 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29  SELECT a, abs(b)
2800: 20 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b   FROM t1.  }.} {
2810: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32  }.do_test tkt292
2820: 37 2d 35 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  7-5.3 {.  db eva
2830: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
2840: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  , b FROM t1.    
2850: 45 58 43 45 50 54 0a 20 20 20 20 53 45 4c 45 43  EXCEPT.    SELEC
2860: 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d  T abs(a), b FROM
2870: 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f   t1.  }.} {}.do_
2880: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 35 2e 34  test tkt2927-5.4
2890: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
28a0: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20 46     SELECT a, b F
28b0: 52 4f 4d 20 74 31 0a 20 20 20 20 45 58 43 45 50  ROM t1.    EXCEP
28c0: 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73  T.    SELECT abs
28d0: 28 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  (a), abs(b) FROM
28e0: 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f   t1.  }.} {}.do_
28f0: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 35 2e 35  test tkt2927-5.5
2900: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
2910: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61 62 73     SELECT a, abs
2920: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  (b) FROM t1.    
2930: 45 58 43 45 50 54 0a 20 20 20 20 53 45 4c 45 43  EXCEPT.    SELEC
2940: 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20  T a, b FROM t1. 
2950: 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20   }.} {}.do_test 
2960: 74 6b 74 32 39 32 37 2d 35 2e 36 20 7b 0a 20 20  tkt2927-5.6 {.  
2970: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
2980: 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46  LECT a, abs(b) F
2990: 52 4f 4d 20 74 31 0a 20 20 20 20 45 58 43 45 50  ROM t1.    EXCEP
29a0: 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  T.    SELECT a, 
29b0: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
29c0: 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20   }.} {}.do_test 
29d0: 74 6b 74 32 39 32 37 2d 35 2e 37 20 7b 0a 20 20  tkt2927-5.7 {.  
29e0: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
29f0: 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46  LECT a, abs(b) F
2a00: 52 4f 4d 20 74 31 0a 20 20 20 20 45 58 43 45 50  ROM t1.    EXCEP
2a10: 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73  T.    SELECT abs
2a20: 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20  (a), b FROM t1. 
2a30: 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20   }.} {}.do_test 
2a40: 74 6b 74 32 39 32 37 2d 35 2e 38 20 7b 0a 20 20  tkt2927-5.8 {.  
2a50: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
2a60: 4c 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46  LECT a, abs(b) F
2a70: 52 4f 4d 20 74 31 0a 20 20 20 20 45 58 43 45 50  ROM t1.    EXCEP
2a80: 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62 73  T.    SELECT abs
2a90: 28 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d  (a), abs(b) FROM
2aa0: 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f   t1.  }.} {}.do_
2ab0: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 35 2e 39  test tkt2927-5.9
2ac0: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
2ad0: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
2ae0: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  , b FROM t1.    
2af0: 45 58 43 45 50 54 0a 20 20 20 20 53 45 4c 45 43  EXCEPT.    SELEC
2b00: 54 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20  T a, b FROM t1. 
2b10: 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20   }.} {}.do_test 
2b20: 74 6b 74 32 39 32 37 2d 35 2e 31 30 20 7b 0a 20  tkt2927-5.10 {. 
2b30: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
2b40: 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62 20  ELECT abs(a), b 
2b50: 46 52 4f 4d 20 74 31 0a 20 20 20 20 45 58 43 45  FROM t1.    EXCE
2b60: 50 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c  PT.    SELECT a,
2b70: 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a   abs(b) FROM t1.
2b80: 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74    }.} {}.do_test
2b90: 20 74 6b 74 32 39 32 37 2d 35 2e 31 31 20 7b 0a   tkt2927-5.11 {.
2ba0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2bb0: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62  SELECT abs(a), b
2bc0: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 45 58 43   FROM t1.    EXC
2bd0: 45 50 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61  EPT.    SELECT a
2be0: 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31  bs(a), b FROM t1
2bf0: 0a 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73  .  }.} {}.do_tes
2c00: 74 20 74 6b 74 32 39 32 37 2d 35 2e 31 32 20 7b  t tkt2927-5.12 {
2c10: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
2c20: 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20   SELECT abs(a), 
2c30: 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 45 58  b FROM t1.    EX
2c40: 43 45 50 54 0a 20 20 20 20 53 45 4c 45 43 54 20  CEPT.    SELECT 
2c50: 61 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46  abs(a), abs(b) F
2c60: 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a  ROM t1.  }.} {}.
2c70: 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d  do_test tkt2927-
2c80: 35 2e 31 33 20 7b 0a 20 20 64 62 20 65 76 61 6c  5.13 {.  db eval
2c90: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 62   {.    SELECT ab
2ca0: 73 28 61 29 2c 20 61 62 73 28 62 29 20 46 52 4f  s(a), abs(b) FRO
2cb0: 4d 20 74 31 0a 20 20 20 20 45 58 43 45 50 54 0a  M t1.    EXCEPT.
2cc0: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62 20      SELECT a, b 
2cd0: 46 52 4f 4d 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d  FROM t1.  }.} {}
2ce0: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
2cf0: 2d 35 2e 31 34 20 7b 0a 20 20 64 62 20 65 76 61  -5.14 {.  db eva
2d00: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
2d10: 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46 52  bs(a), abs(b) FR
2d20: 4f 4d 20 74 31 0a 20 20 20 20 45 58 43 45 50 54  OM t1.    EXCEPT
2d30: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61  .    SELECT a, a
2d40: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
2d50: 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 74  }.} {}.do_test t
2d60: 6b 74 32 39 32 37 2d 35 2e 31 35 20 7b 0a 20 20  kt2927-5.15 {.  
2d70: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
2d80: 4c 45 43 54 20 61 62 73 28 61 29 2c 20 61 62 73  LECT abs(a), abs
2d90: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  (b) FROM t1.    
2da0: 45 58 43 45 50 54 0a 20 20 20 20 53 45 4c 45 43  EXCEPT.    SELEC
2db0: 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d  T abs(a), b FROM
2dc0: 20 74 31 0a 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f   t1.  }.} {}.do_
2dd0: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 35 2e 31  test tkt2927-5.1
2de0: 36 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  6 {.  db eval {.
2df0: 20 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61      SELECT abs(a
2e00: 29 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74  ), abs(b) FROM t
2e10: 31 0a 20 20 20 20 45 58 43 45 50 54 0a 20 20 20  1.    EXCEPT.   
2e20: 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20   SELECT abs(a), 
2e30: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
2e40: 20 7d 0a 7d 20 7b 7d 0a 0a 0a 64 6f 5f 74 65 73   }.} {}...do_tes
2e50: 74 20 74 6b 74 32 39 32 37 2d 36 2e 31 20 7b 0a  t tkt2927-6.1 {.
2e60: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2e70: 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d  SELECT a, b FROM
2e80: 20 74 31 0a 20 20 20 20 49 4e 54 45 52 53 45 43   t1.    INTERSEC
2e90: 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  T.    SELECT a, 
2ea0: 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52  b FROM t1.    OR
2eb0: 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b  DER BY 1.  }.} {
2ec0: 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20 34  1 11 2 22 3 33 4
2ed0: 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73   44 5 55}.do_tes
2ee0: 74 20 74 6b 74 32 39 32 37 2d 36 2e 32 20 7b 0a  t tkt2927-6.2 {.
2ef0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2f00: 53 45 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d  SELECT a, b FROM
2f10: 20 74 31 0a 20 20 20 20 49 4e 54 45 52 53 45 43   t1.    INTERSEC
2f20: 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  T.    SELECT a, 
2f30: 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20  abs(b) FROM t1. 
2f40: 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20     ORDER BY 1.  
2f50: 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33  }.} {1 11 2 22 3
2f60: 20 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64   33 4 44 5 55}.d
2f70: 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 36  o_test tkt2927-6
2f80: 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .3 {.  db eval {
2f90: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 62  .    SELECT a, b
2fa0: 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 49 4e 54   FROM t1.    INT
2fb0: 45 52 53 45 43 54 0a 20 20 20 20 53 45 4c 45 43  ERSECT.    SELEC
2fc0: 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f 4d  T abs(a), b FROM
2fd0: 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59   t1.    ORDER BY
2fe0: 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32   1.  }.} {1 11 2
2ff0: 20 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20   22 3 33 4 44 5 
3000: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32  55}.do_test tkt2
3010: 39 32 37 2d 36 2e 34 20 7b 0a 20 20 64 62 20 65  927-6.4 {.  db e
3020: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
3030: 20 61 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20   a, b FROM t1.  
3040: 20 20 49 4e 54 45 52 53 45 43 54 0a 20 20 20 20    INTERSECT.    
3050: 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c 20 61  SELECT abs(a), a
3060: 62 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20  bs(b) FROM t1.  
3070: 20 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d    ORDER BY 1.  }
3080: 0a 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20  .} {1 11 2 22 3 
3090: 33 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f  33 4 44 5 55}.do
30a0: 5f 74 65 73 74 20 74 6b 74 32 39 32 37 2d 36 2e  _test tkt2927-6.
30b0: 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  5 {.  db eval {.
30c0: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61 62      SELECT a, ab
30d0: 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20  s(b) FROM t1.   
30e0: 20 49 4e 54 45 52 53 45 43 54 0a 20 20 20 20 53   INTERSECT.    S
30f0: 45 4c 45 43 54 20 61 2c 20 62 20 46 52 4f 4d 20  ELECT a, b FROM 
3100: 74 31 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  t1.    ORDER BY 
3110: 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20  1.  }.} {1 11 2 
3120: 32 32 20 33 20 33 33 20 34 20 34 34 20 35 20 35  22 3 33 4 44 5 5
3130: 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39  5}.do_test tkt29
3140: 32 37 2d 36 2e 36 20 7b 0a 20 20 64 62 20 65 76  27-6.6 {.  db ev
3150: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
3160: 61 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74  a, abs(b) FROM t
3170: 31 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54 0a  1.    INTERSECT.
3180: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61 62      SELECT a, ab
3190: 73 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20  s(b) FROM t1.   
31a0: 20 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a   ORDER BY 1.  }.
31b0: 7d 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33  } {1 11 2 22 3 3
31c0: 33 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f  3 4 44 5 55}.do_
31d0: 74 65 73 74 20 74 6b 74 32 39 32 37 2d 36 2e 37  test tkt2927-6.7
31e0: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
31f0: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61 62 73     SELECT a, abs
3200: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  (b) FROM t1.    
3210: 49 4e 54 45 52 53 45 43 54 0a 20 20 20 20 53 45  INTERSECT.    SE
3220: 4c 45 43 54 20 61 62 73 28 61 29 2c 20 62 20 46  LECT abs(a), b F
3230: 52 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52  ROM t1.    ORDER
3240: 20 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31   BY 1.  }.} {1 1
3250: 31 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34  1 2 22 3 33 4 44
3260: 20 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74   5 55}.do_test t
3270: 6b 74 32 39 32 37 2d 36 2e 38 20 7b 0a 20 20 64  kt2927-6.8 {.  d
3280: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
3290: 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46 52  ECT a, abs(b) FR
32a0: 4f 4d 20 74 31 0a 20 20 20 20 49 4e 54 45 52 53  OM t1.    INTERS
32b0: 45 43 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ECT.    SELECT a
32c0: 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46 52  bs(a), abs(b) FR
32d0: 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20  OM t1.    ORDER 
32e0: 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31  BY 1.  }.} {1 11
32f0: 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20   2 22 3 33 4 44 
3300: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
3310: 74 32 39 32 37 2d 36 2e 39 20 7b 0a 20 20 64 62  t2927-6.9 {.  db
3320: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
3330: 43 54 20 61 62 73 28 61 29 2c 20 62 20 46 52 4f  CT abs(a), b FRO
3340: 4d 20 74 31 0a 20 20 20 20 49 4e 54 45 52 53 45  M t1.    INTERSE
3350: 43 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c  CT.    SELECT a,
3360: 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 4f   b FROM t1.    O
3370: 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d 20  RDER BY 1.  }.} 
3380: 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33 20  {1 11 2 22 3 33 
3390: 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74 65  4 44 5 55}.do_te
33a0: 73 74 20 74 6b 74 32 39 32 37 2d 36 2e 31 30 20  st tkt2927-6.10 
33b0: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
33c0: 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29 2c    SELECT abs(a),
33d0: 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 49   b FROM t1.    I
33e0: 4e 54 45 52 53 45 43 54 0a 20 20 20 20 53 45 4c  NTERSECT.    SEL
33f0: 45 43 54 20 61 2c 20 61 62 73 28 62 29 20 46 52  ECT a, abs(b) FR
3400: 4f 4d 20 74 31 0a 20 20 20 20 4f 52 44 45 52 20  OM t1.    ORDER 
3410: 42 59 20 31 0a 20 20 7d 0a 7d 20 7b 31 20 31 31  BY 1.  }.} {1 11
3420: 20 32 20 32 32 20 33 20 33 33 20 34 20 34 34 20   2 22 3 33 4 44 
3430: 35 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 74 6b  5 55}.do_test tk
3440: 74 32 39 32 37 2d 36 2e 31 31 20 7b 0a 20 20 64  t2927-6.11 {.  d
3450: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
3460: 45 43 54 20 61 62 73 28 61 29 2c 20 62 20 46 52  ECT abs(a), b FR
3470: 4f 4d 20 74 31 0a 20 20 20 20 49 4e 54 45 52 53  OM t1.    INTERS
3480: 45 43 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ECT.    SELECT a
3490: 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31  bs(a), b FROM t1
34a0: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a  .    ORDER BY 1.
34b0: 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32    }.} {1 11 2 22
34c0: 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35 7d   3 33 4 44 5 55}
34d0: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
34e0: 2d 36 2e 31 32 20 7b 0a 20 20 64 62 20 65 76 61  -6.12 {.  db eva
34f0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
3500: 62 73 28 61 29 2c 20 62 20 46 52 4f 4d 20 74 31  bs(a), b FROM t1
3510: 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54 0a 20  .    INTERSECT. 
3520: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
3530: 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31  , abs(b) FROM t1
3540: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a  .    ORDER BY 1.
3550: 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32    }.} {1 11 2 22
3560: 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35 7d   3 33 4 44 5 55}
3570: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39 32 37  .do_test tkt2927
3580: 2d 36 2e 31 33 20 7b 0a 20 20 64 62 20 65 76 61  -6.13 {.  db eva
3590: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
35a0: 62 73 28 61 29 2c 20 61 62 73 28 62 29 20 46 52  bs(a), abs(b) FR
35b0: 4f 4d 20 74 31 0a 20 20 20 20 49 4e 54 45 52 53  OM t1.    INTERS
35c0: 45 43 54 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ECT.    SELECT a
35d0: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  , b FROM t1.    
35e0: 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d  ORDER BY 1.  }.}
35f0: 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33   {1 11 2 22 3 33
3600: 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74   4 44 5 55}.do_t
3610: 65 73 74 20 74 6b 74 32 39 32 37 2d 36 2e 31 34  est tkt2927-6.14
3620: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
3630: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
3640: 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31  , abs(b) FROM t1
3650: 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54 0a 20  .    INTERSECT. 
3660: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 61 62 73     SELECT a, abs
3670: 28 62 29 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  (b) FROM t1.    
3680: 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d  ORDER BY 1.  }.}
3690: 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33   {1 11 2 22 3 33
36a0: 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74   4 44 5 55}.do_t
36b0: 65 73 74 20 74 6b 74 32 39 32 37 2d 36 2e 31 35  est tkt2927-6.15
36c0: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
36d0: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
36e0: 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31  , abs(b) FROM t1
36f0: 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54 0a 20  .    INTERSECT. 
3700: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
3710: 2c 20 62 20 46 52 4f 4d 20 74 31 0a 20 20 20 20  , b FROM t1.    
3720: 4f 52 44 45 52 20 42 59 20 31 0a 20 20 7d 0a 7d  ORDER BY 1.  }.}
3730: 20 7b 31 20 31 31 20 32 20 32 32 20 33 20 33 33   {1 11 2 22 3 33
3740: 20 34 20 34 34 20 35 20 35 35 7d 0a 64 6f 5f 74   4 44 5 55}.do_t
3750: 65 73 74 20 74 6b 74 32 39 32 37 2d 36 2e 31 36  est tkt2927-6.16
3760: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
3770: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
3780: 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31  , abs(b) FROM t1
3790: 0a 20 20 20 20 49 4e 54 45 52 53 45 43 54 0a 20  .    INTERSECT. 
37a0: 20 20 20 53 45 4c 45 43 54 20 61 62 73 28 61 29     SELECT abs(a)
37b0: 2c 20 61 62 73 28 62 29 20 46 52 4f 4d 20 74 31  , abs(b) FROM t1
37c0: 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 31 0a  .    ORDER BY 1.
37d0: 20 20 7d 0a 7d 20 7b 31 20 31 31 20 32 20 32 32    }.} {1 11 2 22
37e0: 20 33 20 33 33 20 34 20 34 34 20 35 20 35 35 7d   3 33 4 44 5 55}
37f0: 0a 0a 23 20 54 69 63 6b 65 74 20 23 33 30 39 32  ..# Ticket #3092
3800: 20 69 73 20 74 68 65 20 73 61 6d 65 20 62 75 67   is the same bug
3810: 2e 20 20 42 75 74 20 61 6e 6f 74 68 65 72 20 74  .  But another t
3820: 65 73 74 20 63 61 73 65 20 6e 65 76 65 72 20 68  est case never h
3830: 75 72 74 73 2e 0a 23 0a 64 6f 5f 74 65 73 74 20  urts..#.do_test 
3840: 74 6b 74 32 39 32 37 2d 37 2e 31 20 7b 0a 20 20  tkt2927-7.1 {.  
3850: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 43 52  db eval {.    CR
3860: 45 41 54 45 20 54 41 42 4c 45 20 68 6f 73 74 20  EATE TABLE host 
3870: 28 0a 20 20 20 20 20 68 6f 73 74 6e 61 6d 65 20  (.     hostname 
3880: 74 65 78 74 20 6e 6f 74 20 6e 75 6c 6c 20 70 72  text not null pr
3890: 69 6d 61 72 79 20 6b 65 79 2c 0a 20 20 20 20 20  imary key,.     
38a0: 63 6f 6e 73 6f 6c 65 48 6f 73 74 20 74 65 78 74  consoleHost text
38b0: 2c 0a 20 20 20 20 20 63 6f 6e 73 6f 6c 65 50 6f  ,.     consolePo
38c0: 72 74 20 74 65 78 74 0a 20 20 20 20 29 3b 0a 20  rt text.    );. 
38d0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 22     INSERT INTO "
38e0: 68 6f 73 74 22 20 56 41 4c 55 45 53 28 27 61 61  host" VALUES('aa
38f0: 6c 64 30 34 27 2c 27 61 61 6c 70 30 33 27 2c 27  ld04','aalp03','
3900: 34 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  4');.    INSERT 
3910: 49 4e 54 4f 20 22 68 6f 73 74 22 20 56 41 4c 55  INTO "host" VALU
3920: 45 53 28 27 61 61 6c 64 31 37 27 2c 27 61 61 6c  ES('aald17','aal
3930: 70 30 31 27 2c 27 31 27 29 3b 0a 20 20 20 20 43  p01','1');.    C
3940: 52 45 41 54 45 20 56 49 45 57 20 63 6f 6e 73 6f  REATE VIEW conso
3950: 6c 65 6d 61 70 31 61 20 61 73 0a 20 20 20 20 20  lemap1a as.     
3960: 20 73 65 6c 65 63 74 20 68 6f 73 74 6e 61 6d 65   select hostname
3970: 2c 20 63 6f 6e 73 6f 6c 65 68 6f 73 74 2c 20 27  , consolehost, '
3980: 2f 64 65 76 2f 63 75 61 44 30 2e 27 20 7c 7c 20  /dev/cuaD0.' || 
3990: 28 63 6f 6e 73 6f 6c 65 70 6f 72 74 2d 31 29 20  (consoleport-1) 
39a0: 63 6f 6e 73 6f 6c 65 70 6f 72 74 0a 20 20 20 20  consoleport.    
39b0: 20 20 20 20 66 72 6f 6d 20 68 6f 73 74 20 77 68      from host wh
39c0: 65 72 65 20 63 6f 6e 73 6f 6c 65 68 6f 73 74 3d  ere consolehost=
39d0: 27 61 61 6c 70 30 31 27 3b 0a 20 20 20 20 43 52  'aalp01';.    CR
39e0: 45 41 54 45 20 56 49 45 57 20 63 6f 6e 73 6f 6c  EATE VIEW consol
39f0: 65 6d 61 70 31 62 20 61 73 0a 20 20 20 20 20 20  emap1b as.      
3a00: 73 65 6c 65 63 74 20 68 6f 73 74 6e 61 6d 65 20  select hostname 
3a10: 68 6f 73 74 6e 61 6d 65 2c 20 63 6f 6e 73 6f 6c  hostname, consol
3a20: 65 68 6f 73 74 20 63 6f 6e 73 6f 6c 65 68 6f 73  ehost consolehos
3a30: 74 2c 20 27 2f 64 65 76 2f 63 75 61 44 27 20 7c  t, '/dev/cuaD' |
3a40: 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 73  |.             s
3a50: 75 62 73 74 72 28 27 30 31 27 2c 31 2b 28 28 63  ubstr('01',1+((c
3a60: 6f 6e 73 6f 6c 65 70 6f 72 74 2d 31 29 2f 31 36  onsoleport-1)/16
3a70: 29 2c 31 29 20 7c 7c 0a 20 20 20 20 20 20 20 20  ),1) ||.        
3a80: 20 20 20 20 20 73 75 62 73 74 72 28 27 30 31 32       substr('012
3a90: 33 34 35 36 37 38 39 61 62 63 64 65 66 27 2c 31  3456789abcdef',1
3aa0: 2b 28 28 63 6f 6e 73 6f 6c 65 70 6f 72 74 2d 31  +((consoleport-1
3ab0: 29 25 31 36 29 2c 31 29 20 63 6f 6e 73 6f 6c 65  )%16),1) console
3ac0: 70 6f 72 74 0a 20 20 20 20 20 20 20 20 66 72 6f  port.        fro
3ad0: 6d 20 68 6f 73 74 20 77 68 65 72 65 20 63 6f 6e  m host where con
3ae0: 73 6f 6c 65 68 6f 73 74 3d 27 61 61 6c 70 30 33  solehost='aalp03
3af0: 27 3b 0a 20 20 20 20 43 52 45 41 54 45 20 56 49  ';.    CREATE VI
3b00: 45 57 20 63 6f 6e 73 6f 6c 65 6d 61 70 31 20 61  EW consolemap1 a
3b10: 73 0a 20 20 20 20 20 20 73 65 6c 65 63 74 20 2a  s.      select *
3b20: 20 66 72 6f 6d 20 63 6f 6e 73 6f 6c 65 6d 61 70   from consolemap
3b30: 31 61 0a 20 20 20 20 20 20 75 6e 69 6f 6e 0a 20  1a.      union. 
3b40: 20 20 20 20 20 73 65 6c 65 63 74 20 2a 20 66 72       select * fr
3b50: 6f 6d 20 63 6f 6e 73 6f 6c 65 6d 61 70 31 62 3b  om consolemap1b;
3b60: 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20 66 72  .    SELECT * fr
3b70: 6f 6d 20 63 6f 6e 73 6f 6c 65 6d 61 70 31 62 3b  om consolemap1b;
3b80: 0a 20 20 7d 0a 7d 20 7b 61 61 6c 64 30 34 20 61  .  }.} {aald04 a
3b90: 61 6c 70 30 33 20 2f 64 65 76 2f 63 75 61 44 30  alp03 /dev/cuaD0
3ba0: 33 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 32 39  3}.do_test tkt29
3bb0: 32 37 2d 37 2e 32 20 7b 0a 20 20 64 62 20 65 76  27-7.2 {.  db ev
3bc0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
3bd0: 2a 20 46 52 4f 4d 20 63 6f 6e 73 6f 6c 65 6d 61  * FROM consolema
3be0: 70 31 0a 20 20 7d 0a 7d 20 7b 61 61 6c 64 30 34  p1.  }.} {aald04
3bf0: 20 61 61 6c 70 30 33 20 2f 64 65 76 2f 63 75 61   aalp03 /dev/cua
3c00: 44 30 33 20 61 61 6c 64 31 37 20 61 61 6c 70 30  D03 aald17 aalp0
3c10: 31 20 2f 64 65 76 2f 63 75 61 44 30 2e 30 7d 0a  1 /dev/cuaD0.0}.
3c20: 0a 66 69 6e 69 73 68 5f 74 65 73 74 0a           .finish_test.