/ Hex Artifact Content
Login

Artifact 54d9d1cc05eb731fa62daa70f2d7163f8a03c54d:


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 34   expr.test,v 1.4
01f0: 33 20 32 30 30 35 2f 30 31 2f 32 31 20 31 31 3a  3 2005/01/21 11:
0200: 35 35 3a 32 37 20 64 61 6e 69 65 6c 6b 31 39 37  55:27 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 23 20 4c 49 4b 45 20 65 78 70 72 65 73 73 69  .# LIKE expressi
3610: 6f 6e 73 20 74 68 61 74 20 75 73 65 20 45 53 43  ons that use ESC
3620: 41 50 45 20 63 68 61 72 61 63 74 65 72 73 2e 0a  APE characters..
3630: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35  test_expr expr-5
3640: 2e 35 38 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  .58 {t1='abc', t
3650: 32 3d 27 41 5f 43 27 7d 20 20 20 7b 74 31 20 4c  2='A_C'}   {t1 L
3660: 49 4b 45 20 74 32 20 45 53 43 41 50 45 20 27 37  IKE t2 ESCAPE '7
3670: 27 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  '} 1.test_expr e
3680: 78 70 72 2d 35 2e 35 39 20 7b 74 31 3d 27 61 5f  xpr-5.59 {t1='a_
3690: 63 27 2c 20 74 32 3d 27 41 37 5f 43 27 7d 20 20  c', t2='A7_C'}  
36a0: 7b 74 31 20 4c 49 4b 45 20 74 32 20 45 53 43 41  {t1 LIKE t2 ESCA
36b0: 50 45 20 27 37 27 7d 20 31 0a 74 65 73 74 5f 65  PE '7'} 1.test_e
36c0: 78 70 72 20 65 78 70 72 2d 35 2e 36 30 20 7b 74  xpr expr-5.60 {t
36d0: 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 41 37 5f  1='abc', t2='A7_
36e0: 43 27 7d 20 20 7b 74 31 20 4c 49 4b 45 20 74 32  C'}  {t1 LIKE t2
36f0: 20 45 53 43 41 50 45 20 27 37 27 7d 20 30 0a 74   ESCAPE '7'} 0.t
3700: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e  est_expr expr-5.
3710: 36 31 20 7b 74 31 3d 27 61 37 58 63 27 2c 20 74  61 {t1='a7Xc', t
3720: 32 3d 27 41 37 5f 43 27 7d 20 7b 74 31 20 4c 49  2='A7_C'} {t1 LI
3730: 4b 45 20 74 32 20 45 53 43 41 50 45 20 27 37 27  KE t2 ESCAPE '7'
3740: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
3750: 70 72 2d 35 2e 36 32 20 7b 74 31 3d 27 61 62 63  pr-5.62 {t1='abc
3760: 64 65 27 2c 20 74 32 3d 27 41 25 45 27 7d 20 7b  de', t2='A%E'} {
3770: 74 31 20 4c 49 4b 45 20 74 32 20 45 53 43 41 50  t1 LIKE t2 ESCAP
3780: 45 20 27 37 27 7d 20 31 0a 74 65 73 74 5f 65 78  E '7'} 1.test_ex
3790: 70 72 20 65 78 70 72 2d 35 2e 36 33 20 7b 74 31  pr expr-5.63 {t1
37a0: 3d 27 61 62 63 64 65 27 2c 20 74 32 3d 27 41 37  ='abcde', t2='A7
37b0: 25 45 27 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32  %E'} {t1 LIKE t2
37c0: 20 45 53 43 41 50 45 20 27 37 27 7d 20 30 0a 74   ESCAPE '7'} 0.t
37d0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e  est_expr expr-5.
37e0: 36 34 20 7b 74 31 3d 27 61 37 63 64 65 27 2c 20  64 {t1='a7cde', 
37f0: 74 32 3d 27 41 37 25 45 27 7d 20 7b 74 31 20 4c  t2='A7%E'} {t1 L
3800: 49 4b 45 20 74 32 20 45 53 43 41 50 45 20 27 37  IKE t2 ESCAPE '7
3810: 27 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  '} 0.test_expr e
3820: 78 70 72 2d 35 2e 36 35 20 7b 74 31 3d 27 61 37  xpr-5.65 {t1='a7
3830: 63 64 65 27 2c 20 74 32 3d 27 41 37 37 25 45 27  cde', t2='A77%E'
3840: 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 20 45 53  } {t1 LIKE t2 ES
3850: 43 41 50 45 20 27 37 27 7d 20 31 0a 74 65 73 74  CAPE '7'} 1.test
3860: 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 36 36 20  _expr expr-5.66 
3870: 7b 74 31 3d 27 61 62 63 37 27 2c 20 74 32 3d 27  {t1='abc7', t2='
3880: 41 25 37 37 27 7d 20 7b 74 31 20 4c 49 4b 45 20  A%77'} {t1 LIKE 
3890: 74 32 20 45 53 43 41 50 45 20 27 37 27 7d 20 31  t2 ESCAPE '7'} 1
38a0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
38b0: 35 2e 36 37 20 7b 74 31 3d 27 61 62 63 5f 27 2c  5.67 {t1='abc_',
38c0: 20 74 32 3d 27 41 25 37 5f 27 7d 20 7b 74 31 20   t2='A%7_'} {t1 
38d0: 4c 49 4b 45 20 74 32 20 45 53 43 41 50 45 20 27  LIKE t2 ESCAPE '
38e0: 37 27 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  7'} 1.test_expr 
38f0: 65 78 70 72 2d 35 2e 36 38 20 7b 74 31 3d 27 61  expr-5.68 {t1='a
3900: 62 63 37 27 2c 20 74 32 3d 27 41 25 37 5f 27 7d  bc7', t2='A%7_'}
3910: 20 7b 74 31 20 4c 49 4b 45 20 74 32 20 45 53 43   {t1 LIKE t2 ESC
3920: 41 50 45 20 27 37 27 7d 20 30 0a 0a 23 20 54 68  APE '7'} 0..# Th
3930: 65 73 65 20 61 72 65 20 74 68 65 20 73 61 6d 65  ese are the same
3940: 20 74 65 73 74 20 61 73 20 74 68 65 20 62 6c 6f   test as the blo
3950: 63 6b 20 61 62 6f 76 65 2c 20 62 75 74 20 75 73  ck above, but us
3960: 69 6e 67 20 61 20 6d 75 6c 74 69 2d 62 79 74 65  ing a multi-byte
3970: 20 0a 23 20 63 68 61 72 61 63 74 65 72 20 61 73   .# character as
3980: 20 74 68 65 20 65 73 63 61 70 65 20 63 68 61 72   the escape char
3990: 61 63 74 65 72 2e 0a 69 66 20 7b 22 5c 75 31 32  acter..if {"\u12
39a0: 33 34 22 21 3d 22 75 31 32 33 34 22 7d 20 7b 0a  34"!="u1234"} {.
39b0: 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72    test_expr expr
39c0: 2d 35 2e 36 39 20 22 74 31 3d 27 61 62 63 27 2c  -5.69 "t1='abc',
39d0: 20 74 32 3d 27 41 5f 43 27 22 20 5c 0a 20 20 20   t2='A_C'" \.   
39e0: 20 20 20 22 74 31 20 4c 49 4b 45 20 74 32 20 45     "t1 LIKE t2 E
39f0: 53 43 41 50 45 20 27 5c 75 31 32 33 34 27 22 20  SCAPE '\u1234'" 
3a00: 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78  1.  test_expr ex
3a10: 70 72 2d 35 2e 37 30 20 22 74 31 3d 27 61 5f 63  pr-5.70 "t1='a_c
3a20: 27 2c 20 74 32 3d 27 41 5c 75 31 32 33 34 5f 43  ', t2='A\u1234_C
3a30: 27 22 20 5c 0a 20 20 20 20 20 20 22 74 31 20 4c  '" \.      "t1 L
3a40: 49 4b 45 20 74 32 20 45 53 43 41 50 45 20 27 5c  IKE t2 ESCAPE '\
3a50: 75 31 32 33 34 27 22 20 31 0a 20 20 74 65 73 74  u1234'" 1.  test
3a60: 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 37 31 20  _expr expr-5.71 
3a70: 22 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 41  "t1='abc', t2='A
3a80: 5c 75 31 32 33 34 5f 43 27 22 20 5c 0a 20 20 20  \u1234_C'" \.   
3a90: 20 20 20 20 22 74 31 20 4c 49 4b 45 20 74 32 20      "t1 LIKE t2 
3aa0: 45 53 43 41 50 45 20 27 5c 75 31 32 33 34 27 22  ESCAPE '\u1234'"
3ab0: 20 30 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65   0.  test_expr e
3ac0: 78 70 72 2d 35 2e 37 32 20 22 74 31 3d 27 61 5c  xpr-5.72 "t1='a\
3ad0: 75 31 32 33 34 58 63 27 2c 20 74 32 3d 27 41 5c  u1234Xc', t2='A\
3ae0: 75 31 32 33 34 5f 43 27 22 20 5c 0a 20 20 20 20  u1234_C'" \.    
3af0: 20 20 22 74 31 20 4c 49 4b 45 20 74 32 20 45 53    "t1 LIKE t2 ES
3b00: 43 41 50 45 20 27 5c 75 31 32 33 34 27 22 20 30  CAPE '\u1234'" 0
3b10: 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70  .  test_expr exp
3b20: 72 2d 35 2e 37 33 20 22 74 31 3d 27 61 62 63 64  r-5.73 "t1='abcd
3b30: 65 27 2c 20 74 32 3d 27 41 25 45 27 22 20 5c 0a  e', t2='A%E'" \.
3b40: 20 20 20 20 20 20 22 74 31 20 4c 49 4b 45 20 74        "t1 LIKE t
3b50: 32 20 45 53 43 41 50 45 20 27 5c 75 31 32 33 34  2 ESCAPE '\u1234
3b60: 27 22 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72  '" 1.  test_expr
3b70: 20 65 78 70 72 2d 35 2e 37 34 20 22 74 31 3d 27   expr-5.74 "t1='
3b80: 61 62 63 64 65 27 2c 20 74 32 3d 27 41 5c 75 31  abcde', t2='A\u1
3b90: 32 33 34 25 45 27 22 20 5c 0a 20 20 20 20 20 20  234%E'" \.      
3ba0: 22 74 31 20 4c 49 4b 45 20 74 32 20 45 53 43 41  "t1 LIKE t2 ESCA
3bb0: 50 45 20 27 5c 75 31 32 33 34 27 22 20 30 0a 20  PE '\u1234'" 0. 
3bc0: 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d   test_expr expr-
3bd0: 35 2e 37 35 20 22 74 31 3d 27 61 5c 75 31 32 33  5.75 "t1='a\u123
3be0: 34 63 64 65 27 2c 20 74 32 3d 27 41 5c 75 31 32  4cde', t2='A\u12
3bf0: 33 34 25 45 27 22 20 5c 0a 20 20 20 20 20 20 22  34%E'" \.      "
3c00: 74 31 20 4c 49 4b 45 20 74 32 20 45 53 43 41 50  t1 LIKE t2 ESCAP
3c10: 45 20 27 5c 75 31 32 33 34 27 22 20 30 0a 20 20  E '\u1234'" 0.  
3c20: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35  test_expr expr-5
3c30: 2e 37 36 20 22 74 31 3d 27 61 5c 75 31 32 33 34  .76 "t1='a\u1234
3c40: 63 64 65 27 2c 20 74 32 3d 27 41 5c 75 31 32 33  cde', t2='A\u123
3c50: 34 5c 75 31 32 33 34 25 45 27 22 20 5c 0a 20 20  4\u1234%E'" \.  
3c60: 20 20 20 20 22 74 31 20 4c 49 4b 45 20 74 32 20      "t1 LIKE t2 
3c70: 45 53 43 41 50 45 20 27 5c 75 31 32 33 34 27 22  ESCAPE '\u1234'"
3c80: 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65   1.  test_expr e
3c90: 78 70 72 2d 35 2e 37 37 20 22 74 31 3d 27 61 62  xpr-5.77 "t1='ab
3ca0: 63 5c 75 31 32 33 34 27 2c 20 74 32 3d 27 41 25  c\u1234', t2='A%
3cb0: 5c 75 31 32 33 34 5c 75 31 32 33 34 27 22 20 5c  \u1234\u1234'" \
3cc0: 0a 20 20 20 20 20 20 22 74 31 20 4c 49 4b 45 20  .      "t1 LIKE 
3cd0: 74 32 20 45 53 43 41 50 45 20 27 5c 75 31 32 33  t2 ESCAPE '\u123
3ce0: 34 27 22 20 31 0a 20 20 74 65 73 74 5f 65 78 70  4'" 1.  test_exp
3cf0: 72 20 65 78 70 72 2d 35 2e 37 38 20 22 74 31 3d  r expr-5.78 "t1=
3d00: 27 61 62 63 5f 27 2c 20 74 32 3d 27 41 25 5c 75  'abc_', t2='A%\u
3d10: 31 32 33 34 5f 27 22 20 5c 0a 20 20 20 20 20 20  1234_'" \.      
3d20: 22 74 31 20 4c 49 4b 45 20 74 32 20 45 53 43 41  "t1 LIKE t2 ESCA
3d30: 50 45 20 27 5c 75 31 32 33 34 27 22 20 31 0a 20  PE '\u1234'" 1. 
3d40: 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d   test_expr expr-
3d50: 35 2e 37 39 20 22 74 31 3d 27 61 62 63 5c 75 31  5.79 "t1='abc\u1
3d60: 32 33 34 27 2c 20 74 32 3d 27 41 25 5c 75 31 32  234', t2='A%\u12
3d70: 33 34 5f 27 22 20 5c 0a 20 20 20 20 20 20 22 74  34_'" \.      "t
3d80: 31 20 4c 49 4b 45 20 74 32 20 45 53 43 41 50 45  1 LIKE t2 ESCAPE
3d90: 20 27 5c 75 31 32 33 34 27 22 20 30 0a 7d 0a 0a   '\u1234'" 0.}..
3da0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
3db0: 2e 31 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32  .1 {t1='abc', t2
3dc0: 3d 27 78 79 7a 27 7d 20 7b 74 31 20 47 4c 4f 42  ='xyz'} {t1 GLOB
3dd0: 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72   t2} 0.test_expr
3de0: 20 65 78 70 72 2d 36 2e 32 20 7b 74 31 3d 27 61   expr-6.2 {t1='a
3df0: 62 63 27 2c 20 74 32 3d 27 41 42 43 27 7d 20 7b  bc', t2='ABC'} {
3e00: 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65  t1 GLOB t2} 0.te
3e10: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 33  st_expr expr-6.3
3e20: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27   {t1='abc', t2='
3e30: 41 3f 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  A?C'} {t1 GLOB t
3e40: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
3e50: 78 70 72 2d 36 2e 34 20 7b 74 31 3d 27 61 62 63  xpr-6.4 {t1='abc
3e60: 27 2c 20 74 32 3d 27 61 3f 63 27 7d 20 7b 74 31  ', t2='a?c'} {t1
3e70: 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74   GLOB t2} 1.test
3e80: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35 20 7b  _expr expr-6.5 {
3e90: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 62  t1='abc', t2='ab
3ea0: 63 3f 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  c?'} {t1 GLOB t2
3eb0: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
3ec0: 70 72 2d 36 2e 36 20 7b 74 31 3d 27 61 62 63 27  pr-6.6 {t1='abc'
3ed0: 2c 20 74 32 3d 27 41 2a 43 27 7d 20 7b 74 31 20  , t2='A*C'} {t1 
3ee0: 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f  GLOB t2} 0.test_
3ef0: 65 78 70 72 20 65 78 70 72 2d 36 2e 37 20 7b 74  expr expr-6.7 {t
3f00: 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 2a 63  1='abc', t2='a*c
3f10: 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '} {t1 GLOB t2} 
3f20: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
3f30: 2d 36 2e 38 20 7b 74 31 3d 27 61 62 78 79 7a 7a  -6.8 {t1='abxyzz
3f40: 79 63 27 2c 20 74 32 3d 27 61 2a 63 27 7d 20 7b  yc', t2='a*c'} {
3f50: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65  t1 GLOB t2} 1.te
3f60: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 39  st_expr expr-6.9
3f70: 20 7b 74 31 3d 27 61 62 78 79 7a 7a 79 27 2c 20   {t1='abxyzzy', 
3f80: 74 32 3d 27 61 2a 63 27 7d 20 7b 74 31 20 47 4c  t2='a*c'} {t1 GL
3f90: 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78  OB t2} 0.test_ex
3fa0: 70 72 20 65 78 70 72 2d 36 2e 31 30 20 7b 74 31  pr expr-6.10 {t1
3fb0: 3d 27 61 62 78 79 7a 7a 79 63 78 27 2c 20 74 32  ='abxyzzycx', t2
3fc0: 3d 27 61 2a 63 27 7d 20 7b 74 31 20 47 4c 4f 42  ='a*c'} {t1 GLOB
3fd0: 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72   t2} 0.test_expr
3fe0: 20 65 78 70 72 2d 36 2e 31 31 20 7b 74 31 3d 27   expr-6.11 {t1='
3ff0: 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20  abc', t2='xyz'} 
4000: 7b 74 31 20 4e 4f 54 20 47 4c 4f 42 20 74 32 7d  {t1 NOT GLOB t2}
4010: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
4020: 72 2d 36 2e 31 32 20 7b 74 31 3d 27 61 62 63 27  r-6.12 {t1='abc'
4030: 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31 20  , t2='abc'} {t1 
4040: 4e 4f 54 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74  NOT GLOB t2} 0.t
4050: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
4060: 31 33 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32  13 {t1='abc', t2
4070: 3d 27 61 5b 62 78 5d 63 27 7d 20 7b 74 31 20 47  ='a[bx]c'} {t1 G
4080: 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65  LOB t2} 1.test_e
4090: 78 70 72 20 65 78 70 72 2d 36 2e 31 34 20 7b 74  xpr expr-6.14 {t
40a0: 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 5b 63  1='abc', t2='a[c
40b0: 78 5d 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  x]c'} {t1 GLOB t
40c0: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
40d0: 78 70 72 2d 36 2e 31 35 20 7b 74 31 3d 27 61 62  xpr-6.15 {t1='ab
40e0: 63 27 2c 20 74 32 3d 27 61 5b 61 2d 64 5d 63 27  c', t2='a[a-d]c'
40f0: 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  } {t1 GLOB t2} 1
4100: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
4110: 36 2e 31 36 20 7b 74 31 3d 27 61 62 63 27 2c 20  6.16 {t1='abc', 
4120: 74 32 3d 27 61 5b 5e 61 2d 64 5d 63 27 7d 20 7b  t2='a[^a-d]c'} {
4130: 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65  t1 GLOB t2} 0.te
4140: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 31  st_expr expr-6.1
4150: 37 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d  7 {t1='abc', t2=
4160: 27 61 5b 41 2d 44 63 5d 63 27 7d 20 7b 74 31 20  'a[A-Dc]c'} {t1 
4170: 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f  GLOB t2} 0.test_
4180: 65 78 70 72 20 65 78 70 72 2d 36 2e 31 38 20 7b  expr expr-6.18 {
4190: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 5b  t1='abc', t2='a[
41a0: 5e 41 2d 44 63 5d 63 27 7d 20 7b 74 31 20 47 4c  ^A-Dc]c'} {t1 GL
41b0: 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78  OB t2} 1.test_ex
41c0: 70 72 20 65 78 70 72 2d 36 2e 31 39 20 7b 74 31  pr expr-6.19 {t1
41d0: 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 5b 5d 62  ='abc', t2='a[]b
41e0: 5d 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  ]c'} {t1 GLOB t2
41f0: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
4200: 70 72 2d 36 2e 32 30 20 7b 74 31 3d 27 61 62 63  pr-6.20 {t1='abc
4210: 27 2c 20 74 32 3d 27 61 5b 5e 5d 62 5d 63 27 7d  ', t2='a[^]b]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 32 31 61 20 7b 74 31 3d 27 61 62 63 64 65 66  .21a {t1='abcdef
4250: 67 27 2c 20 74 32 3d 27 61 2a 5b 64 65 5d 67 27  g', t2='a*[de]g'
4260: 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30  } {t1 GLOB t2} 0
4270: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
4280: 36 2e 32 31 62 20 7b 74 31 3d 27 61 62 63 64 65  6.21b {t1='abcde
4290: 66 67 27 2c 20 74 32 3d 27 61 2a 5b 64 66 5d 67  fg', t2='a*[df]g
42a0: 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '} {t1 GLOB t2} 
42b0: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
42c0: 2d 36 2e 32 31 63 20 7b 74 31 3d 27 61 62 63 64  -6.21c {t1='abcd
42d0: 65 66 67 27 2c 20 74 32 3d 27 61 2a 5b 64 2d 68  efg', t2='a*[d-h
42e0: 5d 67 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  ]g'} {t1 GLOB t2
42f0: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
4300: 70 72 2d 36 2e 32 31 64 20 7b 74 31 3d 27 61 62  pr-6.21d {t1='ab
4310: 63 64 65 66 67 27 2c 20 74 32 3d 27 61 2a 5b 62  cdefg', t2='a*[b
4320: 2d 65 5d 67 27 7d 20 7b 74 31 20 47 4c 4f 42 20  -e]g'} {t1 GLOB 
4330: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
4340: 65 78 70 72 2d 36 2e 32 32 61 20 7b 74 31 3d 27  expr-6.22a {t1='
4350: 61 62 63 64 65 66 67 27 2c 20 74 32 3d 27 61 2a  abcdefg', t2='a*
4360: 5b 5e 64 65 5d 67 27 7d 20 7b 74 31 20 47 4c 4f  [^de]g'} {t1 GLO
4370: 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  B t2} 1.test_exp
4380: 72 20 65 78 70 72 2d 36 2e 32 32 62 20 7b 74 31  r expr-6.22b {t1
4390: 3d 27 61 62 63 64 65 66 67 27 2c 20 74 32 3d 27  ='abcdefg', t2='
43a0: 61 2a 5b 5e 64 65 66 5d 67 27 7d 20 7b 74 31 20  a*[^def]g'} {t1 
43b0: 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f  GLOB t2} 0.test_
43c0: 65 78 70 72 20 65 78 70 72 2d 36 2e 32 33 20 7b  expr expr-6.23 {
43d0: 74 31 3d 27 61 62 63 64 65 66 67 27 2c 20 74 32  t1='abcdefg', t2
43e0: 3d 27 61 2a 3f 67 27 7d 20 7b 74 31 20 47 4c 4f  ='a*?g'} {t1 GLO
43f0: 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  B t2} 1.test_exp
4400: 72 20 65 78 70 72 2d 36 2e 32 34 20 7b 74 31 3d  r expr-6.24 {t1=
4410: 27 61 63 27 2c 20 74 32 3d 27 61 2a 63 27 7d 20  'ac', t2='a*c'} 
4420: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74  {t1 GLOB t2} 1.t
4430: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
4440: 32 35 20 7b 74 31 3d 27 61 63 27 2c 20 74 32 3d  25 {t1='ac', t2=
4450: 27 61 2a 3f 63 27 7d 20 7b 74 31 20 47 4c 4f 42  'a*?c'} {t1 GLOB
4460: 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72   t2} 0.test_expr
4470: 20 65 78 70 72 2d 36 2e 32 36 20 7b 74 31 3d 27   expr-6.26 {t1='
4480: 61 2a 63 27 2c 20 74 32 3d 27 61 5b 2a 5d 63 27  a*c', t2='a[*]c'
4490: 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  } {t1 GLOB t2} 1
44a0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
44b0: 36 2e 32 37 20 7b 74 31 3d 27 61 3f 63 27 2c 20  6.27 {t1='a?c', 
44c0: 74 32 3d 27 61 5b 3f 5d 63 27 7d 20 7b 74 31 20  t2='a[?]c'} {t1 
44d0: 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f  GLOB t2} 1.test_
44e0: 65 78 70 72 20 65 78 70 72 2d 36 2e 32 38 20 7b  expr expr-6.28 {
44f0: 74 31 3d 27 61 5b 63 27 2c 20 74 32 3d 27 61 5b  t1='a[c', t2='a[
4500: 5b 5d 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  []c'} {t1 GLOB t
4510: 32 7d 20 31 0a 0a 0a 23 20 54 68 65 73 65 20 74  2} 1...# These t
4520: 65 73 74 73 20 6f 6e 6c 79 20 77 6f 72 6b 20 6f  ests only work o
4530: 6e 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 54 43  n versions of TC
4540: 4c 20 74 68 61 74 20 73 75 70 70 6f 72 74 20 55  L that support U
4550: 6e 69 63 6f 64 65 0a 23 0a 69 66 20 7b 22 5c 75  nicode.#.if {"\u
4560: 31 32 33 34 22 21 3d 22 75 31 32 33 34 22 7d 20  1234"!="u1234"} 
4570: 7b 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78  {.  test_expr ex
4580: 70 72 2d 36 2e 32 36 20 22 74 31 3d 27 61 5c 75  pr-6.26 "t1='a\u
4590: 30 30 38 30 63 27 2c 20 74 32 3d 27 61 3f 63 27  0080c', t2='a?c'
45a0: 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  " {t1 GLOB t2} 1
45b0: 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70  .  test_expr exp
45c0: 72 2d 36 2e 32 37 20 22 74 31 3d 27 61 5c 75 30  r-6.27 "t1='a\u0
45d0: 37 66 66 63 27 2c 20 74 32 3d 27 61 3f 63 27 22  7ffc', t2='a?c'"
45e0: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a   {t1 GLOB t2} 1.
45f0: 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72    test_expr expr
4600: 2d 36 2e 32 38 20 22 74 31 3d 27 61 5c 75 30 38  -6.28 "t1='a\u08
4610: 30 30 63 27 2c 20 74 32 3d 27 61 3f 63 27 22 20  00c', t2='a?c'" 
4620: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20  {t1 GLOB t2} 1. 
4630: 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d   test_expr expr-
4640: 36 2e 32 39 20 22 74 31 3d 27 61 5c 75 66 66 66  6.29 "t1='a\ufff
4650: 66 63 27 2c 20 74 32 3d 27 61 3f 63 27 22 20 7b  fc', t2='a?c'" {
4660: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20  t1 GLOB t2} 1.  
4670: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
4680: 2e 33 30 20 22 74 31 3d 27 61 5c 75 31 32 33 34  .30 "t1='a\u1234
4690: 27 2c 20 74 32 3d 27 61 3f 27 22 20 7b 74 31 20  ', t2='a?'" {t1 
46a0: 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20 74 65 73  GLOB t2} 1.  tes
46b0: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 33 31  t_expr expr-6.31
46c0: 20 22 74 31 3d 27 61 5c 75 31 32 33 34 27 2c 20   "t1='a\u1234', 
46d0: 74 32 3d 27 61 3f 3f 27 22 20 7b 74 31 20 47 4c  t2='a??'" {t1 GL
46e0: 4f 42 20 74 32 7d 20 30 0a 20 20 74 65 73 74 5f  OB t2} 0.  test_
46f0: 65 78 70 72 20 65 78 70 72 2d 36 2e 33 32 20 22  expr expr-6.32 "
4700: 74 31 3d 27 61 78 5c 75 31 32 33 34 27 2c 20 74  t1='ax\u1234', t
4710: 32 3d 27 61 3f 5c 75 31 32 33 34 27 22 20 7b 74  2='a?\u1234'" {t
4720: 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20 74  1 GLOB t2} 1.  t
4730: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
4740: 33 33 20 22 74 31 3d 27 61 78 5c 75 31 32 33 34  33 "t1='ax\u1234
4750: 27 2c 20 74 32 3d 27 61 2a 5c 75 31 32 33 34 27  ', t2='a*\u1234'
4760: 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  " {t1 GLOB t2} 1
4770: 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70  .  test_expr exp
4780: 72 2d 36 2e 33 34 20 22 74 31 3d 27 61 78 5c 75  r-6.34 "t1='ax\u
4790: 31 32 33 34 79 5c 75 31 32 33 34 27 2c 20 74 32  1234y\u1234', t2
47a0: 3d 27 61 2a 5c 75 31 32 33 34 27 22 20 7b 74 31  ='a*\u1234'" {t1
47b0: 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20 74 65   GLOB t2} 1.  te
47c0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 33  st_expr expr-6.3
47d0: 35 20 22 74 31 3d 27 61 5c 75 31 32 33 34 62 27  5 "t1='a\u1234b'
47e0: 2c 20 74 32 3d 27 61 5c 5b 78 5c 75 31 32 33 34  , t2='a\[x\u1234
47f0: 79 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42 20  y\]b'" {t1 GLOB 
4800: 74 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70  t2} 1.  test_exp
4810: 72 20 65 78 70 72 2d 36 2e 33 36 20 22 74 31 3d  r expr-6.36 "t1=
4820: 27 61 5c 75 31 32 33 34 62 27 2c 20 74 32 3d 27  'a\u1234b', t2='
4830: 61 5c 5b 5c 75 31 32 33 33 2d 5c 75 31 32 33 35  a\[\u1233-\u1235
4840: 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42 20 74  \]b'" {t1 GLOB t
4850: 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72  2} 1.  test_expr
4860: 20 65 78 70 72 2d 36 2e 33 37 20 22 74 31 3d 27   expr-6.37 "t1='
4870: 61 5c 75 31 32 33 34 62 27 2c 20 74 32 3d 27 61  a\u1234b', t2='a
4880: 5c 5b 5c 75 31 32 33 34 2d 5c 75 31 32 34 66 5c  \[\u1234-\u124f\
4890: 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42 20 74 32  ]b'" {t1 GLOB t2
48a0: 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20  } 1.  test_expr 
48b0: 65 78 70 72 2d 36 2e 33 38 20 22 74 31 3d 27 61  expr-6.38 "t1='a
48c0: 5c 75 31 32 33 34 62 27 2c 20 74 32 3d 27 61 5c  \u1234b', t2='a\
48d0: 5b 5c 75 31 32 33 35 2d 5c 75 31 32 34 66 5c 5d  [\u1235-\u124f\]
48e0: 62 27 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d  b'" {t1 GLOB t2}
48f0: 20 30 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65   0.  test_expr e
4900: 78 70 72 2d 36 2e 33 39 20 22 74 31 3d 27 61 5c  xpr-6.39 "t1='a\
4910: 75 31 32 33 34 62 27 2c 20 74 32 3d 27 61 5c 5b  u1234b', t2='a\[
4920: 61 2d 5c 75 31 32 33 35 5c 5d 62 27 22 20 7b 74  a-\u1235\]b'" {t
4930: 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20 74  1 GLOB t2} 1.  t
4940: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
4950: 34 30 20 22 74 31 3d 27 61 5c 75 31 32 33 34 62  40 "t1='a\u1234b
4960: 27 2c 20 74 32 3d 27 61 5c 5b 61 2d 5c 75 31 32  ', t2='a\[a-\u12
4970: 33 34 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42  34\]b'" {t1 GLOB
4980: 20 74 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78   t2} 1.  test_ex
4990: 70 72 20 65 78 70 72 2d 36 2e 34 31 20 22 74 31  pr expr-6.41 "t1
49a0: 3d 27 61 5c 75 31 32 33 34 62 27 2c 20 74 32 3d  ='a\u1234b', t2=
49b0: 27 61 5c 5b 61 2d 5c 75 31 32 33 33 5c 5d 62 27  'a\[a-\u1233\]b'
49c0: 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30  " {t1 GLOB t2} 0
49d0: 0a 7d 0a 0a 74 65 73 74 5f 65 78 70 72 20 65 78  .}..test_expr ex
49e0: 70 72 2d 36 2e 35 31 20 7b 74 31 3d 27 41 42 43  pr-6.51 {t1='ABC
49f0: 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31  ', t2='xyz'} {t1
4a00: 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74   GLOB t2} 0.test
4a10: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35 32 20  _expr expr-6.52 
4a20: 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27 61  {t1='ABC', t2='a
4a30: 62 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  bc'} {t1 GLOB t2
4a40: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
4a50: 70 72 2d 36 2e 35 33 20 7b 74 31 3d 27 41 42 43  pr-6.53 {t1='ABC
4a60: 27 2c 20 74 32 3d 27 61 3f 63 27 7d 20 7b 74 31  ', t2='a?c'} {t1
4a70: 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74   GLOB t2} 0.test
4a80: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35 34 20  _expr expr-6.54 
4a90: 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27 41  {t1='ABC', t2='A
4aa0: 3f 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  ?C'} {t1 GLOB t2
4ab0: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
4ac0: 70 72 2d 36 2e 35 35 20 7b 74 31 3d 27 41 42 43  pr-6.55 {t1='ABC
4ad0: 27 2c 20 74 32 3d 27 61 62 63 3f 27 7d 20 7b 74  ', t2='abc?'} {t
4ae0: 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73  1 GLOB t2} 0.tes
4af0: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35 36  t_expr expr-6.56
4b00: 20 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27   {t1='ABC', t2='
4b10: 61 2a 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  a*c'} {t1 GLOB t
4b20: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
4b30: 78 70 72 2d 36 2e 35 37 20 7b 74 31 3d 27 41 42  xpr-6.57 {t1='AB
4b40: 43 27 2c 20 74 32 3d 27 41 2a 43 27 7d 20 7b 74  C', t2='A*C'} {t
4b50: 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73  1 GLOB t2} 1.tes
4b60: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35 38  t_expr expr-6.58
4b70: 20 7b 74 31 3d 27 41 42 78 79 7a 7a 79 43 27 2c   {t1='ABxyzzyC',
4b80: 20 74 32 3d 27 41 2a 43 27 7d 20 7b 74 31 20 47   t2='A*C'} {t1 G
4b90: 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65  LOB t2} 1.test_e
4ba0: 78 70 72 20 65 78 70 72 2d 36 2e 35 39 20 7b 74  xpr expr-6.59 {t
4bb0: 31 3d 27 41 42 78 79 7a 7a 79 27 2c 20 74 32 3d  1='ABxyzzy', t2=
4bc0: 27 41 2a 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20  'A*C'} {t1 GLOB 
4bd0: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
4be0: 65 78 70 72 2d 36 2e 36 30 20 7b 74 31 3d 27 41  expr-6.60 {t1='A
4bf0: 42 78 79 7a 7a 79 43 78 27 2c 20 74 32 3d 27 41  BxyzzyCx', t2='A
4c00: 2a 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  *C'} {t1 GLOB t2
4c10: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
4c20: 70 72 2d 36 2e 36 31 20 7b 74 31 3d 27 41 42 43  pr-6.61 {t1='ABC
4c30: 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31  ', t2='xyz'} {t1
4c40: 20 4e 4f 54 20 47 4c 4f 42 20 74 32 7d 20 31 0a   NOT GLOB t2} 1.
4c50: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
4c60: 2e 36 32 20 7b 74 31 3d 27 41 42 43 27 2c 20 74  .62 {t1='ABC', t
4c70: 32 3d 27 41 42 43 27 7d 20 7b 74 31 20 4e 4f 54  2='ABC'} {t1 NOT
4c80: 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74   GLOB t2} 0.test
4c90: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 36 33 20  _expr expr-6.63 
4ca0: 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27 41  {t1='ABC', t2='A
4cb0: 5b 42 78 5d 43 27 7d 20 7b 74 31 20 47 4c 4f 42  [Bx]C'} {t1 GLOB
4cc0: 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72   t2} 1.test_expr
4cd0: 20 65 78 70 72 2d 36 2e 36 34 20 7b 74 31 3d 27   expr-6.64 {t1='
4ce0: 41 42 43 27 2c 20 74 32 3d 27 41 5b 43 78 5d 43  ABC', t2='A[Cx]C
4cf0: 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '} {t1 GLOB t2} 
4d00: 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  0.test_expr expr
4d10: 2d 36 2e 36 35 20 7b 74 31 3d 27 41 42 43 27 2c  -6.65 {t1='ABC',
4d20: 20 74 32 3d 27 41 5b 41 2d 44 5d 43 27 7d 20 7b   t2='A[A-D]C'} {
4d30: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65  t1 GLOB t2} 1.te
4d40: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 36  st_expr expr-6.6
4d50: 36 20 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d  6 {t1='ABC', t2=
4d60: 27 41 5b 5e 41 2d 44 5d 43 27 7d 20 7b 74 31 20  'A[^A-D]C'} {t1 
4d70: 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f  GLOB t2} 0.test_
4d80: 65 78 70 72 20 65 78 70 72 2d 36 2e 36 37 20 7b  expr expr-6.67 {
4d90: 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27 41 5b  t1='ABC', t2='A[
4da0: 61 2d 64 43 5d 43 27 7d 20 7b 74 31 20 47 4c 4f  a-dC]C'} {t1 GLO
4db0: 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  B t2} 0.test_exp
4dc0: 72 20 65 78 70 72 2d 36 2e 36 38 20 7b 74 31 3d  r expr-6.68 {t1=
4dd0: 27 41 42 43 27 2c 20 74 32 3d 27 41 5b 5e 61 2d  'ABC', t2='A[^a-
4de0: 64 43 5d 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20  dC]C'} {t1 GLOB 
4df0: 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  t2} 1.test_expr 
4e00: 65 78 70 72 2d 36 2e 36 39 61 20 7b 74 31 3d 27  expr-6.69a {t1='
4e10: 41 42 43 27 2c 20 74 32 3d 27 41 5b 5d 42 5d 43  ABC', t2='A[]B]C
4e20: 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '} {t1 GLOB t2} 
4e30: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
4e40: 2d 36 2e 36 39 62 20 7b 74 31 3d 27 41 5d 43 27  -6.69b {t1='A]C'
4e50: 2c 20 74 32 3d 27 41 5b 5d 42 5d 43 27 7d 20 7b  , t2='A[]B]C'} {
4e60: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65  t1 GLOB t2} 1.te
4e70: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 37  st_expr expr-6.7
4e80: 30 61 20 7b 74 31 3d 27 41 42 43 27 2c 20 74 32  0a {t1='ABC', t2
4e90: 3d 27 41 5b 5e 5d 42 5d 43 27 7d 20 7b 74 31 20  ='A[^]B]C'} {t1 
4ea0: 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f  GLOB t2} 0.test_
4eb0: 65 78 70 72 20 65 78 70 72 2d 36 2e 37 30 62 20  expr expr-6.70b 
4ec0: 7b 74 31 3d 27 41 78 43 27 2c 20 74 32 3d 27 41  {t1='AxC', t2='A
4ed0: 5b 5e 5d 42 5d 43 27 7d 20 7b 74 31 20 47 4c 4f  [^]B]C'} {t1 GLO
4ee0: 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  B t2} 1.test_exp
4ef0: 72 20 65 78 70 72 2d 36 2e 37 30 63 20 7b 74 31  r expr-6.70c {t1
4f00: 3d 27 41 5d 43 27 2c 20 74 32 3d 27 41 5b 5e 5d  ='A]C', t2='A[^]
4f10: 42 5d 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  B]C'} {t1 GLOB t
4f20: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
4f30: 78 70 72 2d 36 2e 37 31 20 7b 74 31 3d 27 41 42  xpr-6.71 {t1='AB
4f40: 43 44 45 46 47 27 2c 20 74 32 3d 27 41 2a 5b 44  CDEFG', t2='A*[D
4f50: 45 5d 47 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  E]G'} {t1 GLOB t
4f60: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
4f70: 78 70 72 2d 36 2e 37 32 20 7b 74 31 3d 27 41 42  xpr-6.72 {t1='AB
4f80: 43 44 45 46 47 27 2c 20 74 32 3d 27 41 2a 5b 5e  CDEFG', t2='A*[^
4f90: 44 45 5d 47 27 7d 20 7b 74 31 20 47 4c 4f 42 20  DE]G'} {t1 GLOB 
4fa0: 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  t2} 1.test_expr 
4fb0: 65 78 70 72 2d 36 2e 37 33 20 7b 74 31 3d 27 41  expr-6.73 {t1='A
4fc0: 42 43 44 45 46 47 27 2c 20 74 32 3d 27 41 2a 3f  BCDEFG', t2='A*?
4fd0: 47 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d  G'} {t1 GLOB t2}
4fe0: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
4ff0: 72 2d 36 2e 37 34 20 7b 74 31 3d 27 41 43 27 2c  r-6.74 {t1='AC',
5000: 20 74 32 3d 27 41 2a 43 27 7d 20 7b 74 31 20 47   t2='A*C'} {t1 G
5010: 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65  LOB t2} 1.test_e
5020: 78 70 72 20 65 78 70 72 2d 36 2e 37 35 20 7b 74  xpr expr-6.75 {t
5030: 31 3d 27 41 43 27 2c 20 74 32 3d 27 41 2a 3f 43  1='AC', t2='A*?C
5040: 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '} {t1 GLOB t2} 
5050: 30 0a 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  0..test_expr exp
5060: 72 2d 36 2e 36 33 20 7b 74 31 3d 4e 55 4c 4c 2c  r-6.63 {t1=NULL,
5070: 20 74 32 3d 27 61 2a 3f 63 27 7d 20 7b 74 31 20   t2='a*?c'} {t1 
5080: 47 4c 4f 42 20 74 32 7d 20 7b 7b 7d 7d 0a 74 65  GLOB t2} {{}}.te
5090: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 36  st_expr expr-6.6
50a0: 34 20 7b 74 31 3d 27 61 63 27 2c 20 74 32 3d 4e  4 {t1='ac', t2=N
50b0: 55 4c 4c 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  ULL} {t1 GLOB t2
50c0: 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72  } {{}}.test_expr
50d0: 20 65 78 70 72 2d 36 2e 36 35 20 7b 74 31 3d 4e   expr-6.65 {t1=N
50e0: 55 4c 4c 2c 20 74 32 3d 27 61 2a 3f 63 27 7d 20  ULL, t2='a*?c'} 
50f0: 7b 74 31 20 4e 4f 54 20 47 4c 4f 42 20 74 32 7d  {t1 NOT GLOB t2}
5100: 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72 20   {{}}.test_expr 
5110: 65 78 70 72 2d 36 2e 36 36 20 7b 74 31 3d 27 61  expr-6.66 {t1='a
5120: 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d 20 7b 74 31  c', t2=NULL} {t1
5130: 20 4e 4f 54 20 47 4c 4f 42 20 74 32 7d 20 7b 7b   NOT GLOB t2} {{
5140: 7d 7d 0a 0a 74 65 73 74 5f 65 78 70 72 20 65 78  }}..test_expr ex
5150: 70 72 2d 63 61 73 65 2e 31 20 7b 69 31 3d 31 2c  pr-case.1 {i1=1,
5160: 20 69 32 3d 32 7d 20 5c 0a 09 7b 43 41 53 45 20   i2=2} \..{CASE 
5170: 57 48 45 4e 20 69 31 20 3d 20 69 32 20 54 48 45  WHEN i1 = i2 THE
5180: 4e 20 27 65 71 27 20 45 4c 53 45 20 27 6e 65 27  N 'eq' ELSE 'ne'
5190: 20 45 4e 44 7d 20 6e 65 0a 74 65 73 74 5f 65 78   END} ne.test_ex
51a0: 70 72 20 65 78 70 72 2d 63 61 73 65 2e 32 20 7b  pr expr-case.2 {
51b0: 69 31 3d 32 2c 20 69 32 3d 32 7d 20 5c 0a 09 7b  i1=2, i2=2} \..{
51c0: 43 41 53 45 20 57 48 45 4e 20 69 31 20 3d 20 69  CASE WHEN i1 = i
51d0: 32 20 54 48 45 4e 20 27 65 71 27 20 45 4c 53 45  2 THEN 'eq' ELSE
51e0: 20 27 6e 65 27 20 45 4e 44 7d 20 65 71 0a 74 65   'ne' END} eq.te
51f0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 63 61 73  st_expr expr-cas
5200: 65 2e 33 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32  e.3 {i1=NULL, i2
5210: 3d 32 7d 20 5c 0a 09 7b 43 41 53 45 20 57 48 45  =2} \..{CASE WHE
5220: 4e 20 69 31 20 3d 20 69 32 20 54 48 45 4e 20 27  N i1 = i2 THEN '
5230: 65 71 27 20 45 4c 53 45 20 27 6e 65 27 20 45 4e  eq' ELSE 'ne' EN
5240: 44 7d 20 6e 65 0a 74 65 73 74 5f 65 78 70 72 20  D} ne.test_expr 
5250: 65 78 70 72 2d 63 61 73 65 2e 34 20 7b 69 31 3d  expr-case.4 {i1=
5260: 32 2c 20 69 32 3d 4e 55 4c 4c 7d 20 5c 0a 09 7b  2, i2=NULL} \..{
5270: 43 41 53 45 20 57 48 45 4e 20 69 31 20 3d 20 69  CASE WHEN i1 = i
5280: 32 20 54 48 45 4e 20 27 65 71 27 20 45 4c 53 45  2 THEN 'eq' ELSE
5290: 20 27 6e 65 27 20 45 4e 44 7d 20 6e 65 0a 74 65   'ne' END} ne.te
52a0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 63 61 73  st_expr expr-cas
52b0: 65 2e 35 20 7b 69 31 3d 32 7d 20 5c 0a 09 7b 43  e.5 {i1=2} \..{C
52c0: 41 53 45 20 69 31 20 57 48 45 4e 20 31 20 54 48  ASE i1 WHEN 1 TH
52d0: 45 4e 20 27 6f 6e 65 27 20 57 48 45 4e 20 32 20  EN 'one' WHEN 2 
52e0: 54 48 45 4e 20 27 74 77 6f 27 20 45 4c 53 45 20  THEN 'two' ELSE 
52f0: 27 65 72 72 6f 72 27 20 45 4e 44 7d 20 74 77 6f  'error' END} two
5300: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
5310: 63 61 73 65 2e 36 20 7b 69 31 3d 31 7d 20 5c 0a  case.6 {i1=1} \.
5320: 09 7b 43 41 53 45 20 69 31 20 57 48 45 4e 20 31  .{CASE i1 WHEN 1
5330: 20 54 48 45 4e 20 27 6f 6e 65 27 20 57 48 45 4e   THEN 'one' WHEN
5340: 20 4e 55 4c 4c 20 54 48 45 4e 20 27 74 77 6f 27   NULL THEN 'two'
5350: 20 45 4c 53 45 20 27 65 72 72 6f 72 27 20 45 4e   ELSE 'error' EN
5360: 44 7d 20 6f 6e 65 0a 74 65 73 74 5f 65 78 70 72  D} one.test_expr
5370: 20 65 78 70 72 2d 63 61 73 65 2e 37 20 7b 69 31   expr-case.7 {i1
5380: 3d 32 7d 20 5c 0a 09 7b 43 41 53 45 20 69 31 20  =2} \..{CASE i1 
5390: 57 48 45 4e 20 31 20 54 48 45 4e 20 27 6f 6e 65  WHEN 1 THEN 'one
53a0: 27 20 57 48 45 4e 20 4e 55 4c 4c 20 54 48 45 4e  ' WHEN NULL THEN
53b0: 20 27 74 77 6f 27 20 45 4c 53 45 20 27 65 72 72   'two' ELSE 'err
53c0: 6f 72 27 20 45 4e 44 7d 20 65 72 72 6f 72 0a 74  or' END} error.t
53d0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 63 61  est_expr expr-ca
53e0: 73 65 2e 38 20 7b 69 31 3d 33 7d 20 5c 0a 09 7b  se.8 {i1=3} \..{
53f0: 43 41 53 45 20 69 31 20 57 48 45 4e 20 31 20 54  CASE i1 WHEN 1 T
5400: 48 45 4e 20 27 6f 6e 65 27 20 57 48 45 4e 20 4e  HEN 'one' WHEN N
5410: 55 4c 4c 20 54 48 45 4e 20 27 74 77 6f 27 20 45  ULL THEN 'two' E
5420: 4c 53 45 20 27 65 72 72 6f 72 27 20 45 4e 44 7d  LSE 'error' END}
5430: 20 65 72 72 6f 72 0a 74 65 73 74 5f 65 78 70 72   error.test_expr
5440: 20 65 78 70 72 2d 63 61 73 65 2e 39 20 7b 69 31   expr-case.9 {i1
5450: 3d 33 7d 20 5c 0a 09 7b 43 41 53 45 20 69 31 20  =3} \..{CASE i1 
5460: 57 48 45 4e 20 31 20 54 48 45 4e 20 27 6f 6e 65  WHEN 1 THEN 'one
5470: 27 20 57 48 45 4e 20 32 20 54 48 45 4e 20 27 74  ' WHEN 2 THEN 't
5480: 77 6f 27 20 45 4c 53 45 20 27 65 72 72 6f 72 27  wo' ELSE 'error'
5490: 20 45 4e 44 7d 20 65 72 72 6f 72 0a 74 65 73 74   END} error.test
54a0: 5f 65 78 70 72 20 65 78 70 72 2d 63 61 73 65 2e  _expr expr-case.
54b0: 31 30 20 7b 69 31 3d 33 7d 20 5c 0a 09 7b 43 41  10 {i1=3} \..{CA
54c0: 53 45 20 69 31 20 57 48 45 4e 20 31 20 54 48 45  SE i1 WHEN 1 THE
54d0: 4e 20 27 6f 6e 65 27 20 57 48 45 4e 20 32 20 54  N 'one' WHEN 2 T
54e0: 48 45 4e 20 27 74 77 6f 27 20 45 4e 44 7d 20 7b  HEN 'two' END} {
54f0: 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78  {}}.test_expr ex
5500: 70 72 2d 63 61 73 65 2e 31 31 20 7b 69 31 3d 6e  pr-case.11 {i1=n
5510: 75 6c 6c 7d 20 5c 0a 09 7b 43 41 53 45 20 69 31  ull} \..{CASE i1
5520: 20 57 48 45 4e 20 31 20 54 48 45 4e 20 27 6f 6e   WHEN 1 THEN 'on
5530: 65 27 20 57 48 45 4e 20 32 20 54 48 45 4e 20 27  e' WHEN 2 THEN '
5540: 74 77 6f 27 20 45 4c 53 45 20 33 20 45 4e 44 7d  two' ELSE 3 END}
5550: 20 33 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   3.test_expr exp
5560: 72 2d 63 61 73 65 2e 31 32 20 7b 69 31 3d 31 7d  r-case.12 {i1=1}
5570: 20 5c 0a 09 7b 43 41 53 45 20 69 31 20 57 48 45   \..{CASE i1 WHE
5580: 4e 20 31 20 54 48 45 4e 20 6e 75 6c 6c 20 57 48  N 1 THEN null WH
5590: 45 4e 20 32 20 54 48 45 4e 20 27 74 77 6f 27 20  EN 2 THEN 'two' 
55a0: 45 4c 53 45 20 33 20 45 4e 44 7d 20 7b 7b 7d 7d  ELSE 3 END} {{}}
55b0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
55c0: 63 61 73 65 2e 31 33 20 7b 69 31 3d 37 7d 20 5c  case.13 {i1=7} \
55d0: 0a 09 7b 20 43 41 53 45 20 57 48 45 4e 20 69 31  ..{ CASE WHEN i1
55e0: 20 3c 20 35 20 54 48 45 4e 20 27 6c 6f 77 27 20   < 5 THEN 'low' 
55f0: 0a 09 20 20 20 20 20 20 20 57 48 45 4e 20 69 31  ..       WHEN i1
5600: 20 3c 20 31 30 20 54 48 45 4e 20 27 6d 65 64 69   < 10 THEN 'medi
5610: 75 6d 27 20 0a 20 20 20 20 20 20 20 20 20 20 20  um' .           
5620: 20 20 20 20 57 48 45 4e 20 69 31 20 3c 20 31 35      WHEN i1 < 15
5630: 20 54 48 45 4e 20 27 68 69 67 68 27 20 45 4c 53   THEN 'high' ELS
5640: 45 20 27 65 72 72 6f 72 27 20 45 4e 44 7d 20 6d  E 'error' END} m
5650: 65 64 69 75 6d 0a 0a 0a 23 20 54 68 65 20 73 71  edium...# The sq
5660: 6c 69 74 65 45 78 70 72 49 66 46 61 6c 73 65 20  liteExprIfFalse 
5670: 61 6e 64 20 73 71 6c 69 74 65 45 78 70 72 49 66  and sqliteExprIf
5680: 54 72 75 65 20 72 6f 75 74 69 6e 65 73 20 61 72  True routines ar
5690: 65 20 6f 6e 6c 79 0a 23 20 65 78 65 63 75 74 65  e only.# execute
56a0: 64 20 61 73 20 70 61 72 74 20 6f 66 20 61 20 57  d as part of a W
56b0: 48 45 52 45 20 63 6c 61 75 73 65 2e 20 20 43 72  HERE clause.  Cr
56c0: 65 61 74 65 20 61 20 74 61 62 6c 65 20 73 75 69  eate a table sui
56d0: 74 61 62 6c 65 0a 23 20 66 6f 72 20 74 65 73 74  table.# for test
56e0: 69 6e 67 20 74 68 65 73 65 20 66 75 6e 63 74 69  ing these functi
56f0: 6f 6e 73 2e 0a 23 0a 65 78 65 63 73 71 6c 20 7b  ons..#.execsql {
5700: 44 52 4f 50 20 54 41 42 4c 45 20 74 65 73 74 31  DROP TABLE test1
5710: 7d 0a 65 78 65 63 73 71 6c 20 7b 43 52 45 41 54  }.execsql {CREAT
5720: 45 20 54 41 42 4c 45 20 74 65 73 74 31 28 61 20  E TABLE test1(a 
5730: 69 6e 74 2c 20 62 20 69 6e 74 29 3b 7d 0a 66 6f  int, b int);}.fo
5740: 72 20 7b 73 65 74 20 69 20 31 7d 20 7b 24 69 3c  r {set i 1} {$i<
5750: 3d 32 30 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0a  =20} {incr i} {.
5760: 20 20 65 78 65 63 73 71 6c 20 22 49 4e 53 45 52    execsql "INSER
5770: 54 20 49 4e 54 4f 20 74 65 73 74 31 20 56 41 4c  T INTO test1 VAL
5780: 55 45 53 28 24 69 2c 5b 65 78 70 72 20 7b 69 6e  UES($i,[expr {in
5790: 74 28 70 6f 77 28 32 2c 24 69 29 29 7d 5d 29 22  t(pow(2,$i))}])"
57a0: 0a 7d 0a 65 78 65 63 73 71 6c 20 22 49 4e 53 45  .}.execsql "INSE
57b0: 52 54 20 49 4e 54 4f 20 74 65 73 74 31 20 56 41  RT INTO test1 VA
57c0: 4c 55 45 53 28 4e 55 4c 4c 2c 30 29 22 0a 64 6f  LUES(NULL,0)".do
57d0: 5f 74 65 73 74 20 65 78 70 72 2d 37 2e 31 20 7b  _test expr-7.1 {
57e0: 0a 20 20 65 78 65 63 73 71 6c 20 7b 53 45 4c 45  .  execsql {SELE
57f0: 43 54 20 2a 20 46 52 4f 4d 20 74 65 73 74 31 20  CT * FROM test1 
5800: 4f 52 44 45 52 20 42 59 20 61 7d 0a 7d 20 7b 7b  ORDER BY a}.} {{
5810: 7d 20 30 20 31 20 32 20 32 20 34 20 33 20 38 20  } 0 1 2 2 4 3 8 
5820: 34 20 31 36 20 35 20 33 32 20 36 20 36 34 20 37  4 16 5 32 6 64 7
5830: 20 31 32 38 20 38 20 32 35 36 20 39 20 35 31 32   128 8 256 9 512
5840: 20 31 30 20 31 30 32 34 20 31 31 20 32 30 34 38   10 1024 11 2048
5850: 20 31 32 20 34 30 39 36 20 31 33 20 38 31 39 32   12 4096 13 8192
5860: 20 31 34 20 31 36 33 38 34 20 31 35 20 33 32 37   14 16384 15 327
5870: 36 38 20 31 36 20 36 35 35 33 36 20 31 37 20 31  68 16 65536 17 1
5880: 33 31 30 37 32 20 31 38 20 32 36 32 31 34 34 20  31072 18 262144 
5890: 31 39 20 35 32 34 32 38 38 20 32 30 20 31 30 34  19 524288 20 104
58a0: 38 35 37 36 7d 0a 0a 70 72 6f 63 20 74 65 73 74  8576}..proc test
58b0: 5f 65 78 70 72 32 20 7b 6e 61 6d 65 20 65 78 70  _expr2 {name exp
58c0: 72 20 72 65 73 75 6c 74 7d 20 7b 0a 20 20 64 6f  r result} {.  do
58d0: 5f 74 65 73 74 20 24 6e 61 6d 65 20 5b 66 6f 72  _test $name [for
58e0: 6d 61 74 20 7b 0a 20 20 20 20 65 78 65 63 73 71  mat {.    execsq
58f0: 6c 20 7b 53 45 4c 45 43 54 20 61 20 46 52 4f 4d  l {SELECT a FROM
5900: 20 74 65 73 74 31 20 57 48 45 52 45 20 25 73 20   test1 WHERE %s 
5910: 4f 52 44 45 52 20 42 59 20 61 7d 0a 20 20 7d 20  ORDER BY a}.  } 
5920: 24 65 78 70 72 5d 20 24 72 65 73 75 6c 74 0a 7d  $expr] $result.}
5930: 0a 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  ..test_expr2 exp
5940: 72 2d 37 2e 32 20 20 7b 61 3c 31 30 20 41 4e 44  r-7.2  {a<10 AND
5950: 20 61 3e 38 7d 20 20 20 20 20 20 20 20 20 20 20   a>8}           
5960: 20 20 20 20 20 20 20 7b 39 7d 0a 74 65 73 74 5f         {9}.test_
5970: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 33 20 20  expr2 expr-7.3  
5980: 7b 61 3c 3d 31 30 20 41 4e 44 20 61 3e 3d 38 7d  {a<=10 AND a>=8}
5990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
59a0: 7b 38 20 39 20 31 30 7d 0a 74 65 73 74 5f 65 78  {8 9 10}.test_ex
59b0: 70 72 32 20 65 78 70 72 2d 37 2e 34 20 20 7b 61  pr2 expr-7.4  {a
59c0: 3e 3d 38 20 41 4e 44 20 61 3c 3d 31 30 7d 20 20  >=8 AND a<=10}  
59d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 38                {8
59e0: 20 39 20 31 30 7d 0a 74 65 73 74 5f 65 78 70 72   9 10}.test_expr
59f0: 32 20 65 78 70 72 2d 37 2e 35 20 20 7b 61 3e 3d  2 expr-7.5  {a>=
5a00: 32 30 20 4f 52 20 61 3c 3d 31 7d 20 20 20 20 20  20 OR a<=1}     
5a10: 20 20 20 20 20 20 20 20 20 20 20 20 7b 31 20 32              {1 2
5a20: 30 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  0}.test_expr2 ex
5a30: 70 72 2d 37 2e 36 20 20 7b 62 21 3d 34 20 41 4e  pr-7.6  {b!=4 AN
5a40: 44 20 61 3c 3d 33 7d 20 20 20 20 20 20 20 20 20  D a<=3}         
5a50: 20 20 20 20 20 20 20 20 7b 31 20 33 7d 0a 74 65          {1 3}.te
5a60: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
5a70: 37 20 20 7b 62 3d 3d 38 20 4f 52 20 62 3d 3d 31  7  {b==8 OR b==1
5a80: 36 20 4f 52 20 62 3d 3d 33 32 7d 20 20 20 20 20  6 OR b==32}     
5a90: 20 20 20 7b 33 20 34 20 35 7d 0a 74 65 73 74 5f     {3 4 5}.test_
5aa0: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 38 20 20  expr2 expr-7.8  
5ab0: 7b 4e 4f 54 20 62 3c 3e 38 20 4f 52 20 62 3d 3d  {NOT b<>8 OR b==
5ac0: 31 30 32 34 7d 20 20 20 20 20 20 20 20 20 20 20  1024}           
5ad0: 7b 33 20 31 30 7d 0a 74 65 73 74 5f 65 78 70 72  {3 10}.test_expr
5ae0: 32 20 65 78 70 72 2d 37 2e 39 20 20 7b 62 20 4c  2 expr-7.9  {b L
5af0: 49 4b 45 20 27 31 30 25 27 7d 20 20 20 20 20 20  IKE '10%'}      
5b00: 20 20 20 20 20 20 20 20 20 20 20 20 7b 31 30 20              {10 
5b10: 32 30 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65  20}.test_expr2 e
5b20: 78 70 72 2d 37 2e 31 30 20 7b 62 20 4c 49 4b 45  xpr-7.10 {b LIKE
5b30: 20 27 5f 34 27 7d 20 20 20 20 20 20 20 20 20 20   '_4'}          
5b40: 20 20 20 20 20 20 20 20 20 7b 36 7d 0a 74 65 73           {6}.tes
5b50: 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 31  t_expr2 expr-7.1
5b60: 31 20 7b 61 20 47 4c 4f 42 20 27 31 3f 27 7d 20  1 {a GLOB '1?'} 
5b70: 20 20 20 20 20 20 20 20 20 20 20 7b 31 30 20 31             {10 1
5b80: 31 20 31 32 20 31 33 20 31 34 20 31 35 20 31 36  1 12 13 14 15 16
5b90: 20 31 37 20 31 38 20 31 39 7d 0a 74 65 73 74 5f   17 18 19}.test_
5ba0: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 31 32 20  expr2 expr-7.12 
5bb0: 7b 62 20 47 4c 4f 42 20 27 31 2a 34 27 7d 20 20  {b GLOB '1*4'}  
5bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5bd0: 7b 31 30 20 31 34 7d 0a 74 65 73 74 5f 65 78 70  {10 14}.test_exp
5be0: 72 32 20 65 78 70 72 2d 37 2e 31 33 20 7b 62 20  r2 expr-7.13 {b 
5bf0: 47 4c 4f 42 20 27 2a 31 5b 34 35 36 5d 27 7d 20  GLOB '*1[456]'} 
5c00: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 34 7d               {4}
5c10: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
5c20: 2d 37 2e 31 34 20 7b 61 20 49 53 4e 55 4c 4c 7d  -7.14 {a ISNULL}
5c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5c40: 20 20 20 20 20 20 7b 7b 7d 7d 0a 74 65 73 74 5f        {{}}.test_
5c50: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 31 35 20  expr2 expr-7.15 
5c60: 7b 61 20 4e 4f 54 4e 55 4c 4c 20 41 4e 44 20 61  {a NOTNULL AND a
5c70: 3c 33 7d 20 20 20 20 20 20 20 20 20 20 20 20 20  <3}             
5c80: 7b 31 20 32 7d 0a 74 65 73 74 5f 65 78 70 72 32  {1 2}.test_expr2
5c90: 20 65 78 70 72 2d 37 2e 31 36 20 7b 61 20 41 4e   expr-7.16 {a AN
5ca0: 44 20 61 3c 33 7d 20 20 20 20 20 20 20 20 20 20  D a<3}          
5cb0: 20 20 20 20 20 20 20 20 20 20 20 7b 31 20 32 7d             {1 2}
5cc0: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
5cd0: 2d 37 2e 31 37 20 7b 4e 4f 54 20 61 7d 20 20 20  -7.17 {NOT a}   
5ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5cf0: 20 20 20 20 20 20 7b 7d 0a 74 65 73 74 5f 65 78        {}.test_ex
5d00: 70 72 32 20 65 78 70 72 2d 37 2e 31 38 20 7b 61  pr2 expr-7.18 {a
5d10: 3d 3d 31 31 20 4f 52 20 28 62 3e 31 30 30 30 20  ==11 OR (b>1000 
5d20: 41 4e 44 20 62 3c 32 30 30 30 29 7d 20 20 7b 31  AND b<2000)}  {1
5d30: 30 20 31 31 7d 0a 74 65 73 74 5f 65 78 70 72 32  0 11}.test_expr2
5d40: 20 65 78 70 72 2d 37 2e 31 39 20 7b 61 3c 3d 31   expr-7.19 {a<=1
5d50: 20 4f 52 20 61 3e 3d 32 30 7d 20 20 20 20 20 20   OR a>=20}      
5d60: 20 20 20 20 20 20 20 20 20 20 20 7b 31 20 32 30             {1 20
5d70: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
5d80: 72 2d 37 2e 32 30 20 7b 61 3c 31 20 4f 52 20 61  r-7.20 {a<1 OR a
5d90: 3e 32 30 7d 20 20 20 20 20 20 20 20 20 20 20 20  >20}            
5da0: 20 20 20 20 20 20 20 7b 7d 0a 74 65 73 74 5f 65         {}.test_e
5db0: 78 70 72 32 20 65 78 70 72 2d 37 2e 32 31 20 7b  xpr2 expr-7.21 {
5dc0: 61 3e 31 39 20 4f 52 20 61 3c 31 7d 20 20 20 20  a>19 OR a<1}    
5dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
5de0: 32 30 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65  20}.test_expr2 e
5df0: 78 70 72 2d 37 2e 32 32 20 7b 61 21 3d 31 20 4f  xpr-7.22 {a!=1 O
5e00: 52 20 61 3d 31 30 30 7d 20 5c 0a 20 20 20 20 20  R a=100} \.     
5e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5e20: 20 20 20 20 7b 32 20 33 20 34 20 35 20 36 20 37      {2 3 4 5 6 7
5e30: 20 38 20 39 20 31 30 20 31 31 20 31 32 20 31 33   8 9 10 11 12 13
5e40: 20 31 34 20 31 35 20 31 36 20 31 37 20 31 38 20   14 15 16 17 18 
5e50: 31 39 20 32 30 7d 0a 74 65 73 74 5f 65 78 70 72  19 20}.test_expr
5e60: 32 20 65 78 70 72 2d 37 2e 32 33 20 7b 28 61 20  2 expr-7.23 {(a 
5e70: 6e 6f 74 6e 75 6c 6c 20 41 4e 44 20 61 3c 34 29  notnull AND a<4)
5e80: 20 4f 52 20 61 3d 3d 38 7d 20 20 20 7b 31 20 32   OR a==8}   {1 2
5e90: 20 33 20 38 7d 0a 74 65 73 74 5f 65 78 70 72 32   3 8}.test_expr2
5ea0: 20 65 78 70 72 2d 37 2e 32 34 20 7b 61 20 4c 49   expr-7.24 {a LI
5eb0: 4b 45 20 27 32 5f 27 20 4f 52 20 61 3d 3d 38 7d  KE '2_' OR a==8}
5ec0: 20 20 20 20 20 20 20 20 20 20 20 7b 38 20 32 30             {8 20
5ed0: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
5ee0: 72 2d 37 2e 32 35 20 7b 61 20 47 4c 4f 42 20 27  r-7.25 {a GLOB '
5ef0: 32 3f 27 20 4f 52 20 61 3d 3d 38 7d 20 20 20 20  2?' OR a==8}    
5f00: 20 20 20 20 20 20 20 7b 38 20 32 30 7d 0a 74 65         {8 20}.te
5f10: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
5f20: 32 36 20 7b 61 20 69 73 6e 75 6c 6c 20 4f 52 20  26 {a isnull OR 
5f30: 61 3d 38 7d 20 20 20 20 20 20 20 20 20 20 20 20  a=8}            
5f40: 20 20 20 7b 7b 7d 20 38 7d 0a 74 65 73 74 5f 65     {{} 8}.test_e
5f50: 78 70 72 32 20 65 78 70 72 2d 37 2e 32 37 20 7b  xpr2 expr-7.27 {
5f60: 61 20 6e 6f 74 6e 75 6c 6c 20 4f 52 20 61 3d 38  a notnull OR a=8
5f70: 7d 20 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20  } \.            
5f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 31                {1
5f90: 20 32 20 33 20 34 20 35 20 36 20 37 20 38 20 39   2 3 4 5 6 7 8 9
5fa0: 20 31 30 20 31 31 20 31 32 20 31 33 20 31 34 20   10 11 12 13 14 
5fb0: 31 35 20 31 36 20 31 37 20 31 38 20 31 39 20 32  15 16 17 18 19 2
5fc0: 30 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  0}.test_expr2 ex
5fd0: 70 72 2d 37 2e 32 38 20 7b 61 3c 30 20 4f 52 20  pr-7.28 {a<0 OR 
5fe0: 62 3d 30 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65  b=0} {{}}.test_e
5ff0: 78 70 72 32 20 65 78 70 72 2d 37 2e 32 39 20 7b  xpr2 expr-7.29 {
6000: 62 3d 30 20 4f 52 20 61 3c 30 7d 20 7b 7b 7d 7d  b=0 OR a<0} {{}}
6010: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
6020: 2d 37 2e 33 30 20 7b 61 3c 30 20 41 4e 44 20 62  -7.30 {a<0 AND b
6030: 3d 30 7d 20 7b 7d 0a 74 65 73 74 5f 65 78 70 72  =0} {}.test_expr
6040: 32 20 65 78 70 72 2d 37 2e 33 31 20 7b 62 3d 30  2 expr-7.31 {b=0
6050: 20 41 4e 44 20 61 3c 30 7d 20 7b 7d 0a 74 65 73   AND a<0} {}.tes
6060: 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 33  t_expr2 expr-7.3
6070: 32 20 7b 61 20 49 53 20 4e 55 4c 4c 20 41 4e 44  2 {a IS NULL AND
6080: 20 28 61 3c 30 20 4f 52 20 62 3d 30 29 7d 20 7b   (a<0 OR b=0)} {
6090: 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65  {}}.test_expr2 e
60a0: 78 70 72 2d 37 2e 33 33 20 7b 61 20 49 53 20 4e  xpr-7.33 {a IS N
60b0: 55 4c 4c 20 41 4e 44 20 28 62 3d 30 20 4f 52 20  ULL AND (b=0 OR 
60c0: 61 3c 30 29 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f  a<0)} {{}}.test_
60d0: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 33 34 20  expr2 expr-7.34 
60e0: 7b 61 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20 28  {a IS NULL AND (
60f0: 61 3c 30 20 41 4e 44 20 62 3d 30 29 7d 20 7b 7d  a<0 AND b=0)} {}
6100: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
6110: 2d 37 2e 33 35 20 7b 61 20 49 53 20 4e 55 4c 4c  -7.35 {a IS NULL
6120: 20 41 4e 44 20 28 62 3d 30 20 41 4e 44 20 61 3c   AND (b=0 AND a<
6130: 30 29 7d 20 7b 7d 0a 74 65 73 74 5f 65 78 70 72  0)} {}.test_expr
6140: 32 20 65 78 70 72 2d 37 2e 33 32 20 7b 28 61 3c  2 expr-7.32 {(a<
6150: 30 20 4f 52 20 62 3d 30 29 20 41 4e 44 20 61 20  0 OR b=0) AND a 
6160: 49 53 20 4e 55 4c 4c 7d 20 7b 7b 7d 7d 0a 74 65  IS NULL} {{}}.te
6170: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
6180: 33 33 20 7b 28 62 3d 30 20 4f 52 20 61 3c 30 29  33 {(b=0 OR a<0)
6190: 20 41 4e 44 20 61 20 49 53 20 4e 55 4c 4c 7d 20   AND a IS NULL} 
61a0: 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72 32 20  {{}}.test_expr2 
61b0: 65 78 70 72 2d 37 2e 33 34 20 7b 28 61 3c 30 20  expr-7.34 {(a<0 
61c0: 41 4e 44 20 62 3d 30 29 20 41 4e 44 20 61 20 49  AND b=0) AND a I
61d0: 53 20 4e 55 4c 4c 7d 20 7b 7d 0a 74 65 73 74 5f  S NULL} {}.test_
61e0: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 33 35 20  expr2 expr-7.35 
61f0: 7b 28 62 3d 30 20 41 4e 44 20 61 3c 30 29 20 41  {(b=0 AND a<0) A
6200: 4e 44 20 61 20 49 53 20 4e 55 4c 4c 7d 20 7b 7d  ND a IS NULL} {}
6210: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
6220: 2d 37 2e 33 36 20 7b 61 3c 32 20 4f 52 20 28 61  -7.36 {a<2 OR (a
6230: 3c 30 20 4f 52 20 62 3d 30 29 7d 20 7b 7b 7d 20  <0 OR b=0)} {{} 
6240: 31 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  1}.test_expr2 ex
6250: 70 72 2d 37 2e 33 37 20 7b 61 3c 32 20 4f 52 20  pr-7.37 {a<2 OR 
6260: 28 62 3d 30 20 4f 52 20 61 3c 30 29 7d 20 7b 7b  (b=0 OR a<0)} {{
6270: 7d 20 31 7d 0a 74 65 73 74 5f 65 78 70 72 32 20  } 1}.test_expr2 
6280: 65 78 70 72 2d 37 2e 33 38 20 7b 61 3c 32 20 4f  expr-7.38 {a<2 O
6290: 52 20 28 61 3c 30 20 41 4e 44 20 62 3d 30 29 7d  R (a<0 AND b=0)}
62a0: 20 7b 31 7d 0a 74 65 73 74 5f 65 78 70 72 32 20   {1}.test_expr2 
62b0: 65 78 70 72 2d 37 2e 33 39 20 7b 61 3c 32 20 4f  expr-7.39 {a<2 O
62c0: 52 20 28 62 3d 30 20 41 4e 44 20 61 3c 30 29 7d  R (b=0 AND a<0)}
62d0: 20 7b 31 7d 0a 74 65 73 74 5f 65 78 70 72 32 20   {1}.test_expr2 
62e0: 65 78 70 72 2d 37 2e 34 30 20 7b 28 28 61 3c 32  expr-7.40 {((a<2
62f0: 20 4f 52 20 61 20 49 53 20 4e 55 4c 4c 29 20 41   OR a IS NULL) A
6300: 4e 44 20 62 3c 33 29 20 4f 52 20 62 3e 31 65 31  ND b<3) OR b>1e1
6310: 30 7d 20 7b 7b 7d 20 31 7d 0a 74 65 73 74 5f 65  0} {{} 1}.test_e
6320: 78 70 72 32 20 65 78 70 72 2d 37 2e 34 31 20 7b  xpr2 expr-7.41 {
6330: 61 20 42 45 54 57 45 45 4e 20 2d 31 20 41 4e 44  a BETWEEN -1 AND
6340: 20 31 7d 20 7b 31 7d 0a 74 65 73 74 5f 65 78 70   1} {1}.test_exp
6350: 72 32 20 65 78 70 72 2d 37 2e 34 32 20 7b 61 20  r2 expr-7.42 {a 
6360: 4e 4f 54 20 42 45 54 57 45 45 4e 20 32 20 41 4e  NOT BETWEEN 2 AN
6370: 44 20 31 30 30 7d 20 7b 31 7d 0a 74 65 73 74 5f  D 100} {1}.test_
6380: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 34 33 20  expr2 expr-7.43 
6390: 7b 28 62 2b 31 32 33 34 29 7c 7c 27 74 68 69 73  {(b+1234)||'this
63a0: 20 69 73 20 61 20 73 74 72 69 6e 67 20 74 68 61   is a string tha
63b0: 74 20 69 73 20 61 74 20 6c 65 61 73 74 20 33 32  t is at least 32
63c0: 20 63 68 61 72 61 63 74 65 72 73 20 6c 6f 6e 67   characters long
63d0: 27 20 42 45 54 57 45 45 4e 20 31 20 41 4e 44 20  ' BETWEEN 1 AND 
63e0: 32 7d 20 7b 7d 0a 74 65 73 74 5f 65 78 70 72 32  2} {}.test_expr2
63f0: 20 65 78 70 72 2d 37 2e 34 34 20 7b 31 32 33 7c   expr-7.44 {123|
6400: 7c 27 78 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d  |'xabcdefghijklm
6410: 6e 6f 70 71 72 73 74 75 76 77 79 78 7a 30 31 32  nopqrstuvwyxz012
6420: 33 34 35 36 37 38 39 30 27 7c 7c 61 20 42 45 54  34567890'||a BET
6430: 57 45 45 4e 20 27 31 32 33 61 27 20 41 4e 44 20  WEEN '123a' AND 
6440: 27 31 32 33 62 27 7d 20 7b 7d 0a 74 65 73 74 5f  '123b'} {}.test_
6450: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 34 35 20  expr2 expr-7.45 
6460: 7b 28 28 31 32 33 7c 7c 27 78 61 62 63 64 65 66  {((123||'xabcdef
6470: 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76  ghijklmnopqrstuv
6480: 77 79 78 7a 30 31 32 33 34 35 36 37 38 39 30 27  wyxz01234567890'
6490: 7c 7c 61 29 20 42 45 54 57 45 45 4e 20 27 31 32  ||a) BETWEEN '12
64a0: 33 61 27 20 41 4e 44 20 27 31 32 33 62 27 29 3c  3a' AND '123b')<
64b0: 30 7d 20 7b 7d 0a 74 65 73 74 5f 65 78 70 72 32  0} {}.test_expr2
64c0: 20 65 78 70 72 2d 37 2e 34 36 20 7b 28 28 31 32   expr-7.46 {((12
64d0: 33 7c 7c 27 78 61 62 63 64 65 66 67 68 69 6a 6b  3||'xabcdefghijk
64e0: 6c 6d 6e 6f 70 71 72 73 74 75 76 77 79 78 7a 30  lmnopqrstuvwyxz0
64f0: 31 32 33 34 35 36 37 38 39 30 27 7c 7c 61 29 20  1234567890'||a) 
6500: 42 45 54 57 45 45 4e 20 27 31 32 33 61 27 20 41  BETWEEN '123a' A
6510: 4e 44 20 27 31 32 33 7a 27 29 3e 30 7d 20 7b 31  ND '123z')>0} {1
6520: 20 32 20 33 20 34 20 35 20 36 20 37 20 38 20 39   2 3 4 5 6 7 8 9
6530: 20 31 30 20 31 31 20 31 32 20 31 33 20 31 34 20   10 11 12 13 14 
6540: 31 35 20 31 36 20 31 37 20 31 38 20 31 39 20 32  15 16 17 18 19 2
6550: 30 7d 0a 0a 74 65 73 74 5f 65 78 70 72 32 20 65  0}..test_expr2 e
6560: 78 70 72 2d 37 2e 35 30 20 7b 28 28 61 20 62 65  xpr-7.50 {((a be
6570: 74 77 65 65 6e 20 31 20 61 6e 64 20 32 20 4f 52  tween 1 and 2 OR
6580: 20 30 29 20 41 4e 44 20 31 29 20 4f 52 20 30 7d   0) AND 1) OR 0}
6590: 20 7b 31 20 32 7d 0a 74 65 73 74 5f 65 78 70 72   {1 2}.test_expr
65a0: 32 20 65 78 70 72 2d 37 2e 35 31 20 7b 28 28 61  2 expr-7.51 {((a
65b0: 20 6e 6f 74 20 62 65 74 77 65 65 6e 20 33 20 61   not between 3 a
65c0: 6e 64 20 31 30 30 20 4f 52 20 30 29 20 41 4e 44  nd 100 OR 0) AND
65d0: 20 31 29 20 4f 52 20 30 7d 20 7b 31 20 32 7d 0a   1) OR 0} {1 2}.
65e0: 0a 69 66 63 61 70 61 62 6c 65 20 73 75 62 71 75  .ifcapable subqu
65f0: 65 72 79 20 7b 0a 20 20 74 65 73 74 5f 65 78 70  ery {.  test_exp
6600: 72 32 20 65 78 70 72 2d 37 2e 35 32 20 7b 28 28  r2 expr-7.52 {((
6610: 61 20 69 6e 20 28 31 2c 32 29 20 4f 52 20 30 29  a in (1,2) OR 0)
6620: 20 41 4e 44 20 31 29 20 4f 52 20 30 7d 20 7b 31   AND 1) OR 0} {1
6630: 20 32 7d 0a 20 20 74 65 73 74 5f 65 78 70 72 32   2}.  test_expr2
6640: 20 65 78 70 72 2d 37 2e 35 33 20 5c 0a 20 20 20   expr-7.53 \.   
6650: 20 20 20 7b 28 28 61 20 6e 6f 74 20 69 6e 20 28     {((a not in (
6660: 33 2c 34 2c 35 2c 36 2c 37 2c 38 2c 39 2c 31 30  3,4,5,6,7,8,9,10
6670: 29 20 4f 52 20 30 29 20 41 4e 44 20 61 3c 31 31  ) OR 0) AND a<11
6680: 29 20 4f 52 20 30 7d 20 7b 31 20 32 7d 0a 7d 0a  ) OR 0} {1 2}.}.
6690: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
66a0: 37 2e 35 34 20 7b 28 28 61 3e 30 20 4f 52 20 30  7.54 {((a>0 OR 0
66b0: 29 20 41 4e 44 20 61 3c 33 29 20 4f 52 20 30 7d  ) AND a<3) OR 0}
66c0: 20 7b 31 20 32 7d 0a 69 66 63 61 70 61 62 6c 65   {1 2}.ifcapable
66d0: 20 73 75 62 71 75 65 72 79 20 7b 0a 20 20 74 65   subquery {.  te
66e0: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
66f0: 35 35 20 7b 28 28 61 20 69 6e 20 28 31 2c 32 29  55 {((a in (1,2)
6700: 20 4f 52 20 30 29 20 49 53 20 4e 55 4c 4c 20 41   OR 0) IS NULL A
6710: 4e 44 20 31 29 20 4f 52 20 30 7d 20 7b 7b 7d 7d  ND 1) OR 0} {{}}
6720: 0a 20 20 74 65 73 74 5f 65 78 70 72 32 20 65 78  .  test_expr2 ex
6730: 70 72 2d 37 2e 35 36 20 5c 0a 20 20 20 20 20 20  pr-7.56 \.      
6740: 7b 28 28 61 20 6e 6f 74 20 69 6e 20 28 33 2c 34  {((a not in (3,4
6750: 2c 35 2c 36 2c 37 2c 38 2c 39 2c 31 30 29 20 49  ,5,6,7,8,9,10) I
6760: 53 20 4e 55 4c 4c 20 4f 52 20 30 29 20 41 4e 44  S NULL OR 0) AND
6770: 20 31 29 20 4f 52 20 30 7d 20 7b 7b 7d 7d 0a 7d   1) OR 0} {{}}.}
6780: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
6790: 2d 37 2e 35 37 20 7b 28 28 61 3e 30 20 49 53 20  -7.57 {((a>0 IS 
67a0: 4e 55 4c 4c 20 4f 52 20 30 29 20 41 4e 44 20 31  NULL OR 0) AND 1
67b0: 29 20 4f 52 20 30 7d 20 7b 7b 7d 7d 0a 0a 74 65  ) OR 0} {{}}..te
67c0: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
67d0: 35 38 20 20 7b 28 61 7c 7c 27 27 29 3c 3d 27 31  58  {(a||'')<='1
67e0: 27 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20  '}              
67f0: 20 20 20 20 7b 31 7d 0a 0a 74 65 73 74 5f 65 78      {1}..test_ex
6800: 70 72 32 20 65 78 70 72 2d 37 2e 35 39 20 7b 4c  pr2 expr-7.59 {L
6810: 49 4b 45 28 27 31 30 25 27 2c 62 29 7d 20 20 20  IKE('10%',b)}   
6820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
6830: 31 30 20 32 30 7d 0a 74 65 73 74 5f 65 78 70 72  10 20}.test_expr
6840: 32 20 65 78 70 72 2d 37 2e 36 30 20 7b 4c 49 4b  2 expr-7.60 {LIK
6850: 45 28 27 5f 34 27 2c 62 29 7d 20 20 20 20 20 20  E('_4',b)}      
6860: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 36 7d               {6}
6870: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
6880: 2d 37 2e 36 31 20 7b 47 4c 4f 42 28 27 31 3f 27  -7.61 {GLOB('1?'
6890: 2c 61 29 7d 20 20 20 20 20 20 20 20 20 20 20 20  ,a)}            
68a0: 7b 31 30 20 31 31 20 31 32 20 31 33 20 31 34 20  {10 11 12 13 14 
68b0: 31 35 20 31 36 20 31 37 20 31 38 20 31 39 7d 0a  15 16 17 18 19}.
68c0: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
68d0: 37 2e 36 32 20 7b 47 4c 4f 42 28 27 31 2a 34 27  7.62 {GLOB('1*4'
68e0: 2c 62 29 7d 20 20 20 20 20 20 20 20 20 20 20 20  ,b)}            
68f0: 20 20 20 20 20 20 7b 31 30 20 31 34 7d 0a 74 65        {10 14}.te
6900: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
6910: 36 33 20 7b 47 4c 4f 42 28 27 2a 31 5b 34 35 36  63 {GLOB('*1[456
6920: 5d 27 2c 62 29 7d 20 20 20 20 20 20 20 20 20 20  ]',b)}          
6930: 20 20 20 20 7b 34 7d 0a 0a 23 20 54 65 73 74 20      {4}..# Test 
6940: 74 68 65 20 43 55 52 52 45 4e 54 5f 54 49 4d 45  the CURRENT_TIME
6950: 2c 20 43 55 52 52 45 4e 54 5f 44 41 54 45 2c 20  , CURRENT_DATE, 
6960: 61 6e 64 20 43 55 52 52 45 4e 54 5f 54 49 4d 45  and CURRENT_TIME
6970: 53 54 41 4d 50 20 65 78 70 72 65 73 73 69 6f 6e  STAMP expression
6980: 73 2e 0a 23 0a 73 65 74 20 73 71 6c 69 74 65 5f  s..#.set sqlite_
6990: 63 75 72 72 65 6e 74 5f 74 69 6d 65 20 5b 63 6c  current_time [cl
69a0: 6f 63 6b 20 73 65 63 6f 6e 64 73 5d 0a 73 65 74  ock seconds].set
69b0: 20 64 61 74 65 20 5b 63 6c 6f 63 6b 20 66 6f 72   date [clock for
69c0: 6d 61 74 20 24 73 71 6c 69 74 65 5f 63 75 72 72  mat $sqlite_curr
69d0: 65 6e 74 5f 74 69 6d 65 20 2d 66 6f 72 6d 61 74  ent_time -format
69e0: 20 25 59 2d 25 6d 2d 25 64 20 2d 67 6d 74 20 31   %Y-%m-%d -gmt 1
69f0: 5d 0a 73 65 74 20 74 69 6d 65 20 5b 63 6c 6f 63  ].set time [cloc
6a00: 6b 20 66 6f 72 6d 61 74 20 24 73 71 6c 69 74 65  k format $sqlite
6a10: 5f 63 75 72 72 65 6e 74 5f 74 69 6d 65 20 2d 66  _current_time -f
6a20: 6f 72 6d 61 74 20 25 48 3a 25 4d 3a 25 53 20 2d  ormat %H:%M:%S -
6a30: 67 6d 74 20 31 5d 0a 64 6f 5f 74 65 73 74 20 65  gmt 1].do_test e
6a40: 78 70 72 2d 38 2e 31 20 7b 0a 20 20 65 78 65 63  xpr-8.1 {.  exec
6a50: 73 71 6c 20 7b 53 45 4c 45 43 54 20 43 55 52 52  sql {SELECT CURR
6a60: 45 4e 54 5f 54 49 4d 45 7d 0a 7d 20 24 74 69 6d  ENT_TIME}.} $tim
6a70: 65 0a 64 6f 5f 74 65 73 74 20 65 78 70 72 2d 38  e.do_test expr-8
6a80: 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .2 {.  execsql {
6a90: 53 45 4c 45 43 54 20 43 55 52 52 45 4e 54 5f 44  SELECT CURRENT_D
6aa0: 41 54 45 7d 0a 7d 20 24 64 61 74 65 0a 64 6f 5f  ATE}.} $date.do_
6ab0: 74 65 73 74 20 65 78 70 72 2d 38 2e 33 20 7b 0a  test expr-8.3 {.
6ac0: 20 20 65 78 65 63 73 71 6c 20 7b 53 45 4c 45 43    execsql {SELEC
6ad0: 54 20 43 55 52 52 45 4e 54 5f 54 49 4d 45 53 54  T CURRENT_TIMEST
6ae0: 41 4d 50 7d 0a 7d 20 5b 6c 69 73 74 20 22 24 64  AMP}.} [list "$d
6af0: 61 74 65 20 24 74 69 6d 65 22 5d 0a 69 66 63 61  ate $time"].ifca
6b00: 70 61 62 6c 65 20 64 61 74 65 74 69 6d 65 20 7b  pable datetime {
6b10: 0a 20 20 64 6f 5f 74 65 73 74 20 65 78 70 72 2d  .  do_test expr-
6b20: 38 2e 34 20 7b 0a 20 20 20 20 65 78 65 63 73 71  8.4 {.    execsq
6b30: 6c 20 7b 53 45 4c 45 43 54 20 43 55 52 52 45 4e  l {SELECT CURREN
6b40: 54 5f 54 49 4d 45 3d 3d 74 69 6d 65 28 27 6e 6f  T_TIME==time('no
6b50: 77 27 29 3b 7d 0a 20 20 7d 20 31 0a 20 20 64 6f  w');}.  } 1.  do
6b60: 5f 74 65 73 74 20 65 78 70 72 2d 38 2e 35 20 7b  _test expr-8.5 {
6b70: 0a 20 20 20 20 65 78 65 63 73 71 6c 20 7b 53 45  .    execsql {SE
6b80: 4c 45 43 54 20 43 55 52 52 45 4e 54 5f 44 41 54  LECT CURRENT_DAT
6b90: 45 3d 3d 64 61 74 65 28 27 6e 6f 77 27 29 3b 7d  E==date('now');}
6ba0: 0a 20 20 7d 20 31 0a 20 20 64 6f 5f 74 65 73 74  .  } 1.  do_test
6bb0: 20 65 78 70 72 2d 38 2e 36 20 7b 0a 20 20 20 20   expr-8.6 {.    
6bc0: 65 78 65 63 73 71 6c 20 7b 53 45 4c 45 43 54 20  execsql {SELECT 
6bd0: 43 55 52 52 45 4e 54 5f 54 49 4d 45 53 54 41 4d  CURRENT_TIMESTAM
6be0: 50 3d 3d 64 61 74 65 74 69 6d 65 28 27 6e 6f 77  P==datetime('now
6bf0: 27 29 3b 7d 0a 20 20 7d 20 31 0a 7d 0a 73 65 74  ');}.  } 1.}.set
6c00: 20 73 71 6c 69 74 65 5f 63 75 72 72 65 6e 74 5f   sqlite_current_
6c10: 74 69 6d 65 20 30 0a 0a 64 6f 5f 74 65 73 74 20  time 0..do_test 
6c20: 65 78 70 72 2d 39 2e 31 20 7b 0a 20 20 65 78 65  expr-9.1 {.  exe
6c30: 63 73 71 6c 20 7b 53 45 4c 45 43 54 20 72 6f 75  csql {SELECT rou
6c40: 6e 64 28 2d 28 27 2d 27 7c 7c 27 31 32 33 27 29  nd(-('-'||'123')
6c50: 29 7d 0a 7d 20 31 32 33 0a 0a 23 20 54 65 73 74  )}.} 123..# Test
6c60: 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67   an error messag
6c70: 65 20 74 68 61 74 20 63 61 6e 20 62 65 20 67 65  e that can be ge
6c80: 6e 65 72 61 74 65 64 20 62 79 20 74 68 65 20 4c  nerated by the L
6c90: 49 4b 45 20 65 78 70 72 65 73 73 69 6f 6e 0a 64  IKE expression.d
6ca0: 6f 5f 74 65 73 74 20 65 78 70 72 2d 31 30 2e 31  o_test expr-10.1
6cb0: 20 7b 0a 20 20 63 61 74 63 68 73 71 6c 20 7b 53   {.  catchsql {S
6cc0: 45 4c 45 43 54 20 27 61 62 63 27 20 4c 49 4b 45  ELECT 'abc' LIKE
6cd0: 20 27 61 62 63 27 20 45 53 43 41 50 45 20 27 27   'abc' ESCAPE ''
6ce0: 7d 0a 7d 20 7b 31 20 7b 45 53 43 41 50 45 20 65  }.} {1 {ESCAPE e
6cf0: 78 70 72 65 73 73 69 6f 6e 20 6d 75 73 74 20 62  xpression must b
6d00: 65 20 61 20 73 69 6e 67 6c 65 20 63 68 61 72 61  e a single chara
6d10: 63 74 65 72 7d 7d 0a 64 6f 5f 74 65 73 74 20 65  cter}}.do_test e
6d20: 78 70 72 2d 31 30 2e 32 20 7b 0a 20 20 63 61 74  xpr-10.2 {.  cat
6d30: 63 68 73 71 6c 20 7b 53 45 4c 45 43 54 20 27 61  chsql {SELECT 'a
6d40: 62 63 27 20 4c 49 4b 45 20 27 61 62 63 27 20 45  bc' LIKE 'abc' E
6d50: 53 43 41 50 45 20 27 61 62 27 7d 0a 7d 20 7b 31  SCAPE 'ab'}.} {1
6d60: 20 7b 45 53 43 41 50 45 20 65 78 70 72 65 73 73   {ESCAPE express
6d70: 69 6f 6e 20 6d 75 73 74 20 62 65 20 61 20 73 69  ion must be a si
6d80: 6e 67 6c 65 20 63 68 61 72 61 63 74 65 72 7d 7d  ngle character}}
6d90: 0a 0a 66 69 6e 69 73 68 5f 74 65 73 74 0a        ..finish_test.