/ Hex Artifact Content
Login

Artifact 20ddaf66c7ab673c1d0c953889e3466139256f9a:


0000: 23 20 32 30 30 31 20 53 65 70 74 65 6d 62 65 72  # 2001 September
0010: 20 31 35 0a 23 0a 23 20 54 68 65 20 61 75 74 68   15.#.# The auth
0020: 6f 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70  or disclaims cop
0030: 79 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73  yright to this s
0040: 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20  ource code.  In 
0050: 70 6c 61 63 65 20 6f 66 0a 23 20 61 20 6c 65 67  place of.# a leg
0060: 61 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20  al notice, here 
0070: 69 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23  is a blessing:.#
0080: 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 64 6f  .#    May you do
0090: 20 67 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76   good and not ev
00a0: 69 6c 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75  il..#    May you
00b0: 20 66 69 6e 64 20 66 6f 72 67 69 76 65 6e 65 73   find forgivenes
00c0: 73 20 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 61  s for yourself a
00d0: 6e 64 20 66 6f 72 67 69 76 65 20 6f 74 68 65 72  nd forgive other
00e0: 73 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20  s..#    May you 
00f0: 73 68 61 72 65 20 66 72 65 65 6c 79 2c 20 6e 65  share freely, ne
0100: 76 65 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20  ver taking more 
0110: 74 68 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23  than you give..#
0120: 0a 23 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  .#**************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 23 20 54 68 69 73  *********.# This
0170: 20 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73   file implements
0180: 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74   regression test
0190: 73 20 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62  s for SQLite lib
01a0: 72 61 72 79 2e 20 20 54 68 65 0a 23 20 66 6f 63  rary.  The.# foc
01b0: 75 73 20 6f 66 20 74 68 69 73 20 66 69 6c 65 20  us of this file 
01c0: 69 73 20 74 65 73 74 69 6e 67 20 65 78 70 72 65  is testing expre
01d0: 73 73 69 6f 6e 73 2e 0a 23 0a 23 20 24 49 64 3a  ssions..#.# $Id:
01e0: 20 65 78 70 72 2e 74 65 73 74 2c 76 20 31 2e 33   expr.test,v 1.3
01f0: 38 20 32 30 30 34 2f 31 31 2f 31 30 20 31 32 3a  8 2004/11/10 12:
0200: 33 34 3a 32 30 20 64 61 6e 69 65 6c 6b 31 39 37  34:20 danielk197
0210: 37 20 45 78 70 20 24 0a 0a 73 65 74 20 74 65 73  7 Exp $..set tes
0220: 74 64 69 72 20 5b 66 69 6c 65 20 64 69 72 6e 61  tdir [file dirna
0230: 6d 65 20 24 61 72 67 76 30 5d 0a 73 6f 75 72 63  me $argv0].sourc
0240: 65 20 24 74 65 73 74 64 69 72 2f 74 65 73 74 65  e $testdir/teste
0250: 72 2e 74 63 6c 0a 0a 23 20 43 72 65 61 74 65 20  r.tcl..# Create 
0260: 61 20 74 61 62 6c 65 20 74 6f 20 77 6f 72 6b 20  a table to work 
0270: 77 69 74 68 2e 0a 23 0a 65 78 65 63 73 71 6c 20  with..#.execsql 
0280: 7b 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 65  {CREATE TABLE te
0290: 73 74 31 28 69 31 20 69 6e 74 2c 20 69 32 20 69  st1(i1 int, i2 i
02a0: 6e 74 2c 20 72 31 20 72 65 61 6c 2c 20 72 32 20  nt, r1 real, r2 
02b0: 72 65 61 6c 2c 20 74 31 20 74 65 78 74 2c 20 74  real, t1 text, t
02c0: 32 20 74 65 78 74 29 7d 0a 65 78 65 63 73 71 6c  2 text)}.execsql
02d0: 20 7b 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 65   {INSERT INTO te
02e0: 73 74 31 20 56 41 4c 55 45 53 28 31 2c 32 2c 31  st1 VALUES(1,2,1
02f0: 2e 31 2c 32 2e 32 2c 27 68 65 6c 6c 6f 27 2c 27  .1,2.2,'hello','
0300: 77 6f 72 6c 64 27 29 7d 0a 70 72 6f 63 20 74 65  world')}.proc te
0310: 73 74 5f 65 78 70 72 20 7b 6e 61 6d 65 20 73 65  st_expr {name se
0320: 74 74 69 6e 67 73 20 65 78 70 72 20 72 65 73 75  ttings expr resu
0330: 6c 74 7d 20 7b 0a 20 20 64 6f 5f 74 65 73 74 20  lt} {.  do_test 
0340: 24 6e 61 6d 65 20 5b 66 6f 72 6d 61 74 20 7b 0a  $name [format {.
0350: 20 20 20 20 65 78 65 63 73 71 6c 20 7b 42 45 47      execsql {BEG
0360: 49 4e 3b 20 55 50 44 41 54 45 20 74 65 73 74 31  IN; UPDATE test1
0370: 20 53 45 54 20 25 73 3b 20 53 45 4c 45 43 54 20   SET %s; SELECT 
0380: 25 73 20 46 52 4f 4d 20 74 65 73 74 31 3b 20 52  %s FROM test1; R
0390: 4f 4c 4c 42 41 43 4b 3b 7d 0a 20 20 7d 20 24 73  OLLBACK;}.  } $s
03a0: 65 74 74 69 6e 67 73 20 24 65 78 70 72 5d 20 24  ettings $expr] $
03b0: 72 65 73 75 6c 74 0a 7d 0a 0a 74 65 73 74 5f 65  result.}..test_e
03c0: 78 70 72 20 65 78 70 72 2d 31 2e 31 20 7b 69 31  xpr expr-1.1 {i1
03d0: 3d 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69 31 2b  =10, i2=20} {i1+
03e0: 69 32 7d 20 33 30 0a 74 65 73 74 5f 65 78 70 72  i2} 30.test_expr
03f0: 20 65 78 70 72 2d 31 2e 32 20 7b 69 31 3d 31 30   expr-1.2 {i1=10
0400: 2c 20 69 32 3d 32 30 7d 20 7b 69 31 2d 69 32 7d  , i2=20} {i1-i2}
0410: 20 2d 31 30 0a 74 65 73 74 5f 65 78 70 72 20 65   -10.test_expr e
0420: 78 70 72 2d 31 2e 33 20 7b 69 31 3d 31 30 2c 20  xpr-1.3 {i1=10, 
0430: 69 32 3d 32 30 7d 20 7b 69 31 2a 69 32 7d 20 32  i2=20} {i1*i2} 2
0440: 30 30 0a 23 20 75 70 64 61 74 65 20 66 6f 72 20  00.# update for 
0450: 73 71 6c 69 74 65 33 20 76 33 3a 20 43 68 61 6e  sqlite3 v3: Chan
0460: 67 65 20 30 2e 35 20 74 6f 20 30 20 69 6e 20 65  ge 0.5 to 0 in e
0470: 78 70 72 31 2e 34 20 64 75 65 20 74 6f 20 6d 61  xpr1.4 due to ma
0480: 6e 69 66 65 73 74 20 74 79 70 65 73 2e 0a 74 65  nifest types..te
0490: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 34  st_expr expr-1.4
04a0: 20 7b 69 31 3d 31 30 2c 20 69 32 3d 32 30 7d 20   {i1=10, i2=20} 
04b0: 7b 69 31 2f 69 32 7d 20 30 0a 74 65 73 74 5f 65  {i1/i2} 0.test_e
04c0: 78 70 72 20 65 78 70 72 2d 31 2e 35 20 7b 69 31  xpr expr-1.5 {i1
04d0: 3d 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 2f  =10, i2=20} {i2/
04e0: 69 31 7d 20 32 0a 74 65 73 74 5f 65 78 70 72 20  i1} 2.test_expr 
04f0: 65 78 70 72 2d 31 2e 36 20 7b 69 31 3d 31 30 2c  expr-1.6 {i1=10,
0500: 20 69 32 3d 32 30 7d 20 7b 69 32 3c 69 31 7d 20   i2=20} {i2<i1} 
0510: 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  0.test_expr expr
0520: 2d 31 2e 37 20 7b 69 31 3d 31 30 2c 20 69 32 3d  -1.7 {i1=10, i2=
0530: 32 30 7d 20 7b 69 32 3c 3d 69 31 7d 20 30 0a 74  20} {i2<=i1} 0.t
0540: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0550: 38 20 7b 69 31 3d 31 30 2c 20 69 32 3d 32 30 7d  8 {i1=10, i2=20}
0560: 20 7b 69 32 3e 69 31 7d 20 31 0a 74 65 73 74 5f   {i2>i1} 1.test_
0570: 65 78 70 72 20 65 78 70 72 2d 31 2e 39 20 7b 69  expr expr-1.9 {i
0580: 31 3d 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32  1=10, i2=20} {i2
0590: 3e 3d 69 31 7d 20 31 0a 74 65 73 74 5f 65 78 70  >=i1} 1.test_exp
05a0: 72 20 65 78 70 72 2d 31 2e 31 30 20 7b 69 31 3d  r expr-1.10 {i1=
05b0: 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 21 3d  10, i2=20} {i2!=
05c0: 69 31 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  i1} 1.test_expr 
05d0: 65 78 70 72 2d 31 2e 31 31 20 7b 69 31 3d 31 30  expr-1.11 {i1=10
05e0: 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3d 69 31 7d  , i2=20} {i2=i1}
05f0: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
0600: 72 2d 31 2e 31 32 20 7b 69 31 3d 31 30 2c 20 69  r-1.12 {i1=10, i
0610: 32 3d 32 30 7d 20 7b 69 32 3c 3e 69 31 7d 20 31  2=20} {i2<>i1} 1
0620: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0630: 31 2e 31 33 20 7b 69 31 3d 31 30 2c 20 69 32 3d  1.13 {i1=10, i2=
0640: 32 30 7d 20 7b 69 32 3d 3d 69 31 7d 20 30 0a 74  20} {i2==i1} 0.t
0650: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0660: 31 34 20 7b 69 31 3d 32 30 2c 20 69 32 3d 32 30  14 {i1=20, i2=20
0670: 7d 20 7b 69 32 3c 69 31 7d 20 30 0a 74 65 73 74  } {i2<i1} 0.test
0680: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 31 35 20  _expr expr-1.15 
0690: 7b 69 31 3d 32 30 2c 20 69 32 3d 32 30 7d 20 7b  {i1=20, i2=20} {
06a0: 69 32 3c 3d 69 31 7d 20 31 0a 74 65 73 74 5f 65  i2<=i1} 1.test_e
06b0: 78 70 72 20 65 78 70 72 2d 31 2e 31 36 20 7b 69  xpr expr-1.16 {i
06c0: 31 3d 32 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32  1=20, i2=20} {i2
06d0: 3e 69 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72  >i1} 0.test_expr
06e0: 20 65 78 70 72 2d 31 2e 31 37 20 7b 69 31 3d 32   expr-1.17 {i1=2
06f0: 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3e 3d 69  0, i2=20} {i2>=i
0700: 31 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  1} 1.test_expr e
0710: 78 70 72 2d 31 2e 31 38 20 7b 69 31 3d 32 30 2c  xpr-1.18 {i1=20,
0720: 20 69 32 3d 32 30 7d 20 7b 69 32 21 3d 69 31 7d   i2=20} {i2!=i1}
0730: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
0740: 72 2d 31 2e 31 39 20 7b 69 31 3d 32 30 2c 20 69  r-1.19 {i1=20, i
0750: 32 3d 32 30 7d 20 7b 69 32 3d 69 31 7d 20 31 0a  2=20} {i2=i1} 1.
0760: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
0770: 2e 32 30 20 7b 69 31 3d 32 30 2c 20 69 32 3d 32  .20 {i1=20, i2=2
0780: 30 7d 20 7b 69 32 3c 3e 69 31 7d 20 30 0a 74 65  0} {i2<>i1} 0.te
0790: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 32  st_expr expr-1.2
07a0: 31 20 7b 69 31 3d 32 30 2c 20 69 32 3d 32 30 7d  1 {i1=20, i2=20}
07b0: 20 7b 69 32 3d 3d 69 31 7d 20 31 0a 74 65 73 74   {i2==i1} 1.test
07c0: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 32 32 20  _expr expr-1.22 
07d0: 7b 69 31 3d 31 2c 20 69 32 3d 32 2c 20 72 31 3d  {i1=1, i2=2, r1=
07e0: 33 2e 30 7d 20 7b 69 31 2b 69 32 2a 72 31 7d 20  3.0} {i1+i2*r1} 
07f0: 7b 37 2e 30 7d 0a 74 65 73 74 5f 65 78 70 72 20  {7.0}.test_expr 
0800: 65 78 70 72 2d 31 2e 32 33 20 7b 69 31 3d 31 2c  expr-1.23 {i1=1,
0810: 20 69 32 3d 32 2c 20 72 31 3d 33 2e 30 7d 20 7b   i2=2, r1=3.0} {
0820: 28 69 31 2b 69 32 29 2a 72 31 7d 20 7b 39 2e 30  (i1+i2)*r1} {9.0
0830: 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  }.test_expr expr
0840: 2d 31 2e 32 34 20 7b 69 31 3d 31 2c 20 69 32 3d  -1.24 {i1=1, i2=
0850: 32 7d 20 7b 6d 69 6e 28 69 31 2c 69 32 2c 69 31  2} {min(i1,i2,i1
0860: 2b 69 32 2c 69 31 2d 69 32 29 7d 20 7b 2d 31 7d  +i2,i1-i2)} {-1}
0870: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0880: 31 2e 32 35 20 7b 69 31 3d 31 2c 20 69 32 3d 32  1.25 {i1=1, i2=2
0890: 7d 20 7b 6d 61 78 28 69 31 2c 69 32 2c 69 31 2b  } {max(i1,i2,i1+
08a0: 69 32 2c 69 31 2d 69 32 29 7d 20 7b 33 7d 0a 74  i2,i1-i2)} {3}.t
08b0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
08c0: 32 36 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20  26 {i1=1, i2=2} 
08d0: 7b 6d 61 78 28 69 31 2c 69 32 2c 69 31 2b 69 32  {max(i1,i2,i1+i2
08e0: 2c 69 31 2d 69 32 29 7d 20 7b 33 7d 0a 74 65 73  ,i1-i2)} {3}.tes
08f0: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 32 37  t_expr expr-1.27
0900: 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 69   {i1=1, i2=2} {i
0910: 31 3d 3d 31 20 41 4e 44 20 69 32 3d 32 7d 20 7b  1==1 AND i2=2} {
0920: 31 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  1}.test_expr exp
0930: 72 2d 31 2e 32 38 20 7b 69 31 3d 31 2c 20 69 32  r-1.28 {i1=1, i2
0940: 3d 32 7d 20 7b 69 31 3d 32 20 41 4e 44 20 69 32  =2} {i1=2 AND i2
0950: 3d 31 7d 20 7b 30 7d 0a 74 65 73 74 5f 65 78 70  =1} {0}.test_exp
0960: 72 20 65 78 70 72 2d 31 2e 32 39 20 7b 69 31 3d  r expr-1.29 {i1=
0970: 31 2c 20 69 32 3d 32 7d 20 7b 69 31 3d 31 20 41  1, i2=2} {i1=1 A
0980: 4e 44 20 69 32 3d 31 7d 20 7b 30 7d 0a 74 65 73  ND i2=1} {0}.tes
0990: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 33 30  t_expr expr-1.30
09a0: 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 69   {i1=1, i2=2} {i
09b0: 31 3d 32 20 41 4e 44 20 69 32 3d 32 7d 20 7b 30  1=2 AND i2=2} {0
09c0: 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  }.test_expr expr
09d0: 2d 31 2e 33 31 20 7b 69 31 3d 31 2c 20 69 32 3d  -1.31 {i1=1, i2=
09e0: 32 7d 20 7b 69 31 3d 3d 31 20 4f 52 20 69 32 3d  2} {i1==1 OR i2=
09f0: 32 7d 20 7b 31 7d 0a 74 65 73 74 5f 65 78 70 72  2} {1}.test_expr
0a00: 20 65 78 70 72 2d 31 2e 33 32 20 7b 69 31 3d 31   expr-1.32 {i1=1
0a10: 2c 20 69 32 3d 32 7d 20 7b 69 31 3d 32 20 4f 52  , i2=2} {i1=2 OR
0a20: 20 69 32 3d 31 7d 20 7b 30 7d 0a 74 65 73 74 5f   i2=1} {0}.test_
0a30: 65 78 70 72 20 65 78 70 72 2d 31 2e 33 33 20 7b  expr expr-1.33 {
0a40: 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 69 31 3d  i1=1, i2=2} {i1=
0a50: 31 20 4f 52 20 69 32 3d 31 7d 20 7b 31 7d 0a 74  1 OR i2=1} {1}.t
0a60: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0a70: 33 34 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20  34 {i1=1, i2=2} 
0a80: 7b 69 31 3d 32 20 4f 52 20 69 32 3d 32 7d 20 7b  {i1=2 OR i2=2} {
0a90: 31 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  1}.test_expr exp
0aa0: 72 2d 31 2e 33 35 20 7b 69 31 3d 31 2c 20 69 32  r-1.35 {i1=1, i2
0ab0: 3d 32 7d 20 7b 69 31 2d 69 32 3d 2d 31 7d 20 7b  =2} {i1-i2=-1} {
0ac0: 31 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  1}.test_expr exp
0ad0: 72 2d 31 2e 33 36 20 7b 69 31 3d 31 2c 20 69 32  r-1.36 {i1=1, i2
0ae0: 3d 30 7d 20 7b 6e 6f 74 20 69 31 7d 20 7b 30 7d  =0} {not i1} {0}
0af0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0b00: 31 2e 33 37 20 7b 69 31 3d 31 2c 20 69 32 3d 30  1.37 {i1=1, i2=0
0b10: 7d 20 7b 6e 6f 74 20 69 32 7d 20 7b 31 7d 0a 74  } {not i2} {1}.t
0b20: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0b30: 33 38 20 7b 69 31 3d 31 7d 20 7b 2d 69 31 7d 20  38 {i1=1} {-i1} 
0b40: 7b 2d 31 7d 0a 74 65 73 74 5f 65 78 70 72 20 65  {-1}.test_expr e
0b50: 78 70 72 2d 31 2e 33 39 20 7b 69 31 3d 31 7d 20  xpr-1.39 {i1=1} 
0b60: 7b 2b 69 31 7d 20 7b 31 7d 0a 74 65 73 74 5f 65  {+i1} {1}.test_e
0b70: 78 70 72 20 65 78 70 72 2d 31 2e 34 30 20 7b 69  xpr expr-1.40 {i
0b80: 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 2b 28 69 32  1=1, i2=2} {+(i2
0b90: 2b 69 31 29 7d 20 7b 33 7d 0a 74 65 73 74 5f 65  +i1)} {3}.test_e
0ba0: 78 70 72 20 65 78 70 72 2d 31 2e 34 31 20 7b 69  xpr expr-1.41 {i
0bb0: 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 2d 28 69 32  1=1, i2=2} {-(i2
0bc0: 2b 69 31 29 7d 20 7b 2d 33 7d 0a 74 65 73 74 5f  +i1)} {-3}.test_
0bd0: 65 78 70 72 20 65 78 70 72 2d 31 2e 34 32 20 7b  expr expr-1.42 {
0be0: 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 69 31 7c  i1=1, i2=2} {i1|
0bf0: 69 32 7d 20 7b 33 7d 0a 74 65 73 74 5f 65 78 70  i2} {3}.test_exp
0c00: 72 20 65 78 70 72 2d 31 2e 34 32 62 20 7b 69 31  r expr-1.42b {i1
0c10: 3d 31 2c 20 69 32 3d 32 7d 20 7b 34 7c 32 7d 20  =1, i2=2} {4|2} 
0c20: 7b 36 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78  {6}.test_expr ex
0c30: 70 72 2d 31 2e 34 33 20 7b 69 31 3d 31 2c 20 69  pr-1.43 {i1=1, i
0c40: 32 3d 32 7d 20 7b 69 31 26 69 32 7d 20 7b 30 7d  2=2} {i1&i2} {0}
0c50: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0c60: 31 2e 34 33 62 20 7b 69 31 3d 31 2c 20 69 32 3d  1.43b {i1=1, i2=
0c70: 32 7d 20 7b 34 26 35 7d 20 7b 34 7d 0a 74 65 73  2} {4&5} {4}.tes
0c80: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 34 34  t_expr expr-1.44
0c90: 20 7b 69 31 3d 31 7d 20 7b 7e 69 31 7d 20 7b 2d   {i1=1} {~i1} {-
0ca0: 32 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  2}.test_expr exp
0cb0: 72 2d 31 2e 34 35 20 7b 69 31 3d 31 2c 20 69 32  r-1.45 {i1=1, i2
0cc0: 3d 33 7d 20 7b 69 31 3c 3c 69 32 7d 20 7b 38 7d  =3} {i1<<i2} {8}
0cd0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0ce0: 31 2e 34 36 20 7b 69 31 3d 33 32 2c 20 69 32 3d  1.46 {i1=32, i2=
0cf0: 33 7d 20 7b 69 31 3e 3e 69 32 7d 20 7b 34 7d 0a  3} {i1>>i2} {4}.
0d00: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
0d10: 2e 34 37 20 7b 69 31 3d 39 39 39 39 39 39 39 39  .47 {i1=99999999
0d20: 39 39 2c 20 69 32 3d 38 38 38 38 38 38 38 38 38  99, i2=888888888
0d30: 38 7d 20 7b 69 31 3c 69 32 7d 20 30 0a 74 65 73  8} {i1<i2} 0.tes
0d40: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 34 38  t_expr expr-1.48
0d50: 20 7b 69 31 3d 39 39 39 39 39 39 39 39 39 39 2c   {i1=9999999999,
0d60: 20 69 32 3d 38 38 38 38 38 38 38 38 38 38 7d 20   i2=8888888888} 
0d70: 7b 69 31 3d 69 32 7d 20 30 0a 74 65 73 74 5f 65  {i1=i2} 0.test_e
0d80: 78 70 72 20 65 78 70 72 2d 31 2e 34 39 20 7b 69  xpr expr-1.49 {i
0d90: 31 3d 39 39 39 39 39 39 39 39 39 39 2c 20 69 32  1=9999999999, i2
0da0: 3d 38 38 38 38 38 38 38 38 38 38 7d 20 7b 69 31  =8888888888} {i1
0db0: 3e 69 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72  >i2} 1.test_expr
0dc0: 20 65 78 70 72 2d 31 2e 35 30 20 7b 69 31 3d 39   expr-1.50 {i1=9
0dd0: 39 39 39 39 39 39 39 39 39 39 2c 20 69 32 3d 39  9999999999, i2=9
0de0: 39 39 39 39 39 39 39 39 39 38 7d 20 7b 69 31 3c  9999999998} {i1<
0df0: 69 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  i2} 0.test_expr 
0e00: 65 78 70 72 2d 31 2e 35 31 20 7b 69 31 3d 39 39  expr-1.51 {i1=99
0e10: 39 39 39 39 39 39 39 39 39 2c 20 69 32 3d 39 39  999999999, i2=99
0e20: 39 39 39 39 39 39 39 39 38 7d 20 7b 69 31 3d 69  999999998} {i1=i
0e30: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
0e40: 78 70 72 2d 31 2e 35 32 20 7b 69 31 3d 39 39 39  xpr-1.52 {i1=999
0e50: 39 39 39 39 39 39 39 39 2c 20 69 32 3d 39 39 39  99999999, i2=999
0e60: 39 39 39 39 39 39 39 38 7d 20 7b 69 31 3e 69 32  99999998} {i1>i2
0e70: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
0e80: 70 72 2d 31 2e 35 33 20 7b 69 31 3d 30 39 39 39  pr-1.53 {i1=0999
0e90: 39 39 39 39 39 39 39 39 2c 20 69 32 3d 39 39 39  99999999, i2=999
0ea0: 39 39 39 39 39 39 39 39 7d 20 7b 69 31 3c 69 32  99999999} {i1<i2
0eb0: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
0ec0: 70 72 2d 31 2e 35 34 20 7b 69 31 3d 30 39 39 39  pr-1.54 {i1=0999
0ed0: 39 39 39 39 39 39 39 39 2c 20 69 32 3d 39 39 39  99999999, i2=999
0ee0: 39 39 39 39 39 39 39 39 7d 20 7b 69 31 3d 69 32  99999999} {i1=i2
0ef0: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
0f00: 70 72 2d 31 2e 35 35 20 7b 69 31 3d 30 39 39 39  pr-1.55 {i1=0999
0f10: 39 39 39 39 39 39 39 39 2c 20 69 32 3d 39 39 39  99999999, i2=999
0f20: 39 39 39 39 39 39 39 39 7d 20 7b 69 31 3e 69 32  99999999} {i1>i2
0f30: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
0f40: 70 72 2d 31 2e 35 36 20 7b 69 31 3d 32 35 2c 20  pr-1.56 {i1=25, 
0f50: 69 32 3d 31 31 7d 20 7b 69 31 25 69 32 7d 20 33  i2=11} {i1%i2} 3
0f60: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0f70: 31 2e 35 38 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69  1.58 {i1=NULL, i
0f80: 32 3d 31 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69  2=1} {coalesce(i
0f90: 31 2b 69 32 2c 39 39 29 7d 20 39 39 0a 74 65 73  1+i2,99)} 99.tes
0fa0: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 35 39  t_expr expr-1.59
0fb0: 20 7b 69 31 3d 31 2c 20 69 32 3d 4e 55 4c 4c 7d   {i1=1, i2=NULL}
0fc0: 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 2b 69 32   {coalesce(i1+i2
0fd0: 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78  ,99)} 99.test_ex
0fe0: 70 72 20 65 78 70 72 2d 31 2e 36 30 20 7b 69 31  pr expr-1.60 {i1
0ff0: 3d 4e 55 4c 4c 2c 20 69 32 3d 4e 55 4c 4c 7d 20  =NULL, i2=NULL} 
1000: 7b 63 6f 61 6c 65 73 63 65 28 69 31 2b 69 32 2c  {coalesce(i1+i2,
1010: 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70  99)} 99.test_exp
1020: 72 20 65 78 70 72 2d 31 2e 36 31 20 7b 69 31 3d  r expr-1.61 {i1=
1030: 4e 55 4c 4c 2c 20 69 32 3d 31 7d 20 7b 63 6f 61  NULL, i2=1} {coa
1040: 6c 65 73 63 65 28 69 31 2d 69 32 2c 39 39 29 7d  lesce(i1-i2,99)}
1050: 20 39 39 0a 74 65 73 74 5f 65 78 70 72 20 65 78   99.test_expr ex
1060: 70 72 2d 31 2e 36 32 20 7b 69 31 3d 31 2c 20 69  pr-1.62 {i1=1, i
1070: 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63  2=NULL} {coalesc
1080: 65 28 69 31 2d 69 32 2c 39 39 29 7d 20 39 39 0a  e(i1-i2,99)} 99.
1090: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
10a0: 2e 36 33 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32  .63 {i1=NULL, i2
10b0: 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65  =NULL} {coalesce
10c0: 28 69 31 2d 69 32 2c 39 39 29 7d 20 39 39 0a 74  (i1-i2,99)} 99.t
10d0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
10e0: 36 34 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d  64 {i1=NULL, i2=
10f0: 31 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 2a  1} {coalesce(i1*
1100: 69 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f  i2,99)} 99.test_
1110: 65 78 70 72 20 65 78 70 72 2d 31 2e 36 35 20 7b  expr expr-1.65 {
1120: 69 31 3d 31 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b  i1=1, i2=NULL} {
1130: 63 6f 61 6c 65 73 63 65 28 69 31 2a 69 32 2c 39  coalesce(i1*i2,9
1140: 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70 72  9)} 99.test_expr
1150: 20 65 78 70 72 2d 31 2e 36 36 20 7b 69 31 3d 4e   expr-1.66 {i1=N
1160: 55 4c 4c 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b 63  ULL, i2=NULL} {c
1170: 6f 61 6c 65 73 63 65 28 69 31 2a 69 32 2c 39 39  oalesce(i1*i2,99
1180: 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70 72 20  )} 99.test_expr 
1190: 65 78 70 72 2d 31 2e 36 37 20 7b 69 31 3d 4e 55  expr-1.67 {i1=NU
11a0: 4c 4c 2c 20 69 32 3d 31 7d 20 7b 63 6f 61 6c 65  LL, i2=1} {coale
11b0: 73 63 65 28 69 31 2f 69 32 2c 39 39 29 7d 20 39  sce(i1/i2,99)} 9
11c0: 39 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  9.test_expr expr
11d0: 2d 31 2e 36 38 20 7b 69 31 3d 31 2c 20 69 32 3d  -1.68 {i1=1, i2=
11e0: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
11f0: 69 31 2f 69 32 2c 39 39 29 7d 20 39 39 0a 74 65  i1/i2,99)} 99.te
1200: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 36  st_expr expr-1.6
1210: 39 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d 4e  9 {i1=NULL, i2=N
1220: 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69  ULL} {coalesce(i
1230: 31 2f 69 32 2c 39 39 29 7d 20 39 39 0a 74 65 73  1/i2,99)} 99.tes
1240: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 37 30  t_expr expr-1.70
1250: 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d 31 7d   {i1=NULL, i2=1}
1260: 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 3c 69 32   {coalesce(i1<i2
1270: 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78  ,99)} 99.test_ex
1280: 70 72 20 65 78 70 72 2d 31 2e 37 31 20 7b 69 31  pr expr-1.71 {i1
1290: 3d 31 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b 63 6f  =1, i2=NULL} {co
12a0: 61 6c 65 73 63 65 28 69 31 3e 69 32 2c 39 39 29  alesce(i1>i2,99)
12b0: 7d 20 39 39 0a 74 65 73 74 5f 65 78 70 72 20 65  } 99.test_expr e
12c0: 78 70 72 2d 31 2e 37 32 20 7b 69 31 3d 4e 55 4c  xpr-1.72 {i1=NUL
12d0: 4c 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61  L, i2=NULL} {coa
12e0: 6c 65 73 63 65 28 69 31 3c 3d 69 32 2c 39 39 29  lesce(i1<=i2,99)
12f0: 7d 20 39 39 0a 74 65 73 74 5f 65 78 70 72 20 65  } 99.test_expr e
1300: 78 70 72 2d 31 2e 37 33 20 7b 69 31 3d 4e 55 4c  xpr-1.73 {i1=NUL
1310: 4c 2c 20 69 32 3d 31 7d 20 7b 63 6f 61 6c 65 73  L, i2=1} {coales
1320: 63 65 28 69 31 3e 3d 69 32 2c 39 39 29 7d 20 39  ce(i1>=i2,99)} 9
1330: 39 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  9.test_expr expr
1340: 2d 31 2e 37 34 20 7b 69 31 3d 31 2c 20 69 32 3d  -1.74 {i1=1, i2=
1350: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
1360: 69 31 21 3d 69 32 2c 39 39 29 7d 20 39 39 0a 74  i1!=i2,99)} 99.t
1370: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
1380: 37 35 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d  75 {i1=NULL, i2=
1390: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
13a0: 69 31 3d 3d 69 32 2c 39 39 29 7d 20 39 39 0a 74  i1==i2,99)} 99.t
13b0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
13c0: 37 36 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d  76 {i1=NULL, i2=
13d0: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
13e0: 6e 6f 74 20 69 31 2c 39 39 29 7d 20 39 39 0a 74  not i1,99)} 99.t
13f0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
1400: 37 37 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d  77 {i1=NULL, i2=
1410: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
1420: 2d 69 31 2c 39 39 29 7d 20 39 39 0a 74 65 73 74  -i1,99)} 99.test
1430: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 37 38 20  _expr expr-1.78 
1440: 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d 4e 55 4c  {i1=NULL, i2=NUL
1450: 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 20  L} {coalesce(i1 
1460: 49 53 20 4e 55 4c 4c 20 41 4e 44 20 69 32 3d 35  IS NULL AND i2=5
1470: 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78  ,99)} 99.test_ex
1480: 70 72 20 65 78 70 72 2d 31 2e 37 39 20 7b 69 31  pr expr-1.79 {i1
1490: 3d 4e 55 4c 4c 2c 20 69 32 3d 4e 55 4c 4c 7d 20  =NULL, i2=NULL} 
14a0: 7b 63 6f 61 6c 65 73 63 65 28 69 31 20 49 53 20  {coalesce(i1 IS 
14b0: 4e 55 4c 4c 20 4f 52 20 69 32 3d 35 2c 39 39 29  NULL OR i2=5,99)
14c0: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
14d0: 70 72 2d 31 2e 38 30 20 7b 69 31 3d 4e 55 4c 4c  pr-1.80 {i1=NULL
14e0: 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c  , i2=NULL} {coal
14f0: 65 73 63 65 28 69 31 3d 35 20 41 4e 44 20 69 32  esce(i1=5 AND i2
1500: 20 49 53 20 4e 55 4c 4c 2c 39 39 29 7d 20 39 39   IS NULL,99)} 99
1510: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1520: 31 2e 38 31 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69  1.81 {i1=NULL, i
1530: 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63  2=NULL} {coalesc
1540: 65 28 69 31 3d 35 20 4f 52 20 69 32 20 49 53 20  e(i1=5 OR i2 IS 
1550: 4e 55 4c 4c 2c 39 39 29 7d 20 31 0a 74 65 73 74  NULL,99)} 1.test
1560: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 38 32 20  _expr expr-1.82 
1570: 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d 33 7d 20  {i1=NULL, i2=3} 
1580: 7b 63 6f 61 6c 65 73 63 65 28 6d 69 6e 28 69 31  {coalesce(min(i1
1590: 2c 69 32 2c 31 29 2c 39 39 29 7d 20 39 39 0a 74  ,i2,1),99)} 99.t
15a0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
15b0: 38 33 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d  83 {i1=NULL, i2=
15c0: 33 7d 20 7b 63 6f 61 6c 65 73 63 65 28 6d 61 78  3} {coalesce(max
15d0: 28 69 31 2c 69 32 2c 31 29 2c 39 39 29 7d 20 39  (i1,i2,1),99)} 9
15e0: 39 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  9.test_expr expr
15f0: 2d 31 2e 38 34 20 7b 69 31 3d 33 2c 20 69 32 3d  -1.84 {i1=3, i2=
1600: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
1610: 6d 69 6e 28 69 31 2c 69 32 2c 31 29 2c 39 39 29  min(i1,i2,1),99)
1620: 7d 20 39 39 0a 74 65 73 74 5f 65 78 70 72 20 65  } 99.test_expr e
1630: 78 70 72 2d 31 2e 38 35 20 7b 69 31 3d 33 2c 20  xpr-1.85 {i1=3, 
1640: 69 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73  i2=NULL} {coales
1650: 63 65 28 6d 61 78 28 69 31 2c 69 32 2c 31 29 2c  ce(max(i1,i2,1),
1660: 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70  99)} 99.test_exp
1670: 72 20 65 78 70 72 2d 31 2e 38 36 20 7b 69 31 3d  r expr-1.86 {i1=
1680: 33 2c 20 69 32 3d 38 7d 20 7b 35 20 62 65 74 77  3, i2=8} {5 betw
1690: 65 65 6e 20 69 31 20 61 6e 64 20 69 32 7d 20 31  een i1 and i2} 1
16a0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
16b0: 31 2e 38 37 20 7b 69 31 3d 33 2c 20 69 32 3d 38  1.87 {i1=3, i2=8
16c0: 7d 20 7b 35 20 6e 6f 74 20 62 65 74 77 65 65 6e  } {5 not between
16d0: 20 69 31 20 61 6e 64 20 69 32 7d 20 30 0a 74 65   i1 and i2} 0.te
16e0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 38  st_expr expr-1.8
16f0: 38 20 7b 69 31 3d 33 2c 20 69 32 3d 38 7d 20 7b  8 {i1=3, i2=8} {
1700: 35 35 20 62 65 74 77 65 65 6e 20 69 31 20 61 6e  55 between i1 an
1710: 64 20 69 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  d i2} 0.test_exp
1720: 72 20 65 78 70 72 2d 31 2e 38 39 20 7b 69 31 3d  r expr-1.89 {i1=
1730: 33 2c 20 69 32 3d 38 7d 20 7b 35 35 20 6e 6f 74  3, i2=8} {55 not
1740: 20 62 65 74 77 65 65 6e 20 69 31 20 61 6e 64 20   between i1 and 
1750: 69 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  i2} 1.test_expr 
1760: 65 78 70 72 2d 31 2e 39 30 20 7b 69 31 3d 33 2c  expr-1.90 {i1=3,
1770: 20 69 32 3d 4e 55 4c 4c 7d 20 7b 35 20 62 65 74   i2=NULL} {5 bet
1780: 77 65 65 6e 20 69 31 20 61 6e 64 20 69 32 7d 20  ween i1 and i2} 
1790: 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72 20 65  {{}}.test_expr e
17a0: 78 70 72 2d 31 2e 39 31 20 7b 69 31 3d 33 2c 20  xpr-1.91 {i1=3, 
17b0: 69 32 3d 4e 55 4c 4c 7d 20 7b 35 20 6e 6f 74 20  i2=NULL} {5 not 
17c0: 62 65 74 77 65 65 6e 20 69 31 20 61 6e 64 20 69  between i1 and i
17d0: 32 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70  2} {{}}.test_exp
17e0: 72 20 65 78 70 72 2d 31 2e 39 32 20 7b 69 31 3d  r expr-1.92 {i1=
17f0: 33 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b 32 20 62  3, i2=NULL} {2 b
1800: 65 74 77 65 65 6e 20 69 31 20 61 6e 64 20 69 32  etween i1 and i2
1810: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
1820: 70 72 2d 31 2e 39 33 20 7b 69 31 3d 33 2c 20 69  pr-1.93 {i1=3, i
1830: 32 3d 4e 55 4c 4c 7d 20 7b 32 20 6e 6f 74 20 62  2=NULL} {2 not b
1840: 65 74 77 65 65 6e 20 69 31 20 61 6e 64 20 69 32  etween i1 and i2
1850: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
1860: 70 72 2d 31 2e 39 34 20 7b 69 31 3d 4e 55 4c 4c  pr-1.94 {i1=NULL
1870: 2c 20 69 32 3d 38 7d 20 7b 32 20 62 65 74 77 65  , i2=8} {2 betwe
1880: 65 6e 20 69 31 20 61 6e 64 20 69 32 7d 20 7b 7b  en i1 and i2} {{
1890: 7d 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  }}.test_expr exp
18a0: 72 2d 31 2e 39 35 20 7b 69 31 3d 4e 55 4c 4c 2c  r-1.95 {i1=NULL,
18b0: 20 69 32 3d 38 7d 20 7b 32 20 6e 6f 74 20 62 65   i2=8} {2 not be
18c0: 74 77 65 65 6e 20 69 31 20 61 6e 64 20 69 32 7d  tween i1 and i2}
18d0: 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72 20   {{}}.test_expr 
18e0: 65 78 70 72 2d 31 2e 39 34 20 7b 69 31 3d 4e 55  expr-1.94 {i1=NU
18f0: 4c 4c 2c 20 69 32 3d 38 7d 20 7b 35 35 20 62 65  LL, i2=8} {55 be
1900: 74 77 65 65 6e 20 69 31 20 61 6e 64 20 69 32 7d  tween i1 and i2}
1910: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
1920: 72 2d 31 2e 39 35 20 7b 69 31 3d 4e 55 4c 4c 2c  r-1.95 {i1=NULL,
1930: 20 69 32 3d 38 7d 20 7b 35 35 20 6e 6f 74 20 62   i2=8} {55 not b
1940: 65 74 77 65 65 6e 20 69 31 20 61 6e 64 20 69 32  etween i1 and i2
1950: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
1960: 70 72 2d 31 2e 39 36 20 7b 69 31 3d 4e 55 4c 4c  pr-1.96 {i1=NULL
1970: 2c 20 69 32 3d 33 7d 20 7b 63 6f 61 6c 65 73 63  , i2=3} {coalesc
1980: 65 28 69 31 3c 3c 69 32 2c 39 39 29 7d 20 39 39  e(i1<<i2,99)} 99
1990: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
19a0: 31 2e 39 37 20 7b 69 31 3d 33 32 2c 20 69 32 3d  1.97 {i1=32, i2=
19b0: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
19c0: 69 31 3e 3e 69 32 2c 39 39 29 7d 20 39 39 0a 74  i1>>i2,99)} 99.t
19d0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
19e0: 39 38 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d  98 {i1=NULL, i2=
19f0: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
1a00: 69 31 7c 69 32 2c 39 39 29 7d 20 39 39 0a 74 65  i1|i2,99)} 99.te
1a10: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 39  st_expr expr-1.9
1a20: 39 20 7b 69 31 3d 33 32 2c 20 69 32 3d 4e 55 4c  9 {i1=32, i2=NUL
1a30: 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 26  L} {coalesce(i1&
1a40: 69 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f  i2,99)} 99.test_
1a50: 65 78 70 72 20 65 78 70 72 2d 31 2e 31 30 30 20  expr expr-1.100 
1a60: 7b 69 31 3d 31 2c 20 69 32 3d 27 27 7d 20 7b 69  {i1=1, i2=''} {i
1a70: 31 3d 69 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  1=i2} 0.test_exp
1a80: 72 20 65 78 70 72 2d 31 2e 31 30 31 20 7b 69 31  r expr-1.101 {i1
1a90: 3d 30 2c 20 69 32 3d 27 27 7d 20 7b 69 31 3d 69  =0, i2=''} {i1=i
1aa0: 32 7d 20 30 0a 0a 74 65 73 74 5f 65 78 70 72 20  2} 0..test_expr 
1ab0: 65 78 70 72 2d 32 2e 31 20 7b 72 31 3d 31 2e 32  expr-2.1 {r1=1.2
1ac0: 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 31 2b  3, r2=2.34} {r1+
1ad0: 72 32 7d 20 33 2e 35 37 0a 74 65 73 74 5f 65 78  r2} 3.57.test_ex
1ae0: 70 72 20 65 78 70 72 2d 32 2e 32 20 7b 72 31 3d  pr expr-2.2 {r1=
1af0: 31 2e 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b  1.23, r2=2.34} {
1b00: 72 31 2d 72 32 7d 20 2d 31 2e 31 31 0a 74 65 73  r1-r2} -1.11.tes
1b10: 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 33 20  t_expr expr-2.3 
1b20: 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33  {r1=1.23, r2=2.3
1b30: 34 7d 20 7b 72 31 2a 72 32 7d 20 32 2e 38 37 38  4} {r1*r2} 2.878
1b40: 32 0a 73 65 74 20 74 63 6c 5f 70 72 65 63 69 73  2.set tcl_precis
1b50: 69 6f 6e 20 31 35 0a 74 65 73 74 5f 65 78 70 72  ion 15.test_expr
1b60: 20 65 78 70 72 2d 32 2e 34 20 7b 72 31 3d 31 2e   expr-2.4 {r1=1.
1b70: 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 31  23, r2=2.34} {r1
1b80: 2f 72 32 7d 20 30 2e 35 32 35 36 34 31 30 32 35  /r2} 0.525641025
1b90: 36 34 31 30 32 36 0a 74 65 73 74 5f 65 78 70 72  641026.test_expr
1ba0: 20 65 78 70 72 2d 32 2e 35 20 7b 72 31 3d 31 2e   expr-2.5 {r1=1.
1bb0: 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32  23, r2=2.34} {r2
1bc0: 2f 72 31 7d 20 31 2e 39 30 32 34 33 39 30 32 34  /r1} 1.902439024
1bd0: 33 39 30 32 34 0a 74 65 73 74 5f 65 78 70 72 20  39024.test_expr 
1be0: 65 78 70 72 2d 32 2e 36 20 7b 72 31 3d 31 2e 32  expr-2.6 {r1=1.2
1bf0: 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32 3c  3, r2=2.34} {r2<
1c00: 72 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  r1} 0.test_expr 
1c10: 65 78 70 72 2d 32 2e 37 20 7b 72 31 3d 31 2e 32  expr-2.7 {r1=1.2
1c20: 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32 3c  3, r2=2.34} {r2<
1c30: 3d 72 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72  =r1} 0.test_expr
1c40: 20 65 78 70 72 2d 32 2e 38 20 7b 72 31 3d 31 2e   expr-2.8 {r1=1.
1c50: 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32  23, r2=2.34} {r2
1c60: 3e 72 31 7d 20 31 0a 74 65 73 74 5f 65 78 70 72  >r1} 1.test_expr
1c70: 20 65 78 70 72 2d 32 2e 39 20 7b 72 31 3d 31 2e   expr-2.9 {r1=1.
1c80: 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32  23, r2=2.34} {r2
1c90: 3e 3d 72 31 7d 20 31 0a 74 65 73 74 5f 65 78 70  >=r1} 1.test_exp
1ca0: 72 20 65 78 70 72 2d 32 2e 31 30 20 7b 72 31 3d  r expr-2.10 {r1=
1cb0: 31 2e 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b  1.23, r2=2.34} {
1cc0: 72 32 21 3d 72 31 7d 20 31 0a 74 65 73 74 5f 65  r2!=r1} 1.test_e
1cd0: 78 70 72 20 65 78 70 72 2d 32 2e 31 31 20 7b 72  xpr expr-2.11 {r
1ce0: 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33 34 7d  1=1.23, r2=2.34}
1cf0: 20 7b 72 32 3d 72 31 7d 20 30 0a 74 65 73 74 5f   {r2=r1} 0.test_
1d00: 65 78 70 72 20 65 78 70 72 2d 32 2e 31 32 20 7b  expr expr-2.12 {
1d10: 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33 34  r1=1.23, r2=2.34
1d20: 7d 20 7b 72 32 3c 3e 72 31 7d 20 31 0a 74 65 73  } {r2<>r1} 1.tes
1d30: 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 31 33  t_expr expr-2.13
1d40: 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e   {r1=1.23, r2=2.
1d50: 33 34 7d 20 7b 72 32 3d 3d 72 31 7d 20 30 0a 74  34} {r2==r1} 0.t
1d60: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e  est_expr expr-2.
1d70: 31 34 20 7b 72 31 3d 32 2e 33 34 2c 20 72 32 3d  14 {r1=2.34, r2=
1d80: 32 2e 33 34 7d 20 7b 72 32 3c 72 31 7d 20 30 0a  2.34} {r2<r1} 0.
1d90: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32  test_expr expr-2
1da0: 2e 31 35 20 7b 72 31 3d 32 2e 33 34 2c 20 72 32  .15 {r1=2.34, r2
1db0: 3d 32 2e 33 34 7d 20 7b 72 32 3c 3d 72 31 7d 20  =2.34} {r2<=r1} 
1dc0: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
1dd0: 2d 32 2e 31 36 20 7b 72 31 3d 32 2e 33 34 2c 20  -2.16 {r1=2.34, 
1de0: 72 32 3d 32 2e 33 34 7d 20 7b 72 32 3e 72 31 7d  r2=2.34} {r2>r1}
1df0: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
1e00: 72 2d 32 2e 31 37 20 7b 72 31 3d 32 2e 33 34 2c  r-2.17 {r1=2.34,
1e10: 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32 3e 3d 72   r2=2.34} {r2>=r
1e20: 31 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  1} 1.test_expr e
1e30: 78 70 72 2d 32 2e 31 38 20 7b 72 31 3d 32 2e 33  xpr-2.18 {r1=2.3
1e40: 34 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32 21  4, r2=2.34} {r2!
1e50: 3d 72 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72  =r1} 0.test_expr
1e60: 20 65 78 70 72 2d 32 2e 31 39 20 7b 72 31 3d 32   expr-2.19 {r1=2
1e70: 2e 33 34 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72  .34, r2=2.34} {r
1e80: 32 3d 72 31 7d 20 31 0a 74 65 73 74 5f 65 78 70  2=r1} 1.test_exp
1e90: 72 20 65 78 70 72 2d 32 2e 32 30 20 7b 72 31 3d  r expr-2.20 {r1=
1ea0: 32 2e 33 34 2c 20 72 32 3d 32 2e 33 34 7d 20 7b  2.34, r2=2.34} {
1eb0: 72 32 3c 3e 72 31 7d 20 30 0a 74 65 73 74 5f 65  r2<>r1} 0.test_e
1ec0: 78 70 72 20 65 78 70 72 2d 32 2e 32 31 20 7b 72  xpr expr-2.21 {r
1ed0: 31 3d 32 2e 33 34 2c 20 72 32 3d 32 2e 33 34 7d  1=2.34, r2=2.34}
1ee0: 20 7b 72 32 3d 3d 72 31 7d 20 31 0a 74 65 73 74   {r2==r1} 1.test
1ef0: 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 32 32 20  _expr expr-2.22 
1f00: 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33  {r1=1.23, r2=2.3
1f10: 34 7d 20 7b 6d 69 6e 28 72 31 2c 72 32 2c 72 31  4} {min(r1,r2,r1
1f20: 2b 72 32 2c 72 31 2d 72 32 29 7d 20 7b 2d 31 2e  +r2,r1-r2)} {-1.
1f30: 31 31 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78  11}.test_expr ex
1f40: 70 72 2d 32 2e 32 33 20 7b 72 31 3d 31 2e 32 33  pr-2.23 {r1=1.23
1f50: 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 6d 61 78 28  , r2=2.34} {max(
1f60: 72 31 2c 72 32 2c 72 31 2b 72 32 2c 72 31 2d 72  r1,r2,r1+r2,r1-r
1f70: 32 29 7d 20 7b 33 2e 35 37 7d 0a 74 65 73 74 5f  2)} {3.57}.test_
1f80: 65 78 70 72 20 65 78 70 72 2d 32 2e 32 34 20 7b  expr expr-2.24 {
1f90: 72 31 3d 32 35 2e 30 2c 20 72 32 3d 31 31 2e 30  r1=25.0, r2=11.0
1fa0: 7d 20 7b 72 31 25 72 32 7d 20 33 2e 30 0a 74 65  } {r1%r2} 3.0.te
1fb0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 32  st_expr expr-2.2
1fc0: 35 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 4e  5 {r1=1.23, r2=N
1fd0: 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 72  ULL} {coalesce(r
1fe0: 31 2b 72 32 2c 39 39 2e 30 29 7d 20 39 39 2e 30  1+r2,99.0)} 99.0
1ff0: 0a 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  ..test_expr expr
2000: 2d 33 2e 31 20 7b 74 31 3d 27 61 62 63 27 2c 20  -3.1 {t1='abc', 
2010: 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31 3c 74 32  t2='xyz'} {t1<t2
2020: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
2030: 70 72 2d 33 2e 32 20 7b 74 31 3d 27 78 79 7a 27  pr-3.2 {t1='xyz'
2040: 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31 3c  , t2='abc'} {t1<
2050: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
2060: 65 78 70 72 2d 33 2e 33 20 7b 74 31 3d 27 61 62  expr-3.3 {t1='ab
2070: 63 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74  c', t2='abc'} {t
2080: 31 3c 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  1<t2} 0.test_exp
2090: 72 20 65 78 70 72 2d 33 2e 34 20 7b 74 31 3d 27  r expr-3.4 {t1='
20a0: 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20  abc', t2='xyz'} 
20b0: 7b 74 31 3c 3d 74 32 7d 20 31 0a 74 65 73 74 5f  {t1<=t2} 1.test_
20c0: 65 78 70 72 20 65 78 70 72 2d 33 2e 35 20 7b 74  expr expr-3.5 {t
20d0: 31 3d 27 78 79 7a 27 2c 20 74 32 3d 27 61 62 63  1='xyz', t2='abc
20e0: 27 7d 20 7b 74 31 3c 3d 74 32 7d 20 30 0a 74 65  '} {t1<=t2} 0.te
20f0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 36  st_expr expr-3.6
2100: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27   {t1='abc', t2='
2110: 61 62 63 27 7d 20 7b 74 31 3c 3d 74 32 7d 20 31  abc'} {t1<=t2} 1
2120: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
2130: 33 2e 37 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  3.7 {t1='abc', t
2140: 32 3d 27 78 79 7a 27 7d 20 7b 74 31 3e 74 32 7d  2='xyz'} {t1>t2}
2150: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
2160: 72 2d 33 2e 38 20 7b 74 31 3d 27 78 79 7a 27 2c  r-3.8 {t1='xyz',
2170: 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31 3e 74   t2='abc'} {t1>t
2180: 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 1.test_expr e
2190: 78 70 72 2d 33 2e 39 20 7b 74 31 3d 27 61 62 63  xpr-3.9 {t1='abc
21a0: 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31  ', t2='abc'} {t1
21b0: 3e 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72  >t2} 0.test_expr
21c0: 20 65 78 70 72 2d 33 2e 31 30 20 7b 74 31 3d 27   expr-3.10 {t1='
21d0: 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20  abc', t2='xyz'} 
21e0: 7b 74 31 3e 3d 74 32 7d 20 30 0a 74 65 73 74 5f  {t1>=t2} 0.test_
21f0: 65 78 70 72 20 65 78 70 72 2d 33 2e 31 31 20 7b  expr expr-3.11 {
2200: 74 31 3d 27 78 79 7a 27 2c 20 74 32 3d 27 61 62  t1='xyz', t2='ab
2210: 63 27 7d 20 7b 74 31 3e 3d 74 32 7d 20 31 0a 74  c'} {t1>=t2} 1.t
2220: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e  est_expr expr-3.
2230: 31 32 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32  12 {t1='abc', t2
2240: 3d 27 61 62 63 27 7d 20 7b 74 31 3e 3d 74 32 7d  ='abc'} {t1>=t2}
2250: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
2260: 72 2d 33 2e 31 33 20 7b 74 31 3d 27 61 62 63 27  r-3.13 {t1='abc'
2270: 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31 3d  , t2='xyz'} {t1=
2280: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
2290: 65 78 70 72 2d 33 2e 31 34 20 7b 74 31 3d 27 78  expr-3.14 {t1='x
22a0: 79 7a 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b  yz', t2='abc'} {
22b0: 74 31 3d 74 32 7d 20 30 0a 74 65 73 74 5f 65 78  t1=t2} 0.test_ex
22c0: 70 72 20 65 78 70 72 2d 33 2e 31 35 20 7b 74 31  pr expr-3.15 {t1
22d0: 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 62 63 27  ='abc', t2='abc'
22e0: 7d 20 7b 74 31 3d 74 32 7d 20 31 0a 74 65 73 74  } {t1=t2} 1.test
22f0: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 31 36 20  _expr expr-3.16 
2300: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 78  {t1='abc', t2='x
2310: 79 7a 27 7d 20 7b 74 31 3d 3d 74 32 7d 20 30 0a  yz'} {t1==t2} 0.
2320: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33  test_expr expr-3
2330: 2e 31 37 20 7b 74 31 3d 27 78 79 7a 27 2c 20 74  .17 {t1='xyz', t
2340: 32 3d 27 61 62 63 27 7d 20 7b 74 31 3d 3d 74 32  2='abc'} {t1==t2
2350: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
2360: 70 72 2d 33 2e 31 38 20 7b 74 31 3d 27 61 62 63  pr-3.18 {t1='abc
2370: 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31  ', t2='abc'} {t1
2380: 3d 3d 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  ==t2} 1.test_exp
2390: 72 20 65 78 70 72 2d 33 2e 31 39 20 7b 74 31 3d  r expr-3.19 {t1=
23a0: 27 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d  'abc', t2='xyz'}
23b0: 20 7b 74 31 3c 3e 74 32 7d 20 31 0a 74 65 73 74   {t1<>t2} 1.test
23c0: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 32 30 20  _expr expr-3.20 
23d0: 7b 74 31 3d 27 78 79 7a 27 2c 20 74 32 3d 27 61  {t1='xyz', t2='a
23e0: 62 63 27 7d 20 7b 74 31 3c 3e 74 32 7d 20 31 0a  bc'} {t1<>t2} 1.
23f0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33  test_expr expr-3
2400: 2e 32 31 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  .21 {t1='abc', t
2410: 32 3d 27 61 62 63 27 7d 20 7b 74 31 3c 3e 74 32  2='abc'} {t1<>t2
2420: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
2430: 70 72 2d 33 2e 32 32 20 7b 74 31 3d 27 61 62 63  pr-3.22 {t1='abc
2440: 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31  ', t2='xyz'} {t1
2450: 21 3d 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  !=t2} 1.test_exp
2460: 72 20 65 78 70 72 2d 33 2e 32 33 20 7b 74 31 3d  r expr-3.23 {t1=
2470: 27 78 79 7a 27 2c 20 74 32 3d 27 61 62 63 27 7d  'xyz', t2='abc'}
2480: 20 7b 74 31 21 3d 74 32 7d 20 31 0a 74 65 73 74   {t1!=t2} 1.test
2490: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 32 34 20  _expr expr-3.24 
24a0: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61  {t1='abc', t2='a
24b0: 62 63 27 7d 20 7b 74 31 21 3d 74 32 7d 20 30 0a  bc'} {t1!=t2} 0.
24c0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33  test_expr expr-3
24d0: 2e 32 35 20 7b 74 31 3d 4e 55 4c 4c 2c 20 74 32  .25 {t1=NULL, t2
24e0: 3d 27 68 69 27 7d 20 7b 74 31 20 69 73 6e 75 6c  ='hi'} {t1 isnul
24f0: 6c 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  l} 1.test_expr e
2500: 78 70 72 2d 33 2e 32 35 62 20 7b 74 31 3d 4e 55  xpr-3.25b {t1=NU
2510: 4c 4c 2c 20 74 32 3d 27 68 69 27 7d 20 7b 74 31  LL, t2='hi'} {t1
2520: 20 69 73 20 6e 75 6c 6c 7d 20 31 0a 74 65 73 74   is null} 1.test
2530: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 32 36 20  _expr expr-3.26 
2540: 7b 74 31 3d 4e 55 4c 4c 2c 20 74 32 3d 27 68 69  {t1=NULL, t2='hi
2550: 27 7d 20 7b 74 32 20 69 73 6e 75 6c 6c 7d 20 30  '} {t2 isnull} 0
2560: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
2570: 33 2e 32 37 20 7b 74 31 3d 4e 55 4c 4c 2c 20 74  3.27 {t1=NULL, t
2580: 32 3d 27 68 69 27 7d 20 7b 74 31 20 6e 6f 74 6e  2='hi'} {t1 notn
2590: 75 6c 6c 7d 20 30 0a 74 65 73 74 5f 65 78 70 72  ull} 0.test_expr
25a0: 20 65 78 70 72 2d 33 2e 32 38 20 7b 74 31 3d 4e   expr-3.28 {t1=N
25b0: 55 4c 4c 2c 20 74 32 3d 27 68 69 27 7d 20 7b 74  ULL, t2='hi'} {t
25c0: 32 20 6e 6f 74 6e 75 6c 6c 7d 20 31 0a 74 65 73  2 notnull} 1.tes
25d0: 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 32 38  t_expr expr-3.28
25e0: 62 20 7b 74 31 3d 4e 55 4c 4c 2c 20 74 32 3d 27  b {t1=NULL, t2='
25f0: 68 69 27 7d 20 7b 74 32 20 69 73 20 6e 6f 74 20  hi'} {t2 is not 
2600: 6e 75 6c 6c 7d 20 31 0a 74 65 73 74 5f 65 78 70  null} 1.test_exp
2610: 72 20 65 78 70 72 2d 33 2e 32 39 20 7b 74 31 3d  r expr-3.29 {t1=
2620: 27 78 79 7a 27 2c 20 74 32 3d 27 61 62 63 27 7d  'xyz', t2='abc'}
2630: 20 7b 74 31 7c 7c 74 32 7d 20 7b 78 79 7a 61 62   {t1||t2} {xyzab
2640: 63 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  c}.test_expr exp
2650: 72 2d 33 2e 33 30 20 7b 74 31 3d 4e 55 4c 4c 2c  r-3.30 {t1=NULL,
2660: 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31 7c 7c   t2='abc'} {t1||
2670: 74 32 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78  t2} {{}}.test_ex
2680: 70 72 20 65 78 70 72 2d 33 2e 33 31 20 7b 74 31  pr expr-3.31 {t1
2690: 3d 27 78 79 7a 27 2c 20 74 32 3d 4e 55 4c 4c 7d  ='xyz', t2=NULL}
26a0: 20 7b 74 31 7c 7c 74 32 7d 20 7b 7b 7d 7d 0a 74   {t1||t2} {{}}.t
26b0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e  est_expr expr-3.
26c0: 33 32 20 7b 74 31 3d 27 78 79 7a 27 2c 20 74 32  32 {t1='xyz', t2
26d0: 3d 27 61 62 63 27 7d 20 7b 74 31 7c 7c 27 20 68  ='abc'} {t1||' h
26e0: 69 20 27 7c 7c 74 32 7d 20 7b 7b 78 79 7a 20 68  i '||t2} {{xyz h
26f0: 69 20 61 62 63 7d 7d 0a 74 65 73 74 5f 65 78 70  i abc}}.test_exp
2700: 72 20 65 70 78 72 2d 33 2e 33 33 20 7b 74 31 3d  r epxr-3.33 {t1=
2710: 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d 20  'abc', t2=NULL} 
2720: 7b 63 6f 61 6c 65 73 63 65 28 74 31 3c 74 32 2c  {coalesce(t1<t2,
2730: 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70  99)} 99.test_exp
2740: 72 20 65 70 78 72 2d 33 2e 33 34 20 7b 74 31 3d  r epxr-3.34 {t1=
2750: 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d 20  'abc', t2=NULL} 
2760: 7b 63 6f 61 6c 65 73 63 65 28 74 32 3c 74 31 2c  {coalesce(t2<t1,
2770: 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70  99)} 99.test_exp
2780: 72 20 65 70 78 72 2d 33 2e 33 35 20 7b 74 31 3d  r epxr-3.35 {t1=
2790: 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d 20  'abc', t2=NULL} 
27a0: 7b 63 6f 61 6c 65 73 63 65 28 74 31 3e 74 32 2c  {coalesce(t1>t2,
27b0: 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70  99)} 99.test_exp
27c0: 72 20 65 70 78 72 2d 33 2e 33 36 20 7b 74 31 3d  r epxr-3.36 {t1=
27d0: 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d 20  'abc', t2=NULL} 
27e0: 7b 63 6f 61 6c 65 73 63 65 28 74 32 3e 74 31 2c  {coalesce(t2>t1,
27f0: 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70  99)} 99.test_exp
2800: 72 20 65 70 78 72 2d 33 2e 33 37 20 7b 74 31 3d  r epxr-3.37 {t1=
2810: 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d 20  'abc', t2=NULL} 
2820: 7b 63 6f 61 6c 65 73 63 65 28 74 31 3c 3d 74 32  {coalesce(t1<=t2
2830: 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78  ,99)} 99.test_ex
2840: 70 72 20 65 70 78 72 2d 33 2e 33 38 20 7b 74 31  pr epxr-3.38 {t1
2850: 3d 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d  ='abc', t2=NULL}
2860: 20 7b 63 6f 61 6c 65 73 63 65 28 74 32 3c 3d 74   {coalesce(t2<=t
2870: 31 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65  1,99)} 99.test_e
2880: 78 70 72 20 65 70 78 72 2d 33 2e 33 39 20 7b 74  xpr epxr-3.39 {t
2890: 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c 4c  1='abc', t2=NULL
28a0: 7d 20 7b 63 6f 61 6c 65 73 63 65 28 74 31 3e 3d  } {coalesce(t1>=
28b0: 74 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f  t2,99)} 99.test_
28c0: 65 78 70 72 20 65 70 78 72 2d 33 2e 34 30 20 7b  expr epxr-3.40 {
28d0: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c  t1='abc', t2=NUL
28e0: 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 74 32 3e  L} {coalesce(t2>
28f0: 3d 74 31 2c 39 39 29 7d 20 39 39 0a 74 65 73 74  =t1,99)} 99.test
2900: 5f 65 78 70 72 20 65 70 78 72 2d 33 2e 34 31 20  _expr epxr-3.41 
2910: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e 55  {t1='abc', t2=NU
2920: 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 74 31  LL} {coalesce(t1
2930: 3d 3d 74 32 2c 39 39 29 7d 20 39 39 0a 74 65 73  ==t2,99)} 99.tes
2940: 74 5f 65 78 70 72 20 65 70 78 72 2d 33 2e 34 32  t_expr epxr-3.42
2950: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e   {t1='abc', t2=N
2960: 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 74  ULL} {coalesce(t
2970: 32 3d 3d 74 31 2c 39 39 29 7d 20 39 39 0a 74 65  2==t1,99)} 99.te
2980: 73 74 5f 65 78 70 72 20 65 70 78 72 2d 33 2e 34  st_expr epxr-3.4
2990: 33 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d  3 {t1='abc', t2=
29a0: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
29b0: 74 31 21 3d 74 32 2c 39 39 29 7d 20 39 39 0a 74  t1!=t2,99)} 99.t
29c0: 65 73 74 5f 65 78 70 72 20 65 70 78 72 2d 33 2e  est_expr epxr-3.
29d0: 34 34 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32  44 {t1='abc', t2
29e0: 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65  =NULL} {coalesce
29f0: 28 74 32 21 3d 74 31 2c 39 39 29 7d 20 39 39 0a  (t2!=t1,99)} 99.
2a00: 0a 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  ..test_expr expr
2a10: 2d 34 2e 31 20 7b 74 31 3d 27 61 62 63 27 2c 20  -4.1 {t1='abc', 
2a20: 74 32 3d 27 41 62 63 27 7d 20 7b 74 31 3c 74 32  t2='Abc'} {t1<t2
2a30: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
2a40: 70 72 2d 34 2e 32 20 7b 74 31 3d 27 61 62 63 27  pr-4.2 {t1='abc'
2a50: 2c 20 74 32 3d 27 41 62 63 27 7d 20 7b 74 31 3e  , t2='Abc'} {t1>
2a60: 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  t2} 1.test_expr 
2a70: 65 78 70 72 2d 34 2e 33 20 7b 74 31 3d 27 61 62  expr-4.3 {t1='ab
2a80: 63 27 2c 20 74 32 3d 27 42 62 63 27 7d 20 7b 74  c', t2='Bbc'} {t
2a90: 31 3c 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  1<t2} 0.test_exp
2aa0: 72 20 65 78 70 72 2d 34 2e 34 20 7b 74 31 3d 27  r expr-4.4 {t1='
2ab0: 61 62 63 27 2c 20 74 32 3d 27 42 62 63 27 7d 20  abc', t2='Bbc'} 
2ac0: 7b 74 31 3e 74 32 7d 20 31 0a 74 65 73 74 5f 65  {t1>t2} 1.test_e
2ad0: 78 70 72 20 65 78 70 72 2d 34 2e 35 20 7b 74 31  xpr expr-4.5 {t1
2ae0: 3d 27 30 27 2c 20 74 32 3d 27 30 2e 30 27 7d 20  ='0', t2='0.0'} 
2af0: 7b 74 31 3d 3d 74 32 7d 20 30 0a 74 65 73 74 5f  {t1==t2} 0.test_
2b00: 65 78 70 72 20 65 78 70 72 2d 34 2e 36 20 7b 74  expr expr-4.6 {t
2b10: 31 3d 27 30 2e 30 30 30 27 2c 20 74 32 3d 27 30  1='0.000', t2='0
2b20: 2e 30 27 7d 20 7b 74 31 3d 3d 74 32 7d 20 30 0a  .0'} {t1==t2} 0.
2b30: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 34  test_expr expr-4
2b40: 2e 37 20 7b 74 31 3d 27 20 30 2e 30 30 30 27 2c  .7 {t1=' 0.000',
2b50: 20 74 32 3d 27 20 30 2e 30 27 7d 20 7b 74 31 3d   t2=' 0.0'} {t1=
2b60: 3d 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72  =t2} 0.test_expr
2b70: 20 65 78 70 72 2d 34 2e 38 20 7b 74 31 3d 27 30   expr-4.8 {t1='0
2b80: 2e 30 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b  .0', t2='abc'} {
2b90: 74 31 3c 74 32 7d 20 31 0a 74 65 73 74 5f 65 78  t1<t2} 1.test_ex
2ba0: 70 72 20 65 78 70 72 2d 34 2e 39 20 7b 74 31 3d  pr expr-4.9 {t1=
2bb0: 27 30 2e 30 27 2c 20 74 32 3d 27 61 62 63 27 7d  '0.0', t2='abc'}
2bc0: 20 7b 74 31 3d 3d 74 32 7d 20 30 0a 74 65 73 74   {t1==t2} 0.test
2bd0: 5f 65 78 70 72 20 65 78 70 72 2d 34 2e 31 30 20  _expr expr-4.10 
2be0: 7b 72 31 3d 27 30 2e 30 27 2c 20 72 32 3d 27 61  {r1='0.0', r2='a
2bf0: 62 63 27 7d 20 7b 72 31 3e 72 32 7d 20 30 0a 74  bc'} {r1>r2} 0.t
2c00: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 34 2e  est_expr expr-4.
2c10: 31 31 20 7b 72 31 3d 27 61 62 63 27 2c 20 72 32  11 {r1='abc', r2
2c20: 3d 27 41 62 63 27 7d 20 7b 72 31 3c 72 32 7d 20  ='Abc'} {r1<r2} 
2c30: 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  0.test_expr expr
2c40: 2d 34 2e 31 32 20 7b 72 31 3d 27 61 62 63 27 2c  -4.12 {r1='abc',
2c50: 20 72 32 3d 27 41 62 63 27 7d 20 7b 72 31 3e 72   r2='Abc'} {r1>r
2c60: 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 1.test_expr e
2c70: 78 70 72 2d 34 2e 31 33 20 7b 72 31 3d 27 61 62  xpr-4.13 {r1='ab
2c80: 63 27 2c 20 72 32 3d 27 42 62 63 27 7d 20 7b 72  c', r2='Bbc'} {r
2c90: 31 3c 72 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  1<r2} 0.test_exp
2ca0: 72 20 65 78 70 72 2d 34 2e 31 34 20 7b 72 31 3d  r expr-4.14 {r1=
2cb0: 27 61 62 63 27 2c 20 72 32 3d 27 42 62 63 27 7d  'abc', r2='Bbc'}
2cc0: 20 7b 72 31 3e 72 32 7d 20 31 0a 74 65 73 74 5f   {r1>r2} 1.test_
2cd0: 65 78 70 72 20 65 78 70 72 2d 34 2e 31 35 20 7b  expr expr-4.15 {
2ce0: 72 31 3d 27 30 27 2c 20 72 32 3d 27 30 2e 30 27  r1='0', r2='0.0'
2cf0: 7d 20 7b 72 31 3d 3d 72 32 7d 20 31 0a 74 65 73  } {r1==r2} 1.tes
2d00: 74 5f 65 78 70 72 20 65 78 70 72 2d 34 2e 31 36  t_expr expr-4.16
2d10: 20 7b 72 31 3d 27 30 2e 30 30 30 27 2c 20 72 32   {r1='0.000', r2
2d20: 3d 27 30 2e 30 27 7d 20 7b 72 31 3d 3d 72 32 7d  ='0.0'} {r1==r2}
2d30: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
2d40: 72 2d 34 2e 31 37 20 7b 72 31 3d 27 20 30 2e 30  r-4.17 {r1=' 0.0
2d50: 30 30 27 2c 20 72 32 3d 27 20 30 2e 30 27 7d 20  00', r2=' 0.0'} 
2d60: 7b 72 31 3d 3d 72 32 7d 20 30 0a 74 65 73 74 5f  {r1==r2} 0.test_
2d70: 65 78 70 72 20 65 78 70 72 2d 34 2e 31 38 20 7b  expr expr-4.18 {
2d80: 72 31 3d 27 30 2e 30 27 2c 20 72 32 3d 27 61 62  r1='0.0', r2='ab
2d90: 63 27 7d 20 7b 72 31 3c 72 32 7d 20 31 0a 74 65  c'} {r1<r2} 1.te
2da0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 34 2e 31  st_expr expr-4.1
2db0: 39 20 7b 72 31 3d 27 30 2e 30 27 2c 20 72 32 3d  9 {r1='0.0', r2=
2dc0: 27 61 62 63 27 7d 20 7b 72 31 3d 3d 72 32 7d 20  'abc'} {r1==r2} 
2dd0: 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  0.test_expr expr
2de0: 2d 34 2e 32 30 20 7b 72 31 3d 27 30 2e 30 27 2c  -4.20 {r1='0.0',
2df0: 20 72 32 3d 27 61 62 63 27 7d 20 7b 72 31 3e 72   r2='abc'} {r1>r
2e00: 32 7d 20 30 0a 0a 74 65 73 74 5f 65 78 70 72 20  2} 0..test_expr 
2e10: 65 78 70 72 2d 35 2e 31 20 7b 74 31 3d 27 61 62  expr-5.1 {t1='ab
2e20: 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74  c', t2='xyz'} {t
2e30: 31 20 4c 49 4b 45 20 74 32 7d 20 30 0a 74 65 73  1 LIKE t2} 0.tes
2e40: 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 32 20  t_expr expr-5.2 
2e50: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 41  {t1='abc', t2='A
2e60: 42 43 27 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32  BC'} {t1 LIKE t2
2e70: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
2e80: 70 72 2d 35 2e 33 20 7b 74 31 3d 27 61 62 63 27  pr-5.3 {t1='abc'
2e90: 2c 20 74 32 3d 27 41 5f 43 27 7d 20 7b 74 31 20  , t2='A_C'} {t1 
2ea0: 4c 49 4b 45 20 74 32 7d 20 31 0a 74 65 73 74 5f  LIKE t2} 1.test_
2eb0: 65 78 70 72 20 65 78 70 72 2d 35 2e 34 20 7b 74  expr expr-5.4 {t
2ec0: 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 62 63  1='abc', t2='abc
2ed0: 5f 27 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d  _'} {t1 LIKE t2}
2ee0: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
2ef0: 72 2d 35 2e 35 20 7b 74 31 3d 27 61 62 63 27 2c  r-5.5 {t1='abc',
2f00: 20 74 32 3d 27 41 25 43 27 7d 20 7b 74 31 20 4c   t2='A%C'} {t1 L
2f10: 49 4b 45 20 74 32 7d 20 31 0a 74 65 73 74 5f 65  IKE t2} 1.test_e
2f20: 78 70 72 20 65 78 70 72 2d 35 2e 35 61 20 7b 74  xpr expr-5.5a {t
2f30: 31 3d 27 61 62 64 63 27 2c 20 74 32 3d 27 61 25  1='abdc', t2='a%
2f40: 63 27 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d  c'} {t1 LIKE t2}
2f50: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
2f60: 72 2d 35 2e 35 62 20 7b 74 31 3d 27 61 63 27 2c  r-5.5b {t1='ac',
2f70: 20 74 32 3d 27 41 25 43 27 7d 20 7b 74 31 20 4c   t2='A%C'} {t1 L
2f80: 49 4b 45 20 74 32 7d 20 31 0a 74 65 73 74 5f 65  IKE t2} 1.test_e
2f90: 78 70 72 20 65 78 70 72 2d 35 2e 36 20 7b 74 31  xpr expr-5.6 {t1
2fa0: 3d 27 61 62 78 79 7a 7a 79 63 27 2c 20 74 32 3d  ='abxyzzyc', t2=
2fb0: 27 41 25 43 27 7d 20 7b 74 31 20 4c 49 4b 45 20  'A%C'} {t1 LIKE 
2fc0: 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  t2} 1.test_expr 
2fd0: 65 78 70 72 2d 35 2e 37 20 7b 74 31 3d 27 61 62  expr-5.7 {t1='ab
2fe0: 78 79 7a 7a 79 27 2c 20 74 32 3d 27 41 25 43 27  xyzzy', t2='A%C'
2ff0: 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 30  } {t1 LIKE t2} 0
3000: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
3010: 35 2e 38 20 7b 74 31 3d 27 61 62 78 79 7a 7a 79  5.8 {t1='abxyzzy
3020: 63 78 27 2c 20 74 32 3d 27 41 25 43 27 7d 20 7b  cx', t2='A%C'} {
3030: 74 31 20 4c 49 4b 45 20 74 32 7d 20 30 0a 74 65  t1 LIKE t2} 0.te
3040: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 38  st_expr expr-5.8
3050: 62 20 7b 74 31 3d 27 61 62 78 79 7a 7a 79 63 79  b {t1='abxyzzycy
3060: 27 2c 20 74 32 3d 27 41 25 43 58 27 7d 20 7b 74  ', t2='A%CX'} {t
3070: 31 20 4c 49 4b 45 20 74 32 7d 20 30 0a 74 65 73  1 LIKE t2} 0.tes
3080: 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 39 20  t_expr expr-5.9 
3090: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 41  {t1='abc', t2='A
30a0: 25 5f 43 27 7d 20 7b 74 31 20 4c 49 4b 45 20 74  %_C'} {t1 LIKE t
30b0: 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 1.test_expr e
30c0: 78 70 72 2d 35 2e 39 62 20 7b 74 31 3d 27 61 63  xpr-5.9b {t1='ac
30d0: 27 2c 20 74 32 3d 27 41 25 5f 43 27 7d 20 7b 74  ', t2='A%_C'} {t
30e0: 31 20 4c 49 4b 45 20 74 32 7d 20 30 0a 74 65 73  1 LIKE t2} 0.tes
30f0: 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 31 30  t_expr expr-5.10
3100: 20 7b 74 31 3d 27 61 62 78 79 7a 7a 79 63 27 2c   {t1='abxyzzyc',
3110: 20 74 32 3d 27 41 25 5f 43 27 7d 20 7b 74 31 20   t2='A%_C'} {t1 
3120: 4c 49 4b 45 20 74 32 7d 20 31 0a 74 65 73 74 5f  LIKE t2} 1.test_
3130: 65 78 70 72 20 65 78 70 72 2d 35 2e 31 31 20 7b  expr expr-5.11 {
3140: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 78 79  t1='abc', t2='xy
3150: 7a 27 7d 20 7b 74 31 20 4e 4f 54 20 4c 49 4b 45  z'} {t1 NOT LIKE
3160: 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72   t2} 1.test_expr
3170: 20 65 78 70 72 2d 35 2e 31 32 20 7b 74 31 3d 27   expr-5.12 {t1='
3180: 61 62 63 27 2c 20 74 32 3d 27 41 42 43 27 7d 20  abc', t2='ABC'} 
3190: 7b 74 31 20 4e 4f 54 20 4c 49 4b 45 20 74 32 7d  {t1 NOT LIKE t2}
31a0: 20 30 0a 0a 23 20 54 68 65 20 66 6f 6c 6c 6f 77   0..# The follow
31b0: 69 6e 67 20 74 65 73 74 73 20 6f 6e 6c 79 20 77  ing tests only w
31c0: 6f 72 6b 20 6f 6e 20 76 65 72 73 69 6f 6e 73 20  ork on versions 
31d0: 6f 66 20 54 43 4c 20 74 68 61 74 20 73 75 70 70  of TCL that supp
31e0: 6f 72 74 20 55 6e 69 63 6f 64 65 0a 23 0a 69 66  ort Unicode.#.if
31f0: 20 7b 22 5c 75 31 32 33 34 22 21 3d 22 75 31 32   {"\u1234"!="u12
3200: 33 34 22 7d 20 7b 0a 20 20 74 65 73 74 5f 65 78  34"} {.  test_ex
3210: 70 72 20 65 78 70 72 2d 35 2e 31 33 20 22 74 31  pr expr-5.13 "t1
3220: 3d 27 61 5c 75 30 30 38 30 63 27 2c 20 74 32 3d  ='a\u0080c', t2=
3230: 27 41 5f 43 27 22 20 7b 74 31 20 4c 49 4b 45 20  'A_C'" {t1 LIKE 
3240: 74 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70  t2} 1.  test_exp
3250: 72 20 65 78 70 72 2d 35 2e 31 34 20 22 74 31 3d  r expr-5.14 "t1=
3260: 27 61 5c 75 30 37 46 46 63 27 2c 20 74 32 3d 27  'a\u07FFc', t2='
3270: 41 5f 43 27 22 20 7b 74 31 20 4c 49 4b 45 20 74  A_C'" {t1 LIKE t
3280: 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72  2} 1.  test_expr
3290: 20 65 78 70 72 2d 35 2e 31 35 20 22 74 31 3d 27   expr-5.15 "t1='
32a0: 61 5c 75 30 38 30 30 63 27 2c 20 74 32 3d 27 41  a\u0800c', t2='A
32b0: 5f 43 27 22 20 7b 74 31 20 4c 49 4b 45 20 74 32  _C'" {t1 LIKE t2
32c0: 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20  } 1.  test_expr 
32d0: 65 78 70 72 2d 35 2e 31 36 20 22 74 31 3d 27 61  expr-5.16 "t1='a
32e0: 5c 75 46 46 46 46 63 27 2c 20 74 32 3d 27 41 5f  \uFFFFc', t2='A_
32f0: 43 27 22 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d  C'" {t1 LIKE t2}
3300: 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65   1.  test_expr e
3310: 78 70 72 2d 35 2e 31 37 20 22 74 31 3d 27 61 5c  xpr-5.17 "t1='a\
3320: 75 30 30 38 30 27 2c 20 74 32 3d 27 41 5f 5f 27  u0080', t2='A__'
3330: 22 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 30  " {t1 LIKE t2} 0
3340: 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70  .  test_expr exp
3350: 72 2d 35 2e 31 38 20 22 74 31 3d 27 61 5c 75 30  r-5.18 "t1='a\u0
3360: 37 46 46 27 2c 20 74 32 3d 27 41 5f 5f 27 22 20  7FF', t2='A__'" 
3370: 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 30 0a 20  {t1 LIKE t2} 0. 
3380: 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d   test_expr expr-
3390: 35 2e 31 39 20 22 74 31 3d 27 61 5c 75 30 38 30  5.19 "t1='a\u080
33a0: 30 27 2c 20 74 32 3d 27 41 5f 5f 27 22 20 7b 74  0', t2='A__'" {t
33b0: 31 20 4c 49 4b 45 20 74 32 7d 20 30 0a 20 20 74  1 LIKE t2} 0.  t
33c0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e  est_expr expr-5.
33d0: 32 30 20 22 74 31 3d 27 61 5c 75 46 46 46 46 27  20 "t1='a\uFFFF'
33e0: 2c 20 74 32 3d 27 41 5f 5f 27 22 20 7b 74 31 20  , t2='A__'" {t1 
33f0: 4c 49 4b 45 20 74 32 7d 20 30 0a 20 20 74 65 73  LIKE t2} 0.  tes
3400: 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 32 31  t_expr expr-5.21
3410: 20 22 74 31 3d 27 61 78 5c 75 41 42 43 44 27 2c   "t1='ax\uABCD',
3420: 20 74 32 3d 27 41 5f 5c 75 41 42 43 44 27 22 20   t2='A_\uABCD'" 
3430: 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 31 0a 20  {t1 LIKE t2} 1. 
3440: 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d   test_expr expr-
3450: 35 2e 32 32 20 22 74 31 3d 27 61 78 5c 75 31 32  5.22 "t1='ax\u12
3460: 33 34 27 2c 20 74 32 3d 27 41 25 5c 75 31 32 33  34', t2='A%\u123
3470: 34 27 22 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d  4'" {t1 LIKE t2}
3480: 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65   1.  test_expr e
3490: 78 70 72 2d 35 2e 32 33 20 22 74 31 3d 27 61 78  xpr-5.23 "t1='ax
34a0: 5c 75 46 45 44 43 27 2c 20 74 32 3d 27 41 5f 25  \uFEDC', t2='A_%
34b0: 27 22 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20  '" {t1 LIKE t2} 
34c0: 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78  1.  test_expr ex
34d0: 70 72 2d 35 2e 32 34 20 22 74 31 3d 27 61 78 5c  pr-5.24 "t1='ax\
34e0: 75 46 45 44 43 79 5c 75 46 45 44 43 27 2c 20 74  uFEDCy\uFEDC', t
34f0: 32 3d 27 41 25 5c 75 46 45 44 43 27 22 20 7b 74  2='A%\uFEDC'" {t
3500: 31 20 4c 49 4b 45 20 74 32 7d 20 31 0a 7d 0a 0a  1 LIKE t2} 1.}..
3510: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35  test_expr expr-5
3520: 2e 35 34 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  .54 {t1='abc', t
3530: 32 3d 4e 55 4c 4c 7d 20 7b 74 31 20 4c 49 4b 45  2=NULL} {t1 LIKE
3540: 20 74 32 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65   t2} {{}}.test_e
3550: 78 70 72 20 65 78 70 72 2d 35 2e 35 35 20 7b 74  xpr expr-5.55 {t
3560: 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c 4c  1='abc', t2=NULL
3570: 7d 20 7b 74 31 20 4e 4f 54 20 4c 49 4b 45 20 74  } {t1 NOT LIKE t
3580: 32 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70  2} {{}}.test_exp
3590: 72 20 65 78 70 72 2d 35 2e 35 36 20 7b 74 31 3d  r expr-5.56 {t1=
35a0: 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d 20  'abc', t2=NULL} 
35b0: 7b 74 32 20 4c 49 4b 45 20 74 31 7d 20 7b 7b 7d  {t2 LIKE t1} {{}
35c0: 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  }.test_expr expr
35d0: 2d 35 2e 35 37 20 7b 74 31 3d 27 61 62 63 27 2c  -5.57 {t1='abc',
35e0: 20 74 32 3d 4e 55 4c 4c 7d 20 7b 74 32 20 4e 4f   t2=NULL} {t2 NO
35f0: 54 20 4c 49 4b 45 20 74 31 7d 20 7b 7b 7d 7d 0a  T LIKE t1} {{}}.
3600: 0a 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  ..test_expr expr
3610: 2d 36 2e 31 20 7b 74 31 3d 27 61 62 63 27 2c 20  -6.1 {t1='abc', 
3620: 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31 20 47 4c  t2='xyz'} {t1 GL
3630: 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78  OB t2} 0.test_ex
3640: 70 72 20 65 78 70 72 2d 36 2e 32 20 7b 74 31 3d  pr expr-6.2 {t1=
3650: 27 61 62 63 27 2c 20 74 32 3d 27 41 42 43 27 7d  'abc', t2='ABC'}
3660: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a   {t1 GLOB t2} 0.
3670: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
3680: 2e 33 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32  .3 {t1='abc', t2
3690: 3d 27 41 3f 43 27 7d 20 7b 74 31 20 47 4c 4f 42  ='A?C'} {t1 GLOB
36a0: 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72   t2} 0.test_expr
36b0: 20 65 78 70 72 2d 36 2e 34 20 7b 74 31 3d 27 61   expr-6.4 {t1='a
36c0: 62 63 27 2c 20 74 32 3d 27 61 3f 63 27 7d 20 7b  bc', t2='a?c'} {
36d0: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65  t1 GLOB t2} 1.te
36e0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35  st_expr expr-6.5
36f0: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27   {t1='abc', t2='
3700: 61 62 63 3f 27 7d 20 7b 74 31 20 47 4c 4f 42 20  abc?'} {t1 GLOB 
3710: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
3720: 65 78 70 72 2d 36 2e 36 20 7b 74 31 3d 27 61 62  expr-6.6 {t1='ab
3730: 63 27 2c 20 74 32 3d 27 41 2a 43 27 7d 20 7b 74  c', t2='A*C'} {t
3740: 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73  1 GLOB t2} 0.tes
3750: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 37 20  t_expr expr-6.7 
3760: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61  {t1='abc', t2='a
3770: 2a 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  *c'} {t1 GLOB t2
3780: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
3790: 70 72 2d 36 2e 38 20 7b 74 31 3d 27 61 62 78 79  pr-6.8 {t1='abxy
37a0: 7a 7a 79 63 27 2c 20 74 32 3d 27 61 2a 63 27 7d  zzyc', t2='a*c'}
37b0: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a   {t1 GLOB t2} 1.
37c0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
37d0: 2e 39 20 7b 74 31 3d 27 61 62 78 79 7a 7a 79 27  .9 {t1='abxyzzy'
37e0: 2c 20 74 32 3d 27 61 2a 63 27 7d 20 7b 74 31 20  , t2='a*c'} {t1 
37f0: 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f  GLOB t2} 0.test_
3800: 65 78 70 72 20 65 78 70 72 2d 36 2e 31 30 20 7b  expr expr-6.10 {
3810: 74 31 3d 27 61 62 78 79 7a 7a 79 63 78 27 2c 20  t1='abxyzzycx', 
3820: 74 32 3d 27 61 2a 63 27 7d 20 7b 74 31 20 47 4c  t2='a*c'} {t1 GL
3830: 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78  OB t2} 0.test_ex
3840: 70 72 20 65 78 70 72 2d 36 2e 31 31 20 7b 74 31  pr expr-6.11 {t1
3850: 3d 27 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27  ='abc', t2='xyz'
3860: 7d 20 7b 74 31 20 4e 4f 54 20 47 4c 4f 42 20 74  } {t1 NOT GLOB t
3870: 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 1.test_expr e
3880: 78 70 72 2d 36 2e 31 32 20 7b 74 31 3d 27 61 62  xpr-6.12 {t1='ab
3890: 63 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74  c', t2='abc'} {t
38a0: 31 20 4e 4f 54 20 47 4c 4f 42 20 74 32 7d 20 30  1 NOT GLOB t2} 0
38b0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
38c0: 36 2e 31 33 20 7b 74 31 3d 27 61 62 63 27 2c 20  6.13 {t1='abc', 
38d0: 74 32 3d 27 61 5b 62 78 5d 63 27 7d 20 7b 74 31  t2='a[bx]c'} {t1
38e0: 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74   GLOB t2} 1.test
38f0: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 31 34 20  _expr expr-6.14 
3900: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61  {t1='abc', t2='a
3910: 5b 63 78 5d 63 27 7d 20 7b 74 31 20 47 4c 4f 42  [cx]c'} {t1 GLOB
3920: 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72   t2} 0.test_expr
3930: 20 65 78 70 72 2d 36 2e 31 35 20 7b 74 31 3d 27   expr-6.15 {t1='
3940: 61 62 63 27 2c 20 74 32 3d 27 61 5b 61 2d 64 5d  abc', t2='a[a-d]
3950: 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d  c'} {t1 GLOB t2}
3960: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
3970: 72 2d 36 2e 31 36 20 7b 74 31 3d 27 61 62 63 27  r-6.16 {t1='abc'
3980: 2c 20 74 32 3d 27 61 5b 5e 61 2d 64 5d 63 27 7d  , t2='a[^a-d]c'}
3990: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a   {t1 GLOB t2} 0.
39a0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
39b0: 2e 31 37 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  .17 {t1='abc', t
39c0: 32 3d 27 61 5b 41 2d 44 63 5d 63 27 7d 20 7b 74  2='a[A-Dc]c'} {t
39d0: 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73  1 GLOB t2} 0.tes
39e0: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 31 38  t_expr expr-6.18
39f0: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27   {t1='abc', t2='
3a00: 61 5b 5e 41 2d 44 63 5d 63 27 7d 20 7b 74 31 20  a[^A-Dc]c'} {t1 
3a10: 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f  GLOB t2} 1.test_
3a20: 65 78 70 72 20 65 78 70 72 2d 36 2e 31 39 20 7b  expr expr-6.19 {
3a30: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 5b  t1='abc', t2='a[
3a40: 5d 62 5d 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20  ]b]c'} {t1 GLOB 
3a50: 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  t2} 1.test_expr 
3a60: 65 78 70 72 2d 36 2e 32 30 20 7b 74 31 3d 27 61  expr-6.20 {t1='a
3a70: 62 63 27 2c 20 74 32 3d 27 61 5b 5e 5d 62 5d 63  bc', t2='a[^]b]c
3a80: 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '} {t1 GLOB t2} 
3a90: 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  0.test_expr expr
3aa0: 2d 36 2e 32 31 61 20 7b 74 31 3d 27 61 62 63 64  -6.21a {t1='abcd
3ab0: 65 66 67 27 2c 20 74 32 3d 27 61 2a 5b 64 65 5d  efg', t2='a*[de]
3ac0: 67 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d  g'} {t1 GLOB t2}
3ad0: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
3ae0: 72 2d 36 2e 32 31 62 20 7b 74 31 3d 27 61 62 63  r-6.21b {t1='abc
3af0: 64 65 66 67 27 2c 20 74 32 3d 27 61 2a 5b 64 66  defg', t2='a*[df
3b00: 5d 67 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  ]g'} {t1 GLOB t2
3b10: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
3b20: 70 72 2d 36 2e 32 31 63 20 7b 74 31 3d 27 61 62  pr-6.21c {t1='ab
3b30: 63 64 65 66 67 27 2c 20 74 32 3d 27 61 2a 5b 64  cdefg', t2='a*[d
3b40: 2d 68 5d 67 27 7d 20 7b 74 31 20 47 4c 4f 42 20  -h]g'} {t1 GLOB 
3b50: 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  t2} 1.test_expr 
3b60: 65 78 70 72 2d 36 2e 32 31 64 20 7b 74 31 3d 27  expr-6.21d {t1='
3b70: 61 62 63 64 65 66 67 27 2c 20 74 32 3d 27 61 2a  abcdefg', t2='a*
3b80: 5b 62 2d 65 5d 67 27 7d 20 7b 74 31 20 47 4c 4f  [b-e]g'} {t1 GLO
3b90: 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  B t2} 0.test_exp
3ba0: 72 20 65 78 70 72 2d 36 2e 32 32 61 20 7b 74 31  r expr-6.22a {t1
3bb0: 3d 27 61 62 63 64 65 66 67 27 2c 20 74 32 3d 27  ='abcdefg', t2='
3bc0: 61 2a 5b 5e 64 65 5d 67 27 7d 20 7b 74 31 20 47  a*[^de]g'} {t1 G
3bd0: 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65  LOB t2} 1.test_e
3be0: 78 70 72 20 65 78 70 72 2d 36 2e 32 32 62 20 7b  xpr expr-6.22b {
3bf0: 74 31 3d 27 61 62 63 64 65 66 67 27 2c 20 74 32  t1='abcdefg', t2
3c00: 3d 27 61 2a 5b 5e 64 65 66 5d 67 27 7d 20 7b 74  ='a*[^def]g'} {t
3c10: 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73  1 GLOB t2} 0.tes
3c20: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 32 33  t_expr expr-6.23
3c30: 20 7b 74 31 3d 27 61 62 63 64 65 66 67 27 2c 20   {t1='abcdefg', 
3c40: 74 32 3d 27 61 2a 3f 67 27 7d 20 7b 74 31 20 47  t2='a*?g'} {t1 G
3c50: 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65  LOB t2} 1.test_e
3c60: 78 70 72 20 65 78 70 72 2d 36 2e 32 34 20 7b 74  xpr expr-6.24 {t
3c70: 31 3d 27 61 63 27 2c 20 74 32 3d 27 61 2a 63 27  1='ac', t2='a*c'
3c80: 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  } {t1 GLOB t2} 1
3c90: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
3ca0: 36 2e 32 35 20 7b 74 31 3d 27 61 63 27 2c 20 74  6.25 {t1='ac', t
3cb0: 32 3d 27 61 2a 3f 63 27 7d 20 7b 74 31 20 47 4c  2='a*?c'} {t1 GL
3cc0: 4f 42 20 74 32 7d 20 30 0a 0a 0a 23 20 54 68 65  OB t2} 0...# The
3cd0: 73 65 20 74 65 73 74 73 20 6f 6e 6c 79 20 77 6f  se tests only wo
3ce0: 72 6b 20 6f 6e 20 76 65 72 73 69 6f 6e 73 20 6f  rk on versions o
3cf0: 66 20 54 43 4c 20 74 68 61 74 20 73 75 70 70 6f  f TCL that suppo
3d00: 72 74 20 55 6e 69 63 6f 64 65 0a 23 0a 69 66 20  rt Unicode.#.if 
3d10: 7b 22 5c 75 31 32 33 34 22 21 3d 22 75 31 32 33  {"\u1234"!="u123
3d20: 34 22 7d 20 7b 0a 20 20 74 65 73 74 5f 65 78 70  4"} {.  test_exp
3d30: 72 20 65 78 70 72 2d 36 2e 32 36 20 22 74 31 3d  r expr-6.26 "t1=
3d40: 27 61 5c 75 30 30 38 30 63 27 2c 20 74 32 3d 27  'a\u0080c', t2='
3d50: 61 3f 63 27 22 20 7b 74 31 20 47 4c 4f 42 20 74  a?c'" {t1 GLOB t
3d60: 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72  2} 1.  test_expr
3d70: 20 65 78 70 72 2d 36 2e 32 37 20 22 74 31 3d 27   expr-6.27 "t1='
3d80: 61 5c 75 30 37 66 66 63 27 2c 20 74 32 3d 27 61  a\u07ffc', t2='a
3d90: 3f 63 27 22 20 7b 74 31 20 47 4c 4f 42 20 74 32  ?c'" {t1 GLOB t2
3da0: 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20  } 1.  test_expr 
3db0: 65 78 70 72 2d 36 2e 32 38 20 22 74 31 3d 27 61  expr-6.28 "t1='a
3dc0: 5c 75 30 38 30 30 63 27 2c 20 74 32 3d 27 61 3f  \u0800c', t2='a?
3dd0: 63 27 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d  c'" {t1 GLOB t2}
3de0: 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65   1.  test_expr e
3df0: 78 70 72 2d 36 2e 32 39 20 22 74 31 3d 27 61 5c  xpr-6.29 "t1='a\
3e00: 75 66 66 66 66 63 27 2c 20 74 32 3d 27 61 3f 63  uffffc', t2='a?c
3e10: 27 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '" {t1 GLOB t2} 
3e20: 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78  1.  test_expr ex
3e30: 70 72 2d 36 2e 33 30 20 22 74 31 3d 27 61 5c 75  pr-6.30 "t1='a\u
3e40: 31 32 33 34 27 2c 20 74 32 3d 27 61 3f 27 22 20  1234', t2='a?'" 
3e50: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20  {t1 GLOB t2} 1. 
3e60: 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d   test_expr expr-
3e70: 36 2e 33 31 20 22 74 31 3d 27 61 5c 75 31 32 33  6.31 "t1='a\u123
3e80: 34 27 2c 20 74 32 3d 27 61 3f 3f 27 22 20 7b 74  4', t2='a??'" {t
3e90: 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 20 20 74  1 GLOB t2} 0.  t
3ea0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
3eb0: 33 32 20 22 74 31 3d 27 61 78 5c 75 31 32 33 34  32 "t1='ax\u1234
3ec0: 27 2c 20 74 32 3d 27 61 3f 5c 75 31 32 33 34 27  ', t2='a?\u1234'
3ed0: 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  " {t1 GLOB t2} 1
3ee0: 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70  .  test_expr exp
3ef0: 72 2d 36 2e 33 33 20 22 74 31 3d 27 61 78 5c 75  r-6.33 "t1='ax\u
3f00: 31 32 33 34 27 2c 20 74 32 3d 27 61 2a 5c 75 31  1234', t2='a*\u1
3f10: 32 33 34 27 22 20 7b 74 31 20 47 4c 4f 42 20 74  234'" {t1 GLOB t
3f20: 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72  2} 1.  test_expr
3f30: 20 65 78 70 72 2d 36 2e 33 34 20 22 74 31 3d 27   expr-6.34 "t1='
3f40: 61 78 5c 75 31 32 33 34 79 5c 75 31 32 33 34 27  ax\u1234y\u1234'
3f50: 2c 20 74 32 3d 27 61 2a 5c 75 31 32 33 34 27 22  , t2='a*\u1234'"
3f60: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a   {t1 GLOB t2} 1.
3f70: 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72    test_expr expr
3f80: 2d 36 2e 33 35 20 22 74 31 3d 27 61 5c 75 31 32  -6.35 "t1='a\u12
3f90: 33 34 62 27 2c 20 74 32 3d 27 61 5c 5b 78 5c 75  34b', t2='a\[x\u
3fa0: 31 32 33 34 79 5c 5d 62 27 22 20 7b 74 31 20 47  1234y\]b'" {t1 G
3fb0: 4c 4f 42 20 74 32 7d 20 31 0a 20 20 74 65 73 74  LOB t2} 1.  test
3fc0: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 33 36 20  _expr expr-6.36 
3fd0: 22 74 31 3d 27 61 5c 75 31 32 33 34 62 27 2c 20  "t1='a\u1234b', 
3fe0: 74 32 3d 27 61 5c 5b 5c 75 31 32 33 33 2d 5c 75  t2='a\[\u1233-\u
3ff0: 31 32 33 35 5c 5d 62 27 22 20 7b 74 31 20 47 4c  1235\]b'" {t1 GL
4000: 4f 42 20 74 32 7d 20 31 0a 20 20 74 65 73 74 5f  OB t2} 1.  test_
4010: 65 78 70 72 20 65 78 70 72 2d 36 2e 33 37 20 22  expr expr-6.37 "
4020: 74 31 3d 27 61 5c 75 31 32 33 34 62 27 2c 20 74  t1='a\u1234b', t
4030: 32 3d 27 61 5c 5b 5c 75 31 32 33 34 2d 5c 75 31  2='a\[\u1234-\u1
4040: 32 34 66 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f  24f\]b'" {t1 GLO
4050: 42 20 74 32 7d 20 31 0a 20 20 74 65 73 74 5f 65  B t2} 1.  test_e
4060: 78 70 72 20 65 78 70 72 2d 36 2e 33 38 20 22 74  xpr expr-6.38 "t
4070: 31 3d 27 61 5c 75 31 32 33 34 62 27 2c 20 74 32  1='a\u1234b', t2
4080: 3d 27 61 5c 5b 5c 75 31 32 33 35 2d 5c 75 31 32  ='a\[\u1235-\u12
4090: 34 66 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42  4f\]b'" {t1 GLOB
40a0: 20 74 32 7d 20 30 0a 20 20 74 65 73 74 5f 65 78   t2} 0.  test_ex
40b0: 70 72 20 65 78 70 72 2d 36 2e 33 39 20 22 74 31  pr expr-6.39 "t1
40c0: 3d 27 61 5c 75 31 32 33 34 62 27 2c 20 74 32 3d  ='a\u1234b', t2=
40d0: 27 61 5c 5b 61 2d 5c 75 31 32 33 35 5c 5d 62 27  'a\[a-\u1235\]b'
40e0: 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  " {t1 GLOB t2} 1
40f0: 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70  .  test_expr exp
4100: 72 2d 36 2e 34 30 20 22 74 31 3d 27 61 5c 75 31  r-6.40 "t1='a\u1
4110: 32 33 34 62 27 2c 20 74 32 3d 27 61 5c 5b 61 2d  234b', t2='a\[a-
4120: 5c 75 31 32 33 34 5c 5d 62 27 22 20 7b 74 31 20  \u1234\]b'" {t1 
4130: 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20 74 65 73  GLOB t2} 1.  tes
4140: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 34 31  t_expr expr-6.41
4150: 20 22 74 31 3d 27 61 5c 75 31 32 33 34 62 27 2c   "t1='a\u1234b',
4160: 20 74 32 3d 27 61 5c 5b 61 2d 5c 75 31 32 33 33   t2='a\[a-\u1233
4170: 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42 20 74  \]b'" {t1 GLOB t
4180: 32 7d 20 30 0a 7d 0a 0a 74 65 73 74 5f 65 78 70  2} 0.}..test_exp
4190: 72 20 65 78 70 72 2d 36 2e 35 31 20 7b 74 31 3d  r expr-6.51 {t1=
41a0: 27 41 42 43 27 2c 20 74 32 3d 27 78 79 7a 27 7d  'ABC', t2='xyz'}
41b0: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a   {t1 GLOB t2} 0.
41c0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
41d0: 2e 35 32 20 7b 74 31 3d 27 41 42 43 27 2c 20 74  .52 {t1='ABC', t
41e0: 32 3d 27 61 62 63 27 7d 20 7b 74 31 20 47 4c 4f  2='abc'} {t1 GLO
41f0: 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  B t2} 0.test_exp
4200: 72 20 65 78 70 72 2d 36 2e 35 33 20 7b 74 31 3d  r expr-6.53 {t1=
4210: 27 41 42 43 27 2c 20 74 32 3d 27 61 3f 63 27 7d  'ABC', t2='a?c'}
4220: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a   {t1 GLOB t2} 0.
4230: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
4240: 2e 35 34 20 7b 74 31 3d 27 41 42 43 27 2c 20 74  .54 {t1='ABC', t
4250: 32 3d 27 41 3f 43 27 7d 20 7b 74 31 20 47 4c 4f  2='A?C'} {t1 GLO
4260: 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  B t2} 1.test_exp
4270: 72 20 65 78 70 72 2d 36 2e 35 35 20 7b 74 31 3d  r expr-6.55 {t1=
4280: 27 41 42 43 27 2c 20 74 32 3d 27 61 62 63 3f 27  'ABC', t2='abc?'
4290: 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30  } {t1 GLOB t2} 0
42a0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
42b0: 36 2e 35 36 20 7b 74 31 3d 27 41 42 43 27 2c 20  6.56 {t1='ABC', 
42c0: 74 32 3d 27 61 2a 63 27 7d 20 7b 74 31 20 47 4c  t2='a*c'} {t1 GL
42d0: 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78  OB t2} 0.test_ex
42e0: 70 72 20 65 78 70 72 2d 36 2e 35 37 20 7b 74 31  pr expr-6.57 {t1
42f0: 3d 27 41 42 43 27 2c 20 74 32 3d 27 41 2a 43 27  ='ABC', t2='A*C'
4300: 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  } {t1 GLOB t2} 1
4310: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
4320: 36 2e 35 38 20 7b 74 31 3d 27 41 42 78 79 7a 7a  6.58 {t1='ABxyzz
4330: 79 43 27 2c 20 74 32 3d 27 41 2a 43 27 7d 20 7b  yC', t2='A*C'} {
4340: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65  t1 GLOB t2} 1.te
4350: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35  st_expr expr-6.5
4360: 39 20 7b 74 31 3d 27 41 42 78 79 7a 7a 79 27 2c  9 {t1='ABxyzzy',
4370: 20 74 32 3d 27 41 2a 43 27 7d 20 7b 74 31 20 47   t2='A*C'} {t1 G
4380: 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65  LOB t2} 0.test_e
4390: 78 70 72 20 65 78 70 72 2d 36 2e 36 30 20 7b 74  xpr expr-6.60 {t
43a0: 31 3d 27 41 42 78 79 7a 7a 79 43 78 27 2c 20 74  1='ABxyzzyCx', t
43b0: 32 3d 27 41 2a 43 27 7d 20 7b 74 31 20 47 4c 4f  2='A*C'} {t1 GLO
43c0: 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  B t2} 0.test_exp
43d0: 72 20 65 78 70 72 2d 36 2e 36 31 20 7b 74 31 3d  r expr-6.61 {t1=
43e0: 27 41 42 43 27 2c 20 74 32 3d 27 78 79 7a 27 7d  'ABC', t2='xyz'}
43f0: 20 7b 74 31 20 4e 4f 54 20 47 4c 4f 42 20 74 32   {t1 NOT GLOB t2
4400: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
4410: 70 72 2d 36 2e 36 32 20 7b 74 31 3d 27 41 42 43  pr-6.62 {t1='ABC
4420: 27 2c 20 74 32 3d 27 41 42 43 27 7d 20 7b 74 31  ', t2='ABC'} {t1
4430: 20 4e 4f 54 20 47 4c 4f 42 20 74 32 7d 20 30 0a   NOT GLOB t2} 0.
4440: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
4450: 2e 36 33 20 7b 74 31 3d 27 41 42 43 27 2c 20 74  .63 {t1='ABC', t
4460: 32 3d 27 41 5b 42 78 5d 43 27 7d 20 7b 74 31 20  2='A[Bx]C'} {t1 
4470: 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f  GLOB t2} 1.test_
4480: 65 78 70 72 20 65 78 70 72 2d 36 2e 36 34 20 7b  expr expr-6.64 {
4490: 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27 41 5b  t1='ABC', t2='A[
44a0: 43 78 5d 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20  Cx]C'} {t1 GLOB 
44b0: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
44c0: 65 78 70 72 2d 36 2e 36 35 20 7b 74 31 3d 27 41  expr-6.65 {t1='A
44d0: 42 43 27 2c 20 74 32 3d 27 41 5b 41 2d 44 5d 43  BC', t2='A[A-D]C
44e0: 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '} {t1 GLOB t2} 
44f0: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
4500: 2d 36 2e 36 36 20 7b 74 31 3d 27 41 42 43 27 2c  -6.66 {t1='ABC',
4510: 20 74 32 3d 27 41 5b 5e 41 2d 44 5d 43 27 7d 20   t2='A[^A-D]C'} 
4520: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74  {t1 GLOB t2} 0.t
4530: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
4540: 36 37 20 7b 74 31 3d 27 41 42 43 27 2c 20 74 32  67 {t1='ABC', t2
4550: 3d 27 41 5b 61 2d 64 43 5d 43 27 7d 20 7b 74 31  ='A[a-dC]C'} {t1
4560: 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74   GLOB t2} 0.test
4570: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 36 38 20  _expr expr-6.68 
4580: 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27 41  {t1='ABC', t2='A
4590: 5b 5e 61 2d 64 43 5d 43 27 7d 20 7b 74 31 20 47  [^a-dC]C'} {t1 G
45a0: 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65  LOB t2} 1.test_e
45b0: 78 70 72 20 65 78 70 72 2d 36 2e 36 39 61 20 7b  xpr expr-6.69a {
45c0: 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27 41 5b  t1='ABC', t2='A[
45d0: 5d 42 5d 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20  ]B]C'} {t1 GLOB 
45e0: 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  t2} 1.test_expr 
45f0: 65 78 70 72 2d 36 2e 36 39 62 20 7b 74 31 3d 27  expr-6.69b {t1='
4600: 41 5d 43 27 2c 20 74 32 3d 27 41 5b 5d 42 5d 43  A]C', t2='A[]B]C
4610: 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '} {t1 GLOB t2} 
4620: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
4630: 2d 36 2e 37 30 61 20 7b 74 31 3d 27 41 42 43 27  -6.70a {t1='ABC'
4640: 2c 20 74 32 3d 27 41 5b 5e 5d 42 5d 43 27 7d 20  , t2='A[^]B]C'} 
4650: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74  {t1 GLOB t2} 0.t
4660: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
4670: 37 30 62 20 7b 74 31 3d 27 41 78 43 27 2c 20 74  70b {t1='AxC', t
4680: 32 3d 27 41 5b 5e 5d 42 5d 43 27 7d 20 7b 74 31  2='A[^]B]C'} {t1
4690: 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74   GLOB t2} 1.test
46a0: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 37 30 63  _expr expr-6.70c
46b0: 20 7b 74 31 3d 27 41 5d 43 27 2c 20 74 32 3d 27   {t1='A]C', t2='
46c0: 41 5b 5e 5d 42 5d 43 27 7d 20 7b 74 31 20 47 4c  A[^]B]C'} {t1 GL
46d0: 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78  OB t2} 0.test_ex
46e0: 70 72 20 65 78 70 72 2d 36 2e 37 31 20 7b 74 31  pr expr-6.71 {t1
46f0: 3d 27 41 42 43 44 45 46 47 27 2c 20 74 32 3d 27  ='ABCDEFG', t2='
4700: 41 2a 5b 44 45 5d 47 27 7d 20 7b 74 31 20 47 4c  A*[DE]G'} {t1 GL
4710: 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78  OB t2} 0.test_ex
4720: 70 72 20 65 78 70 72 2d 36 2e 37 32 20 7b 74 31  pr expr-6.72 {t1
4730: 3d 27 41 42 43 44 45 46 47 27 2c 20 74 32 3d 27  ='ABCDEFG', t2='
4740: 41 2a 5b 5e 44 45 5d 47 27 7d 20 7b 74 31 20 47  A*[^DE]G'} {t1 G
4750: 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65  LOB t2} 1.test_e
4760: 78 70 72 20 65 78 70 72 2d 36 2e 37 33 20 7b 74  xpr expr-6.73 {t
4770: 31 3d 27 41 42 43 44 45 46 47 27 2c 20 74 32 3d  1='ABCDEFG', t2=
4780: 27 41 2a 3f 47 27 7d 20 7b 74 31 20 47 4c 4f 42  'A*?G'} {t1 GLOB
4790: 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72   t2} 1.test_expr
47a0: 20 65 78 70 72 2d 36 2e 37 34 20 7b 74 31 3d 27   expr-6.74 {t1='
47b0: 41 43 27 2c 20 74 32 3d 27 41 2a 43 27 7d 20 7b  AC', t2='A*C'} {
47c0: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65  t1 GLOB t2} 1.te
47d0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 37  st_expr expr-6.7
47e0: 35 20 7b 74 31 3d 27 41 43 27 2c 20 74 32 3d 27  5 {t1='AC', t2='
47f0: 41 2a 3f 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20  A*?C'} {t1 GLOB 
4800: 74 32 7d 20 30 0a 0a 74 65 73 74 5f 65 78 70 72  t2} 0..test_expr
4810: 20 65 78 70 72 2d 36 2e 36 33 20 7b 74 31 3d 4e   expr-6.63 {t1=N
4820: 55 4c 4c 2c 20 74 32 3d 27 61 2a 3f 63 27 7d 20  ULL, t2='a*?c'} 
4830: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 7b 7b 7d  {t1 GLOB t2} {{}
4840: 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  }.test_expr expr
4850: 2d 36 2e 36 34 20 7b 74 31 3d 27 61 63 27 2c 20  -6.64 {t1='ac', 
4860: 74 32 3d 4e 55 4c 4c 7d 20 7b 74 31 20 47 4c 4f  t2=NULL} {t1 GLO
4870: 42 20 74 32 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f  B t2} {{}}.test_
4880: 65 78 70 72 20 65 78 70 72 2d 36 2e 36 35 20 7b  expr expr-6.65 {
4890: 74 31 3d 4e 55 4c 4c 2c 20 74 32 3d 27 61 2a 3f  t1=NULL, t2='a*?
48a0: 63 27 7d 20 7b 74 31 20 4e 4f 54 20 47 4c 4f 42  c'} {t1 NOT GLOB
48b0: 20 74 32 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65   t2} {{}}.test_e
48c0: 78 70 72 20 65 78 70 72 2d 36 2e 36 36 20 7b 74  xpr expr-6.66 {t
48d0: 31 3d 27 61 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d  1='ac', t2=NULL}
48e0: 20 7b 74 31 20 4e 4f 54 20 47 4c 4f 42 20 74 32   {t1 NOT GLOB t2
48f0: 7d 20 7b 7b 7d 7d 0a 0a 74 65 73 74 5f 65 78 70  } {{}}..test_exp
4900: 72 20 65 78 70 72 2d 63 61 73 65 2e 31 20 7b 69  r expr-case.1 {i
4910: 31 3d 31 2c 20 69 32 3d 32 7d 20 5c 0a 09 7b 43  1=1, i2=2} \..{C
4920: 41 53 45 20 57 48 45 4e 20 69 31 20 3d 20 69 32  ASE WHEN i1 = i2
4930: 20 54 48 45 4e 20 27 65 71 27 20 45 4c 53 45 20   THEN 'eq' ELSE 
4940: 27 6e 65 27 20 45 4e 44 7d 20 6e 65 0a 74 65 73  'ne' END} ne.tes
4950: 74 5f 65 78 70 72 20 65 78 70 72 2d 63 61 73 65  t_expr expr-case
4960: 2e 32 20 7b 69 31 3d 32 2c 20 69 32 3d 32 7d 20  .2 {i1=2, i2=2} 
4970: 5c 0a 09 7b 43 41 53 45 20 57 48 45 4e 20 69 31  \..{CASE WHEN i1
4980: 20 3d 20 69 32 20 54 48 45 4e 20 27 65 71 27 20   = i2 THEN 'eq' 
4990: 45 4c 53 45 20 27 6e 65 27 20 45 4e 44 7d 20 65  ELSE 'ne' END} e
49a0: 71 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  q.test_expr expr
49b0: 2d 63 61 73 65 2e 33 20 7b 69 31 3d 4e 55 4c 4c  -case.3 {i1=NULL
49c0: 2c 20 69 32 3d 32 7d 20 5c 0a 09 7b 43 41 53 45  , i2=2} \..{CASE
49d0: 20 57 48 45 4e 20 69 31 20 3d 20 69 32 20 54 48   WHEN i1 = i2 TH
49e0: 45 4e 20 27 65 71 27 20 45 4c 53 45 20 27 6e 65  EN 'eq' ELSE 'ne
49f0: 27 20 45 4e 44 7d 20 6e 65 0a 74 65 73 74 5f 65  ' END} ne.test_e
4a00: 78 70 72 20 65 78 70 72 2d 63 61 73 65 2e 34 20  xpr expr-case.4 
4a10: 7b 69 31 3d 32 2c 20 69 32 3d 4e 55 4c 4c 7d 20  {i1=2, i2=NULL} 
4a20: 5c 0a 09 7b 43 41 53 45 20 57 48 45 4e 20 69 31  \..{CASE WHEN i1
4a30: 20 3d 20 69 32 20 54 48 45 4e 20 27 65 71 27 20   = i2 THEN 'eq' 
4a40: 45 4c 53 45 20 27 6e 65 27 20 45 4e 44 7d 20 6e  ELSE 'ne' END} n
4a50: 65 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  e.test_expr expr
4a60: 2d 63 61 73 65 2e 35 20 7b 69 31 3d 32 7d 20 5c  -case.5 {i1=2} \
4a70: 0a 09 7b 43 41 53 45 20 69 31 20 57 48 45 4e 20  ..{CASE i1 WHEN 
4a80: 31 20 54 48 45 4e 20 27 6f 6e 65 27 20 57 48 45  1 THEN 'one' WHE
4a90: 4e 20 32 20 54 48 45 4e 20 27 74 77 6f 27 20 45  N 2 THEN 'two' E
4aa0: 4c 53 45 20 27 65 72 72 6f 72 27 20 45 4e 44 7d  LSE 'error' END}
4ab0: 20 74 77 6f 0a 74 65 73 74 5f 65 78 70 72 20 65   two.test_expr e
4ac0: 78 70 72 2d 63 61 73 65 2e 36 20 7b 69 31 3d 31  xpr-case.6 {i1=1
4ad0: 7d 20 5c 0a 09 7b 43 41 53 45 20 69 31 20 57 48  } \..{CASE i1 WH
4ae0: 45 4e 20 31 20 54 48 45 4e 20 27 6f 6e 65 27 20  EN 1 THEN 'one' 
4af0: 57 48 45 4e 20 4e 55 4c 4c 20 54 48 45 4e 20 27  WHEN NULL THEN '
4b00: 74 77 6f 27 20 45 4c 53 45 20 27 65 72 72 6f 72  two' ELSE 'error
4b10: 27 20 45 4e 44 7d 20 6f 6e 65 0a 74 65 73 74 5f  ' END} one.test_
4b20: 65 78 70 72 20 65 78 70 72 2d 63 61 73 65 2e 37  expr expr-case.7
4b30: 20 7b 69 31 3d 32 7d 20 5c 0a 09 7b 43 41 53 45   {i1=2} \..{CASE
4b40: 20 69 31 20 57 48 45 4e 20 31 20 54 48 45 4e 20   i1 WHEN 1 THEN 
4b50: 27 6f 6e 65 27 20 57 48 45 4e 20 4e 55 4c 4c 20  'one' WHEN NULL 
4b60: 54 48 45 4e 20 27 74 77 6f 27 20 45 4c 53 45 20  THEN 'two' ELSE 
4b70: 27 65 72 72 6f 72 27 20 45 4e 44 7d 20 65 72 72  'error' END} err
4b80: 6f 72 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  or.test_expr exp
4b90: 72 2d 63 61 73 65 2e 38 20 7b 69 31 3d 33 7d 20  r-case.8 {i1=3} 
4ba0: 5c 0a 09 7b 43 41 53 45 20 69 31 20 57 48 45 4e  \..{CASE i1 WHEN
4bb0: 20 31 20 54 48 45 4e 20 27 6f 6e 65 27 20 57 48   1 THEN 'one' WH
4bc0: 45 4e 20 4e 55 4c 4c 20 54 48 45 4e 20 27 74 77  EN NULL THEN 'tw
4bd0: 6f 27 20 45 4c 53 45 20 27 65 72 72 6f 72 27 20  o' ELSE 'error' 
4be0: 45 4e 44 7d 20 65 72 72 6f 72 0a 74 65 73 74 5f  END} error.test_
4bf0: 65 78 70 72 20 65 78 70 72 2d 63 61 73 65 2e 39  expr expr-case.9
4c00: 20 7b 69 31 3d 33 7d 20 5c 0a 09 7b 43 41 53 45   {i1=3} \..{CASE
4c10: 20 69 31 20 57 48 45 4e 20 31 20 54 48 45 4e 20   i1 WHEN 1 THEN 
4c20: 27 6f 6e 65 27 20 57 48 45 4e 20 32 20 54 48 45  'one' WHEN 2 THE
4c30: 4e 20 27 74 77 6f 27 20 45 4c 53 45 20 27 65 72  N 'two' ELSE 'er
4c40: 72 6f 72 27 20 45 4e 44 7d 20 65 72 72 6f 72 0a  ror' END} error.
4c50: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 63  test_expr expr-c
4c60: 61 73 65 2e 31 30 20 7b 69 31 3d 33 7d 20 5c 0a  ase.10 {i1=3} \.
4c70: 09 7b 43 41 53 45 20 69 31 20 57 48 45 4e 20 31  .{CASE i1 WHEN 1
4c80: 20 54 48 45 4e 20 27 6f 6e 65 27 20 57 48 45 4e   THEN 'one' WHEN
4c90: 20 32 20 54 48 45 4e 20 27 74 77 6f 27 20 45 4e   2 THEN 'two' EN
4ca0: 44 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70  D} {{}}.test_exp
4cb0: 72 20 65 78 70 72 2d 63 61 73 65 2e 31 31 20 7b  r expr-case.11 {
4cc0: 69 31 3d 6e 75 6c 6c 7d 20 5c 0a 09 7b 43 41 53  i1=null} \..{CAS
4cd0: 45 20 69 31 20 57 48 45 4e 20 31 20 54 48 45 4e  E i1 WHEN 1 THEN
4ce0: 20 27 6f 6e 65 27 20 57 48 45 4e 20 32 20 54 48   'one' WHEN 2 TH
4cf0: 45 4e 20 27 74 77 6f 27 20 45 4c 53 45 20 33 20  EN 'two' ELSE 3 
4d00: 45 4e 44 7d 20 33 0a 74 65 73 74 5f 65 78 70 72  END} 3.test_expr
4d10: 20 65 78 70 72 2d 63 61 73 65 2e 31 32 20 7b 69   expr-case.12 {i
4d20: 31 3d 31 7d 20 5c 0a 09 7b 43 41 53 45 20 69 31  1=1} \..{CASE i1
4d30: 20 57 48 45 4e 20 31 20 54 48 45 4e 20 6e 75 6c   WHEN 1 THEN nul
4d40: 6c 20 57 48 45 4e 20 32 20 54 48 45 4e 20 27 74  l WHEN 2 THEN 't
4d50: 77 6f 27 20 45 4c 53 45 20 33 20 45 4e 44 7d 20  wo' ELSE 3 END} 
4d60: 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72 20 65  {{}}.test_expr e
4d70: 78 70 72 2d 63 61 73 65 2e 31 33 20 7b 69 31 3d  xpr-case.13 {i1=
4d80: 37 7d 20 5c 0a 09 7b 20 43 41 53 45 20 57 48 45  7} \..{ CASE WHE
4d90: 4e 20 69 31 20 3c 20 35 20 54 48 45 4e 20 27 6c  N i1 < 5 THEN 'l
4da0: 6f 77 27 20 0a 09 20 20 20 20 20 20 20 57 48 45  ow' ..       WHE
4db0: 4e 20 69 31 20 3c 20 31 30 20 54 48 45 4e 20 27  N i1 < 10 THEN '
4dc0: 6d 65 64 69 75 6d 27 20 0a 20 20 20 20 20 20 20  medium' .       
4dd0: 20 20 20 20 20 20 20 20 57 48 45 4e 20 69 31 20          WHEN i1 
4de0: 3c 20 31 35 20 54 48 45 4e 20 27 68 69 67 68 27  < 15 THEN 'high'
4df0: 20 45 4c 53 45 20 27 65 72 72 6f 72 27 20 45 4e   ELSE 'error' EN
4e00: 44 7d 20 6d 65 64 69 75 6d 0a 0a 0a 23 20 54 68  D} medium...# Th
4e10: 65 20 73 71 6c 69 74 65 45 78 70 72 49 66 46 61  e sqliteExprIfFa
4e20: 6c 73 65 20 61 6e 64 20 73 71 6c 69 74 65 45 78  lse and sqliteEx
4e30: 70 72 49 66 54 72 75 65 20 72 6f 75 74 69 6e 65  prIfTrue routine
4e40: 73 20 61 72 65 20 6f 6e 6c 79 0a 23 20 65 78 65  s are only.# exe
4e50: 63 75 74 65 64 20 61 73 20 70 61 72 74 20 6f 66  cuted as part of
4e60: 20 61 20 57 48 45 52 45 20 63 6c 61 75 73 65 2e   a WHERE clause.
4e70: 20 20 43 72 65 61 74 65 20 61 20 74 61 62 6c 65    Create a table
4e80: 20 73 75 69 74 61 62 6c 65 0a 23 20 66 6f 72 20   suitable.# for 
4e90: 74 65 73 74 69 6e 67 20 74 68 65 73 65 20 66 75  testing these fu
4ea0: 6e 63 74 69 6f 6e 73 2e 0a 23 0a 65 78 65 63 73  nctions..#.execs
4eb0: 71 6c 20 7b 44 52 4f 50 20 54 41 42 4c 45 20 74  ql {DROP TABLE t
4ec0: 65 73 74 31 7d 0a 65 78 65 63 73 71 6c 20 7b 43  est1}.execsql {C
4ed0: 52 45 41 54 45 20 54 41 42 4c 45 20 74 65 73 74  REATE TABLE test
4ee0: 31 28 61 20 69 6e 74 2c 20 62 20 69 6e 74 29 3b  1(a int, b int);
4ef0: 7d 0a 66 6f 72 20 7b 73 65 74 20 69 20 31 7d 20  }.for {set i 1} 
4f00: 7b 24 69 3c 3d 32 30 7d 20 7b 69 6e 63 72 20 69  {$i<=20} {incr i
4f10: 7d 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 22 49  } {.  execsql "I
4f20: 4e 53 45 52 54 20 49 4e 54 4f 20 74 65 73 74 31  NSERT INTO test1
4f30: 20 56 41 4c 55 45 53 28 24 69 2c 5b 65 78 70 72   VALUES($i,[expr
4f40: 20 7b 69 6e 74 28 70 6f 77 28 32 2c 24 69 29 29   {int(pow(2,$i))
4f50: 7d 5d 29 22 0a 7d 0a 65 78 65 63 73 71 6c 20 22  }])".}.execsql "
4f60: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 65 73 74  INSERT INTO test
4f70: 31 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 30 29  1 VALUES(NULL,0)
4f80: 22 0a 64 6f 5f 74 65 73 74 20 65 78 70 72 2d 37  ".do_test expr-7
4f90: 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .1 {.  execsql {
4fa0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 65  SELECT * FROM te
4fb0: 73 74 31 20 4f 52 44 45 52 20 42 59 20 61 7d 0a  st1 ORDER BY a}.
4fc0: 7d 20 7b 7b 7d 20 30 20 31 20 32 20 32 20 34 20  } {{} 0 1 2 2 4 
4fd0: 33 20 38 20 34 20 31 36 20 35 20 33 32 20 36 20  3 8 4 16 5 32 6 
4fe0: 36 34 20 37 20 31 32 38 20 38 20 32 35 36 20 39  64 7 128 8 256 9
4ff0: 20 35 31 32 20 31 30 20 31 30 32 34 20 31 31 20   512 10 1024 11 
5000: 32 30 34 38 20 31 32 20 34 30 39 36 20 31 33 20  2048 12 4096 13 
5010: 38 31 39 32 20 31 34 20 31 36 33 38 34 20 31 35  8192 14 16384 15
5020: 20 33 32 37 36 38 20 31 36 20 36 35 35 33 36 20   32768 16 65536 
5030: 31 37 20 31 33 31 30 37 32 20 31 38 20 32 36 32  17 131072 18 262
5040: 31 34 34 20 31 39 20 35 32 34 32 38 38 20 32 30  144 19 524288 20
5050: 20 31 30 34 38 35 37 36 7d 0a 0a 70 72 6f 63 20   1048576}..proc 
5060: 74 65 73 74 5f 65 78 70 72 32 20 7b 6e 61 6d 65  test_expr2 {name
5070: 20 65 78 70 72 20 72 65 73 75 6c 74 7d 20 7b 0a   expr result} {.
5080: 20 20 64 6f 5f 74 65 73 74 20 24 6e 61 6d 65 20    do_test $name 
5090: 5b 66 6f 72 6d 61 74 20 7b 0a 20 20 20 20 65 78  [format {.    ex
50a0: 65 63 73 71 6c 20 7b 53 45 4c 45 43 54 20 61 20  ecsql {SELECT a 
50b0: 46 52 4f 4d 20 74 65 73 74 31 20 57 48 45 52 45  FROM test1 WHERE
50c0: 20 25 73 20 4f 52 44 45 52 20 42 59 20 61 7d 0a   %s ORDER BY a}.
50d0: 20 20 7d 20 24 65 78 70 72 5d 20 24 72 65 73 75    } $expr] $resu
50e0: 6c 74 0a 7d 0a 0a 74 65 73 74 5f 65 78 70 72 32  lt.}..test_expr2
50f0: 20 65 78 70 72 2d 37 2e 32 20 20 7b 61 3c 31 30   expr-7.2  {a<10
5100: 20 41 4e 44 20 61 3e 38 7d 20 20 20 20 20 20 20   AND a>8}       
5110: 20 20 20 20 20 20 20 20 20 20 20 7b 39 7d 0a 74             {9}.t
5120: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
5130: 2e 33 20 20 7b 61 3c 3d 31 30 20 41 4e 44 20 61  .3  {a<=10 AND a
5140: 3e 3d 38 7d 20 20 20 20 20 20 20 20 20 20 20 20  >=8}            
5150: 20 20 20 20 7b 38 20 39 20 31 30 7d 0a 74 65 73      {8 9 10}.tes
5160: 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 34  t_expr2 expr-7.4
5170: 20 20 7b 61 3e 3d 38 20 41 4e 44 20 61 3c 3d 31    {a>=8 AND a<=1
5180: 30 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20  0}              
5190: 20 20 7b 38 20 39 20 31 30 7d 0a 74 65 73 74 5f    {8 9 10}.test_
51a0: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 35 20 20  expr2 expr-7.5  
51b0: 7b 61 3e 3d 32 30 20 4f 52 20 61 3c 3d 31 7d 20  {a>=20 OR a<=1} 
51c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
51d0: 7b 31 20 32 30 7d 0a 74 65 73 74 5f 65 78 70 72  {1 20}.test_expr
51e0: 32 20 65 78 70 72 2d 37 2e 36 20 20 7b 62 21 3d  2 expr-7.6  {b!=
51f0: 34 20 41 4e 44 20 61 3c 3d 33 7d 20 20 20 20 20  4 AND a<=3}     
5200: 20 20 20 20 20 20 20 20 20 20 20 20 7b 31 20 33              {1 3
5210: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
5220: 72 2d 37 2e 37 20 20 7b 62 3d 3d 38 20 4f 52 20  r-7.7  {b==8 OR 
5230: 62 3d 3d 31 36 20 4f 52 20 62 3d 3d 33 32 7d 20  b==16 OR b==32} 
5240: 20 20 20 20 20 20 20 7b 33 20 34 20 35 7d 0a 74         {3 4 5}.t
5250: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
5260: 2e 38 20 20 7b 4e 4f 54 20 62 3c 3e 38 20 4f 52  .8  {NOT b<>8 OR
5270: 20 62 3d 3d 31 30 32 34 7d 20 20 20 20 20 20 20   b==1024}       
5280: 20 20 20 20 7b 33 20 31 30 7d 0a 74 65 73 74 5f      {3 10}.test_
5290: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 39 20 20  expr2 expr-7.9  
52a0: 7b 62 20 4c 49 4b 45 20 27 31 30 25 27 7d 20 20  {b LIKE '10%'}  
52b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
52c0: 7b 31 30 20 32 30 7d 0a 74 65 73 74 5f 65 78 70  {10 20}.test_exp
52d0: 72 32 20 65 78 70 72 2d 37 2e 31 30 20 7b 62 20  r2 expr-7.10 {b 
52e0: 4c 49 4b 45 20 27 5f 34 27 7d 20 20 20 20 20 20  LIKE '_4'}      
52f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 36 7d               {6}
5300: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
5310: 2d 37 2e 31 31 20 7b 61 20 47 4c 4f 42 20 27 31  -7.11 {a GLOB '1
5320: 3f 27 7d 20 20 20 20 20 20 20 20 20 20 20 20 7b  ?'}            {
5330: 31 30 20 31 31 20 31 32 20 31 33 20 31 34 20 31  10 11 12 13 14 1
5340: 35 20 31 36 20 31 37 20 31 38 20 31 39 7d 0a 74  5 16 17 18 19}.t
5350: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
5360: 2e 31 32 20 7b 62 20 47 4c 4f 42 20 27 31 2a 34  .12 {b GLOB '1*4
5370: 27 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20  '}              
5380: 20 20 20 20 7b 31 30 20 31 34 7d 0a 74 65 73 74      {10 14}.test
5390: 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 31 33  _expr2 expr-7.13
53a0: 20 7b 62 20 47 4c 4f 42 20 27 2a 31 5b 34 35 36   {b GLOB '*1[456
53b0: 5d 27 7d 20 20 20 20 20 20 20 20 20 20 20 20 20  ]'}             
53c0: 20 7b 34 7d 0a 74 65 73 74 5f 65 78 70 72 32 20   {4}.test_expr2 
53d0: 65 78 70 72 2d 37 2e 31 34 20 7b 61 20 49 53 4e  expr-7.14 {a ISN
53e0: 55 4c 4c 7d 20 20 20 20 20 20 20 20 20 20 20 20  ULL}            
53f0: 20 20 20 20 20 20 20 20 20 20 7b 7b 7d 7d 0a 74            {{}}.t
5400: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
5410: 2e 31 35 20 7b 61 20 4e 4f 54 4e 55 4c 4c 20 41  .15 {a NOTNULL A
5420: 4e 44 20 61 3c 33 7d 20 20 20 20 20 20 20 20 20  ND a<3}         
5430: 20 20 20 20 7b 31 20 32 7d 0a 74 65 73 74 5f 65      {1 2}.test_e
5440: 78 70 72 32 20 65 78 70 72 2d 37 2e 31 36 20 7b  xpr2 expr-7.16 {
5450: 61 20 41 4e 44 20 61 3c 33 7d 20 20 20 20 20 20  a AND a<3}      
5460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
5470: 31 20 32 7d 0a 74 65 73 74 5f 65 78 70 72 32 20  1 2}.test_expr2 
5480: 65 78 70 72 2d 37 2e 31 37 20 7b 4e 4f 54 20 61  expr-7.17 {NOT a
5490: 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  }               
54a0: 20 20 20 20 20 20 20 20 20 20 7b 7d 0a 74 65 73            {}.tes
54b0: 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 31  t_expr2 expr-7.1
54c0: 38 20 7b 61 3d 3d 31 31 20 4f 52 20 28 62 3e 31  8 {a==11 OR (b>1
54d0: 30 30 30 20 41 4e 44 20 62 3c 32 30 30 30 29 7d  000 AND b<2000)}
54e0: 20 20 7b 31 30 20 31 31 7d 0a 74 65 73 74 5f 65    {10 11}.test_e
54f0: 78 70 72 32 20 65 78 70 72 2d 37 2e 31 39 20 7b  xpr2 expr-7.19 {
5500: 61 3c 3d 31 20 4f 52 20 61 3e 3d 32 30 7d 20 20  a<=1 OR a>=20}  
5510: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
5520: 31 20 32 30 7d 0a 74 65 73 74 5f 65 78 70 72 32  1 20}.test_expr2
5530: 20 65 78 70 72 2d 37 2e 32 30 20 7b 61 3c 31 20   expr-7.20 {a<1 
5540: 4f 52 20 61 3e 32 30 7d 20 20 20 20 20 20 20 20  OR a>20}        
5550: 20 20 20 20 20 20 20 20 20 20 20 7b 7d 0a 74 65             {}.te
5560: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
5570: 32 31 20 7b 61 3e 31 39 20 4f 52 20 61 3c 31 7d  21 {a>19 OR a<1}
5580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5590: 20 20 20 7b 32 30 7d 0a 74 65 73 74 5f 65 78 70     {20}.test_exp
55a0: 72 32 20 65 78 70 72 2d 37 2e 32 32 20 7b 61 21  r2 expr-7.22 {a!
55b0: 3d 31 20 4f 52 20 61 3d 31 30 30 7d 20 5c 0a 20  =1 OR a=100} \. 
55c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
55d0: 20 20 20 20 20 20 20 20 7b 32 20 33 20 34 20 35          {2 3 4 5
55e0: 20 36 20 37 20 38 20 39 20 31 30 20 31 31 20 31   6 7 8 9 10 11 1
55f0: 32 20 31 33 20 31 34 20 31 35 20 31 36 20 31 37  2 13 14 15 16 17
5600: 20 31 38 20 31 39 20 32 30 7d 0a 74 65 73 74 5f   18 19 20}.test_
5610: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 32 33 20  expr2 expr-7.23 
5620: 7b 28 61 20 6e 6f 74 6e 75 6c 6c 20 41 4e 44 20  {(a notnull AND 
5630: 61 3c 34 29 20 4f 52 20 61 3d 3d 38 7d 20 20 20  a<4) OR a==8}   
5640: 7b 31 20 32 20 33 20 38 7d 0a 74 65 73 74 5f 65  {1 2 3 8}.test_e
5650: 78 70 72 32 20 65 78 70 72 2d 37 2e 32 34 20 7b  xpr2 expr-7.24 {
5660: 61 20 4c 49 4b 45 20 27 32 5f 27 20 4f 52 20 61  a LIKE '2_' OR a
5670: 3d 3d 38 7d 20 20 20 20 20 20 20 20 20 20 20 7b  ==8}           {
5680: 38 20 32 30 7d 0a 74 65 73 74 5f 65 78 70 72 32  8 20}.test_expr2
5690: 20 65 78 70 72 2d 37 2e 32 35 20 7b 61 20 47 4c   expr-7.25 {a GL
56a0: 4f 42 20 27 32 3f 27 20 4f 52 20 61 3d 3d 38 7d  OB '2?' OR a==8}
56b0: 20 20 20 20 20 20 20 20 20 20 20 7b 38 20 32 30             {8 20
56c0: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
56d0: 72 2d 37 2e 32 36 20 7b 61 20 69 73 6e 75 6c 6c  r-7.26 {a isnull
56e0: 20 4f 52 20 61 3d 38 7d 20 20 20 20 20 20 20 20   OR a=8}        
56f0: 20 20 20 20 20 20 20 7b 7b 7d 20 38 7d 0a 74 65         {{} 8}.te
5700: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
5710: 32 37 20 7b 61 20 6e 6f 74 6e 75 6c 6c 20 4f 52  27 {a notnull OR
5720: 20 61 3d 38 7d 20 5c 0a 20 20 20 20 20 20 20 20   a=8} \.        
5730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5740: 20 20 7b 31 20 32 20 33 20 34 20 35 20 36 20 37    {1 2 3 4 5 6 7
5750: 20 38 20 39 20 31 30 20 31 31 20 31 32 20 31 33   8 9 10 11 12 13
5760: 20 31 34 20 31 35 20 31 36 20 31 37 20 31 38 20   14 15 16 17 18 
5770: 31 39 20 32 30 7d 0a 74 65 73 74 5f 65 78 70 72  19 20}.test_expr
5780: 32 20 65 78 70 72 2d 37 2e 32 38 20 7b 61 3c 30  2 expr-7.28 {a<0
5790: 20 4f 52 20 62 3d 30 7d 20 7b 7b 7d 7d 0a 74 65   OR b=0} {{}}.te
57a0: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
57b0: 32 39 20 7b 62 3d 30 20 4f 52 20 61 3c 30 7d 20  29 {b=0 OR a<0} 
57c0: 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72 32 20  {{}}.test_expr2 
57d0: 65 78 70 72 2d 37 2e 33 30 20 7b 61 3c 30 20 41  expr-7.30 {a<0 A
57e0: 4e 44 20 62 3d 30 7d 20 7b 7d 0a 74 65 73 74 5f  ND b=0} {}.test_
57f0: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 33 31 20  expr2 expr-7.31 
5800: 7b 62 3d 30 20 41 4e 44 20 61 3c 30 7d 20 7b 7d  {b=0 AND a<0} {}
5810: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
5820: 2d 37 2e 33 32 20 7b 61 20 49 53 20 4e 55 4c 4c  -7.32 {a IS NULL
5830: 20 41 4e 44 20 28 61 3c 30 20 4f 52 20 62 3d 30   AND (a<0 OR b=0
5840: 29 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70  )} {{}}.test_exp
5850: 72 32 20 65 78 70 72 2d 37 2e 33 33 20 7b 61 20  r2 expr-7.33 {a 
5860: 49 53 20 4e 55 4c 4c 20 41 4e 44 20 28 62 3d 30  IS NULL AND (b=0
5870: 20 4f 52 20 61 3c 30 29 7d 20 7b 7b 7d 7d 0a 74   OR a<0)} {{}}.t
5880: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
5890: 2e 33 34 20 7b 61 20 49 53 20 4e 55 4c 4c 20 41  .34 {a IS NULL A
58a0: 4e 44 20 28 61 3c 30 20 41 4e 44 20 62 3d 30 29  ND (a<0 AND b=0)
58b0: 7d 20 7b 7d 0a 74 65 73 74 5f 65 78 70 72 32 20  } {}.test_expr2 
58c0: 65 78 70 72 2d 37 2e 33 35 20 7b 61 20 49 53 20  expr-7.35 {a IS 
58d0: 4e 55 4c 4c 20 41 4e 44 20 28 62 3d 30 20 41 4e  NULL AND (b=0 AN
58e0: 44 20 61 3c 30 29 7d 20 7b 7d 0a 74 65 73 74 5f  D a<0)} {}.test_
58f0: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 33 32 20  expr2 expr-7.32 
5900: 7b 28 61 3c 30 20 4f 52 20 62 3d 30 29 20 41 4e  {(a<0 OR b=0) AN
5910: 44 20 61 20 49 53 20 4e 55 4c 4c 7d 20 7b 7b 7d  D a IS NULL} {{}
5920: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
5930: 72 2d 37 2e 33 33 20 7b 28 62 3d 30 20 4f 52 20  r-7.33 {(b=0 OR 
5940: 61 3c 30 29 20 41 4e 44 20 61 20 49 53 20 4e 55  a<0) AND a IS NU
5950: 4c 4c 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78  LL} {{}}.test_ex
5960: 70 72 32 20 65 78 70 72 2d 37 2e 33 34 20 7b 28  pr2 expr-7.34 {(
5970: 61 3c 30 20 41 4e 44 20 62 3d 30 29 20 41 4e 44  a<0 AND b=0) AND
5980: 20 61 20 49 53 20 4e 55 4c 4c 7d 20 7b 7d 0a 74   a IS NULL} {}.t
5990: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
59a0: 2e 33 35 20 7b 28 62 3d 30 20 41 4e 44 20 61 3c  .35 {(b=0 AND a<
59b0: 30 29 20 41 4e 44 20 61 20 49 53 20 4e 55 4c 4c  0) AND a IS NULL
59c0: 7d 20 7b 7d 0a 74 65 73 74 5f 65 78 70 72 32 20  } {}.test_expr2 
59d0: 65 78 70 72 2d 37 2e 33 36 20 7b 61 3c 32 20 4f  expr-7.36 {a<2 O
59e0: 52 20 28 61 3c 30 20 4f 52 20 62 3d 30 29 7d 20  R (a<0 OR b=0)} 
59f0: 7b 7b 7d 20 31 7d 0a 74 65 73 74 5f 65 78 70 72  {{} 1}.test_expr
5a00: 32 20 65 78 70 72 2d 37 2e 33 37 20 7b 61 3c 32  2 expr-7.37 {a<2
5a10: 20 4f 52 20 28 62 3d 30 20 4f 52 20 61 3c 30 29   OR (b=0 OR a<0)
5a20: 7d 20 7b 7b 7d 20 31 7d 0a 74 65 73 74 5f 65 78  } {{} 1}.test_ex
5a30: 70 72 32 20 65 78 70 72 2d 37 2e 33 38 20 7b 61  pr2 expr-7.38 {a
5a40: 3c 32 20 4f 52 20 28 61 3c 30 20 41 4e 44 20 62  <2 OR (a<0 AND b
5a50: 3d 30 29 7d 20 7b 31 7d 0a 74 65 73 74 5f 65 78  =0)} {1}.test_ex
5a60: 70 72 32 20 65 78 70 72 2d 37 2e 33 39 20 7b 61  pr2 expr-7.39 {a
5a70: 3c 32 20 4f 52 20 28 62 3d 30 20 41 4e 44 20 61  <2 OR (b=0 AND a
5a80: 3c 30 29 7d 20 7b 31 7d 0a 74 65 73 74 5f 65 78  <0)} {1}.test_ex
5a90: 70 72 32 20 65 78 70 72 2d 37 2e 34 30 20 7b 28  pr2 expr-7.40 {(
5aa0: 28 61 3c 32 20 4f 52 20 61 20 49 53 20 4e 55 4c  (a<2 OR a IS NUL
5ab0: 4c 29 20 41 4e 44 20 62 3c 33 29 20 4f 52 20 62  L) AND b<3) OR b
5ac0: 3e 31 65 31 30 7d 20 7b 7b 7d 20 31 7d 0a 74 65  >1e10} {{} 1}.te
5ad0: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
5ae0: 34 31 20 7b 61 20 42 45 54 57 45 45 4e 20 2d 31  41 {a BETWEEN -1
5af0: 20 41 4e 44 20 31 7d 20 7b 31 7d 0a 74 65 73 74   AND 1} {1}.test
5b00: 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 34 32  _expr2 expr-7.42
5b10: 20 7b 61 20 4e 4f 54 20 42 45 54 57 45 45 4e 20   {a NOT BETWEEN 
5b20: 32 20 41 4e 44 20 31 30 30 7d 20 7b 31 7d 0a 74  2 AND 100} {1}.t
5b30: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
5b40: 2e 34 33 20 7b 28 62 2b 31 32 33 34 29 7c 7c 27  .43 {(b+1234)||'
5b50: 74 68 69 73 20 69 73 20 61 20 73 74 72 69 6e 67  this is a string
5b60: 20 74 68 61 74 20 69 73 20 61 74 20 6c 65 61 73   that is at leas
5b70: 74 20 33 32 20 63 68 61 72 61 63 74 65 72 73 20  t 32 characters 
5b80: 6c 6f 6e 67 27 20 42 45 54 57 45 45 4e 20 31 20  long' BETWEEN 1 
5b90: 41 4e 44 20 32 7d 20 7b 7d 0a 74 65 73 74 5f 65  AND 2} {}.test_e
5ba0: 78 70 72 32 20 65 78 70 72 2d 37 2e 34 34 20 7b  xpr2 expr-7.44 {
5bb0: 31 32 33 7c 7c 27 78 61 62 63 64 65 66 67 68 69  123||'xabcdefghi
5bc0: 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 79 78  jklmnopqrstuvwyx
5bd0: 7a 30 31 32 33 34 35 36 37 38 39 30 27 7c 7c 61  z01234567890'||a
5be0: 20 42 45 54 57 45 45 4e 20 27 31 32 33 61 27 20   BETWEEN '123a' 
5bf0: 41 4e 44 20 27 31 32 33 62 27 7d 20 7b 7d 0a 74  AND '123b'} {}.t
5c00: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
5c10: 2e 34 35 20 7b 28 28 31 32 33 7c 7c 27 78 61 62  .45 {((123||'xab
5c20: 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72  cdefghijklmnopqr
5c30: 73 74 75 76 77 79 78 7a 30 31 32 33 34 35 36 37  stuvwyxz01234567
5c40: 38 39 30 27 7c 7c 61 29 20 42 45 54 57 45 45 4e  890'||a) BETWEEN
5c50: 20 27 31 32 33 61 27 20 41 4e 44 20 27 31 32 33   '123a' AND '123
5c60: 62 27 29 3c 30 7d 20 7b 7d 0a 74 65 73 74 5f 65  b')<0} {}.test_e
5c70: 78 70 72 32 20 65 78 70 72 2d 37 2e 34 36 20 7b  xpr2 expr-7.46 {
5c80: 28 28 31 32 33 7c 7c 27 78 61 62 63 64 65 66 67  ((123||'xabcdefg
5c90: 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77  hijklmnopqrstuvw
5ca0: 79 78 7a 30 31 32 33 34 35 36 37 38 39 30 27 7c  yxz01234567890'|
5cb0: 7c 61 29 20 42 45 54 57 45 45 4e 20 27 31 32 33  |a) BETWEEN '123
5cc0: 61 27 20 41 4e 44 20 27 31 32 33 7a 27 29 3e 30  a' AND '123z')>0
5cd0: 7d 20 7b 31 20 32 20 33 20 34 20 35 20 36 20 37  } {1 2 3 4 5 6 7
5ce0: 20 38 20 39 20 31 30 20 31 31 20 31 32 20 31 33   8 9 10 11 12 13
5cf0: 20 31 34 20 31 35 20 31 36 20 31 37 20 31 38 20   14 15 16 17 18 
5d00: 31 39 20 32 30 7d 0a 0a 74 65 73 74 5f 65 78 70  19 20}..test_exp
5d10: 72 32 20 65 78 70 72 2d 37 2e 35 30 20 7b 28 28  r2 expr-7.50 {((
5d20: 61 20 62 65 74 77 65 65 6e 20 31 20 61 6e 64 20  a between 1 and 
5d30: 32 20 4f 52 20 30 29 20 41 4e 44 20 31 29 20 4f  2 OR 0) AND 1) O
5d40: 52 20 30 7d 20 7b 31 20 32 7d 0a 74 65 73 74 5f  R 0} {1 2}.test_
5d50: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 35 31 20  expr2 expr-7.51 
5d60: 7b 28 28 61 20 6e 6f 74 20 62 65 74 77 65 65 6e  {((a not between
5d70: 20 33 20 61 6e 64 20 31 30 30 20 4f 52 20 30 29   3 and 100 OR 0)
5d80: 20 41 4e 44 20 31 29 20 4f 52 20 30 7d 20 7b 31   AND 1) OR 0} {1
5d90: 20 32 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65   2}.test_expr2 e
5da0: 78 70 72 2d 37 2e 35 32 20 7b 28 28 61 20 69 6e  xpr-7.52 {((a in
5db0: 20 28 31 2c 32 29 20 4f 52 20 30 29 20 41 4e 44   (1,2) OR 0) AND
5dc0: 20 31 29 20 4f 52 20 30 7d 20 7b 31 20 32 7d 0a   1) OR 0} {1 2}.
5dd0: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
5de0: 37 2e 35 33 20 7b 28 28 61 20 6e 6f 74 20 69 6e  7.53 {((a not in
5df0: 20 28 33 2c 34 2c 35 2c 36 2c 37 2c 38 2c 39 2c   (3,4,5,6,7,8,9,
5e00: 31 30 29 20 4f 52 20 30 29 20 41 4e 44 20 61 3c  10) OR 0) AND a<
5e10: 31 31 29 20 4f 52 20 30 7d 20 7b 31 20 32 7d 0a  11) OR 0} {1 2}.
5e20: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
5e30: 37 2e 35 34 20 7b 28 28 61 3e 30 20 4f 52 20 30  7.54 {((a>0 OR 0
5e40: 29 20 41 4e 44 20 61 3c 33 29 20 4f 52 20 30 7d  ) AND a<3) OR 0}
5e50: 20 7b 31 20 32 7d 0a 74 65 73 74 5f 65 78 70 72   {1 2}.test_expr
5e60: 32 20 65 78 70 72 2d 37 2e 35 35 20 7b 28 28 61  2 expr-7.55 {((a
5e70: 20 69 6e 20 28 31 2c 32 29 20 4f 52 20 30 29 20   in (1,2) OR 0) 
5e80: 49 53 20 4e 55 4c 4c 20 41 4e 44 20 31 29 20 4f  IS NULL AND 1) O
5e90: 52 20 30 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65  R 0} {{}}.test_e
5ea0: 78 70 72 32 20 65 78 70 72 2d 37 2e 35 36 20 7b  xpr2 expr-7.56 {
5eb0: 28 28 61 20 6e 6f 74 20 69 6e 20 28 33 2c 34 2c  ((a not in (3,4,
5ec0: 35 2c 36 2c 37 2c 38 2c 39 2c 31 30 29 20 49 53  5,6,7,8,9,10) IS
5ed0: 20 4e 55 4c 4c 20 4f 52 20 30 29 20 41 4e 44 20   NULL OR 0) AND 
5ee0: 31 29 20 4f 52 20 30 7d 20 5c 0a 20 20 20 7b 7b  1) OR 0} \.   {{
5ef0: 7d 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  }}.test_expr2 ex
5f00: 70 72 2d 37 2e 35 37 20 7b 28 28 61 3e 30 20 49  pr-7.57 {((a>0 I
5f10: 53 20 4e 55 4c 4c 20 4f 52 20 30 29 20 41 4e 44  S NULL OR 0) AND
5f20: 20 31 29 20 4f 52 20 30 7d 20 7b 7b 7d 7d 0a 0a   1) OR 0} {{}}..
5f30: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
5f40: 37 2e 35 38 20 20 7b 28 61 7c 7c 27 27 29 3c 3d  7.58  {(a||'')<=
5f50: 27 31 27 7d 20 20 20 20 20 20 20 20 20 20 20 20  '1'}            
5f60: 20 20 20 20 20 20 7b 31 7d 0a 0a 74 65 73 74 5f        {1}..test_
5f70: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 35 39 20  expr2 expr-7.59 
5f80: 7b 4c 49 4b 45 28 27 31 30 25 27 2c 62 29 7d 20  {LIKE('10%',b)} 
5f90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5fa0: 20 7b 31 30 20 32 30 7d 0a 74 65 73 74 5f 65 78   {10 20}.test_ex
5fb0: 70 72 32 20 65 78 70 72 2d 37 2e 36 30 20 7b 4c  pr2 expr-7.60 {L
5fc0: 49 4b 45 28 27 5f 34 27 2c 62 29 7d 20 20 20 20  IKE('_4',b)}    
5fd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
5fe0: 36 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  6}.test_expr2 ex
5ff0: 70 72 2d 37 2e 36 31 20 7b 47 4c 4f 42 28 27 31  pr-7.61 {GLOB('1
6000: 3f 27 2c 61 29 7d 20 20 20 20 20 20 20 20 20 20  ?',a)}          
6010: 20 20 7b 31 30 20 31 31 20 31 32 20 31 33 20 31    {10 11 12 13 1
6020: 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39  4 15 16 17 18 19
6030: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
6040: 72 2d 37 2e 36 32 20 7b 47 4c 4f 42 28 27 31 2a  r-7.62 {GLOB('1*
6050: 34 27 2c 62 29 7d 20 20 20 20 20 20 20 20 20 20  4',b)}          
6060: 20 20 20 20 20 20 20 20 7b 31 30 20 31 34 7d 0a          {10 14}.
6070: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
6080: 37 2e 36 33 20 7b 47 4c 4f 42 28 27 2a 31 5b 34  7.63 {GLOB('*1[4
6090: 35 36 5d 27 2c 62 29 7d 20 20 20 20 20 20 20 20  56]',b)}        
60a0: 20 20 20 20 20 20 7b 34 7d 0a 0a 23 20 54 65 73        {4}..# Tes
60b0: 74 20 74 68 65 20 43 55 52 52 45 4e 54 5f 54 49  t the CURRENT_TI
60c0: 4d 45 2c 20 43 55 52 52 45 4e 54 5f 44 41 54 45  ME, CURRENT_DATE
60d0: 2c 20 61 6e 64 20 43 55 52 52 45 4e 54 5f 54 49  , and CURRENT_TI
60e0: 4d 45 53 54 41 4d 50 20 65 78 70 72 65 73 73 69  MESTAMP expressi
60f0: 6f 6e 73 2e 0a 23 0a 73 65 74 20 73 71 6c 69 74  ons..#.set sqlit
6100: 65 5f 63 75 72 72 65 6e 74 5f 74 69 6d 65 20 5b  e_current_time [
6110: 63 6c 6f 63 6b 20 73 65 63 6f 6e 64 73 5d 0a 73  clock seconds].s
6120: 65 74 20 64 61 74 65 20 5b 63 6c 6f 63 6b 20 66  et date [clock f
6130: 6f 72 6d 61 74 20 24 73 71 6c 69 74 65 5f 63 75  ormat $sqlite_cu
6140: 72 72 65 6e 74 5f 74 69 6d 65 20 2d 66 6f 72 6d  rrent_time -form
6150: 61 74 20 25 59 2d 25 6d 2d 25 64 20 2d 67 6d 74  at %Y-%m-%d -gmt
6160: 20 31 5d 0a 73 65 74 20 74 69 6d 65 20 5b 63 6c   1].set time [cl
6170: 6f 63 6b 20 66 6f 72 6d 61 74 20 24 73 71 6c 69  ock format $sqli
6180: 74 65 5f 63 75 72 72 65 6e 74 5f 74 69 6d 65 20  te_current_time 
6190: 2d 66 6f 72 6d 61 74 20 25 48 3a 25 4d 3a 25 53  -format %H:%M:%S
61a0: 20 2d 67 6d 74 20 31 5d 0a 64 6f 5f 74 65 73 74   -gmt 1].do_test
61b0: 20 65 78 70 72 2d 38 2e 31 20 7b 0a 20 20 65 78   expr-8.1 {.  ex
61c0: 65 63 73 71 6c 20 7b 53 45 4c 45 43 54 20 43 55  ecsql {SELECT CU
61d0: 52 52 45 4e 54 5f 54 49 4d 45 7d 0a 7d 20 24 74  RRENT_TIME}.} $t
61e0: 69 6d 65 0a 64 6f 5f 74 65 73 74 20 65 78 70 72  ime.do_test expr
61f0: 2d 38 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c  -8.2 {.  execsql
6200: 20 7b 53 45 4c 45 43 54 20 43 55 52 52 45 4e 54   {SELECT CURRENT
6210: 5f 44 41 54 45 7d 0a 7d 20 24 64 61 74 65 0a 64  _DATE}.} $date.d
6220: 6f 5f 74 65 73 74 20 65 78 70 72 2d 38 2e 33 20  o_test expr-8.3 
6230: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 53 45 4c  {.  execsql {SEL
6240: 45 43 54 20 43 55 52 52 45 4e 54 5f 54 49 4d 45  ECT CURRENT_TIME
6250: 53 54 41 4d 50 7d 0a 7d 20 5b 6c 69 73 74 20 22  STAMP}.} [list "
6260: 24 64 61 74 65 20 24 74 69 6d 65 22 5d 0a 69 66  $date $time"].if
6270: 63 61 70 61 62 6c 65 20 64 61 74 65 74 69 6d 65  capable datetime
6280: 20 7b 0a 20 20 64 6f 5f 74 65 73 74 20 65 78 70   {.  do_test exp
6290: 72 2d 38 2e 34 20 7b 0a 20 20 20 20 65 78 65 63  r-8.4 {.    exec
62a0: 73 71 6c 20 7b 53 45 4c 45 43 54 20 43 55 52 52  sql {SELECT CURR
62b0: 45 4e 54 5f 54 49 4d 45 3d 3d 74 69 6d 65 28 27  ENT_TIME==time('
62c0: 6e 6f 77 27 29 3b 7d 0a 20 20 7d 20 31 0a 20 20  now');}.  } 1.  
62d0: 64 6f 5f 74 65 73 74 20 65 78 70 72 2d 38 2e 35  do_test expr-8.5
62e0: 20 7b 0a 20 20 20 20 65 78 65 63 73 71 6c 20 7b   {.    execsql {
62f0: 53 45 4c 45 43 54 20 43 55 52 52 45 4e 54 5f 44  SELECT CURRENT_D
6300: 41 54 45 3d 3d 64 61 74 65 28 27 6e 6f 77 27 29  ATE==date('now')
6310: 3b 7d 0a 20 20 7d 20 31 0a 20 20 64 6f 5f 74 65  ;}.  } 1.  do_te
6320: 73 74 20 65 78 70 72 2d 38 2e 36 20 7b 0a 20 20  st expr-8.6 {.  
6330: 20 20 65 78 65 63 73 71 6c 20 7b 53 45 4c 45 43    execsql {SELEC
6340: 54 20 43 55 52 52 45 4e 54 5f 54 49 4d 45 53 54  T CURRENT_TIMEST
6350: 41 4d 50 3d 3d 64 61 74 65 74 69 6d 65 28 27 6e  AMP==datetime('n
6360: 6f 77 27 29 3b 7d 0a 20 20 7d 20 31 0a 7d 0a 73  ow');}.  } 1.}.s
6370: 65 74 20 73 71 6c 69 74 65 5f 63 75 72 72 65 6e  et sqlite_curren
6380: 74 5f 74 69 6d 65 20 30 0a 0a 66 69 6e 69 73 68  t_time 0..finish
6390: 5f 74 65 73 74 0a 0a                             _test..