/ Hex Artifact Content
Login

Artifact ad985242e140f87eeef329d98257b8369a2066dc:


0000: 23 20 32 30 30 31 20 53 65 70 74 65 6d 62 65 72  # 2001 September
0010: 20 31 35 0a 23 0a 23 20 54 68 65 20 61 75 74 68   15.#.# The auth
0020: 6f 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70  or disclaims cop
0030: 79 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73  yright to this s
0040: 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20  ource code.  In 
0050: 70 6c 61 63 65 20 6f 66 0a 23 20 61 20 6c 65 67  place of.# a leg
0060: 61 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20  al notice, here 
0070: 69 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23  is a blessing:.#
0080: 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 64 6f  .#    May you do
0090: 20 67 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76   good and not ev
00a0: 69 6c 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75  il..#    May you
00b0: 20 66 69 6e 64 20 66 6f 72 67 69 76 65 6e 65 73   find forgivenes
00c0: 73 20 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 61  s for yourself a
00d0: 6e 64 20 66 6f 72 67 69 76 65 20 6f 74 68 65 72  nd forgive other
00e0: 73 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20  s..#    May you 
00f0: 73 68 61 72 65 20 66 72 65 65 6c 79 2c 20 6e 65  share freely, ne
0100: 76 65 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20  ver taking more 
0110: 74 68 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23  than you give..#
0120: 0a 23 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  .#**************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 23 20 54 68 69 73  *********.# This
0170: 20 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73   file implements
0180: 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74   regression test
0190: 73 20 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62  s for SQLite lib
01a0: 72 61 72 79 2e 20 20 54 68 65 0a 23 20 66 6f 63  rary.  The.# foc
01b0: 75 73 20 6f 66 20 74 68 69 73 20 66 69 6c 65 20  us of this file 
01c0: 69 73 20 74 65 73 74 69 6e 67 20 65 78 70 72 65  is testing expre
01d0: 73 73 69 6f 6e 73 2e 0a 23 0a 23 20 24 49 64 3a  ssions..#.# $Id:
01e0: 20 65 78 70 72 2e 74 65 73 74 2c 76 20 31 2e 33   expr.test,v 1.3
01f0: 31 20 32 30 30 34 2f 30 33 2f 30 33 20 30 31 3a  1 2004/03/03 01:
0200: 35 31 3a 32 35 20 64 72 68 20 45 78 70 20 24 0a  51:25 drh Exp $.
0210: 0a 73 65 74 20 74 65 73 74 64 69 72 20 5b 66 69  .set testdir [fi
0220: 6c 65 20 64 69 72 6e 61 6d 65 20 24 61 72 67 76  le dirname $argv
0230: 30 5d 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64  0].source $testd
0240: 69 72 2f 74 65 73 74 65 72 2e 74 63 6c 0a 0a 23  ir/tester.tcl..#
0250: 20 43 72 65 61 74 65 20 61 20 74 61 62 6c 65 20   Create a table 
0260: 74 6f 20 77 6f 72 6b 20 77 69 74 68 2e 0a 23 0a  to work with..#.
0270: 65 78 65 63 73 71 6c 20 7b 43 52 45 41 54 45 20  execsql {CREATE 
0280: 54 41 42 4c 45 20 74 65 73 74 31 28 69 31 20 69  TABLE test1(i1 i
0290: 6e 74 2c 20 69 32 20 69 6e 74 2c 20 72 31 20 72  nt, i2 int, r1 r
02a0: 65 61 6c 2c 20 72 32 20 72 65 61 6c 2c 20 74 31  eal, r2 real, t1
02b0: 20 74 65 78 74 2c 20 74 32 20 74 65 78 74 29 7d   text, t2 text)}
02c0: 0a 65 78 65 63 73 71 6c 20 7b 49 4e 53 45 52 54  .execsql {INSERT
02d0: 20 49 4e 54 4f 20 74 65 73 74 31 20 56 41 4c 55   INTO test1 VALU
02e0: 45 53 28 31 2c 32 2c 31 2e 31 2c 32 2e 32 2c 27  ES(1,2,1.1,2.2,'
02f0: 68 65 6c 6c 6f 27 2c 27 77 6f 72 6c 64 27 29 7d  hello','world')}
0300: 0a 70 72 6f 63 20 74 65 73 74 5f 65 78 70 72 20  .proc test_expr 
0310: 7b 6e 61 6d 65 20 73 65 74 74 69 6e 67 73 20 65  {name settings e
0320: 78 70 72 20 72 65 73 75 6c 74 7d 20 7b 0a 20 20  xpr result} {.  
0330: 64 6f 5f 74 65 73 74 20 24 6e 61 6d 65 20 5b 66  do_test $name [f
0340: 6f 72 6d 61 74 20 7b 0a 20 20 20 20 65 78 65 63  ormat {.    exec
0350: 73 71 6c 20 7b 42 45 47 49 4e 3b 20 55 50 44 41  sql {BEGIN; UPDA
0360: 54 45 20 74 65 73 74 31 20 53 45 54 20 25 73 3b  TE test1 SET %s;
0370: 20 53 45 4c 45 43 54 20 25 73 20 46 52 4f 4d 20   SELECT %s FROM 
0380: 74 65 73 74 31 3b 20 52 4f 4c 4c 42 41 43 4b 3b  test1; ROLLBACK;
0390: 7d 0a 20 20 7d 20 24 73 65 74 74 69 6e 67 73 20  }.  } $settings 
03a0: 24 65 78 70 72 5d 20 24 72 65 73 75 6c 74 0a 7d  $expr] $result.}
03b0: 0a 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  ..test_expr expr
03c0: 2d 31 2e 31 20 7b 69 31 3d 31 30 2c 20 69 32 3d  -1.1 {i1=10, i2=
03d0: 32 30 7d 20 7b 69 31 2b 69 32 7d 20 33 30 0a 74  20} {i1+i2} 30.t
03e0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
03f0: 32 20 7b 69 31 3d 31 30 2c 20 69 32 3d 32 30 7d  2 {i1=10, i2=20}
0400: 20 7b 69 31 2d 69 32 7d 20 2d 31 30 0a 74 65 73   {i1-i2} -10.tes
0410: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 33 20  t_expr expr-1.3 
0420: 7b 69 31 3d 31 30 2c 20 69 32 3d 32 30 7d 20 7b  {i1=10, i2=20} {
0430: 69 31 2a 69 32 7d 20 32 30 30 0a 74 65 73 74 5f  i1*i2} 200.test_
0440: 65 78 70 72 20 65 78 70 72 2d 31 2e 34 20 7b 69  expr expr-1.4 {i
0450: 31 3d 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69 31  1=10, i2=20} {i1
0460: 2f 69 32 7d 20 30 2e 35 0a 74 65 73 74 5f 65 78  /i2} 0.5.test_ex
0470: 70 72 20 65 78 70 72 2d 31 2e 35 20 7b 69 31 3d  pr expr-1.5 {i1=
0480: 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 2f 69  10, i2=20} {i2/i
0490: 31 7d 20 32 0a 74 65 73 74 5f 65 78 70 72 20 65  1} 2.test_expr e
04a0: 78 70 72 2d 31 2e 36 20 7b 69 31 3d 31 30 2c 20  xpr-1.6 {i1=10, 
04b0: 69 32 3d 32 30 7d 20 7b 69 32 3c 69 31 7d 20 30  i2=20} {i2<i1} 0
04c0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
04d0: 31 2e 37 20 7b 69 31 3d 31 30 2c 20 69 32 3d 32  1.7 {i1=10, i2=2
04e0: 30 7d 20 7b 69 32 3c 3d 69 31 7d 20 30 0a 74 65  0} {i2<=i1} 0.te
04f0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 38  st_expr expr-1.8
0500: 20 7b 69 31 3d 31 30 2c 20 69 32 3d 32 30 7d 20   {i1=10, i2=20} 
0510: 7b 69 32 3e 69 31 7d 20 31 0a 74 65 73 74 5f 65  {i2>i1} 1.test_e
0520: 78 70 72 20 65 78 70 72 2d 31 2e 39 20 7b 69 31  xpr expr-1.9 {i1
0530: 3d 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3e  =10, i2=20} {i2>
0540: 3d 69 31 7d 20 31 0a 74 65 73 74 5f 65 78 70 72  =i1} 1.test_expr
0550: 20 65 78 70 72 2d 31 2e 31 30 20 7b 69 31 3d 31   expr-1.10 {i1=1
0560: 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 21 3d 69  0, i2=20} {i2!=i
0570: 31 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  1} 1.test_expr e
0580: 78 70 72 2d 31 2e 31 31 20 7b 69 31 3d 31 30 2c  xpr-1.11 {i1=10,
0590: 20 69 32 3d 32 30 7d 20 7b 69 32 3d 69 31 7d 20   i2=20} {i2=i1} 
05a0: 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  0.test_expr expr
05b0: 2d 31 2e 31 32 20 7b 69 31 3d 31 30 2c 20 69 32  -1.12 {i1=10, i2
05c0: 3d 32 30 7d 20 7b 69 32 3c 3e 69 31 7d 20 31 0a  =20} {i2<>i1} 1.
05d0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
05e0: 2e 31 33 20 7b 69 31 3d 31 30 2c 20 69 32 3d 32  .13 {i1=10, i2=2
05f0: 30 7d 20 7b 69 32 3d 3d 69 31 7d 20 30 0a 74 65  0} {i2==i1} 0.te
0600: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 31  st_expr expr-1.1
0610: 34 20 7b 69 31 3d 32 30 2c 20 69 32 3d 32 30 7d  4 {i1=20, i2=20}
0620: 20 7b 69 32 3c 69 31 7d 20 30 0a 74 65 73 74 5f   {i2<i1} 0.test_
0630: 65 78 70 72 20 65 78 70 72 2d 31 2e 31 35 20 7b  expr expr-1.15 {
0640: 69 31 3d 32 30 2c 20 69 32 3d 32 30 7d 20 7b 69  i1=20, i2=20} {i
0650: 32 3c 3d 69 31 7d 20 31 0a 74 65 73 74 5f 65 78  2<=i1} 1.test_ex
0660: 70 72 20 65 78 70 72 2d 31 2e 31 36 20 7b 69 31  pr expr-1.16 {i1
0670: 3d 32 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3e  =20, i2=20} {i2>
0680: 69 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  i1} 0.test_expr 
0690: 65 78 70 72 2d 31 2e 31 37 20 7b 69 31 3d 32 30  expr-1.17 {i1=20
06a0: 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3e 3d 69 31  , i2=20} {i2>=i1
06b0: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
06c0: 70 72 2d 31 2e 31 38 20 7b 69 31 3d 32 30 2c 20  pr-1.18 {i1=20, 
06d0: 69 32 3d 32 30 7d 20 7b 69 32 21 3d 69 31 7d 20  i2=20} {i2!=i1} 
06e0: 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  0.test_expr expr
06f0: 2d 31 2e 31 39 20 7b 69 31 3d 32 30 2c 20 69 32  -1.19 {i1=20, i2
0700: 3d 32 30 7d 20 7b 69 32 3d 69 31 7d 20 31 0a 74  =20} {i2=i1} 1.t
0710: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0720: 32 30 20 7b 69 31 3d 32 30 2c 20 69 32 3d 32 30  20 {i1=20, i2=20
0730: 7d 20 7b 69 32 3c 3e 69 31 7d 20 30 0a 74 65 73  } {i2<>i1} 0.tes
0740: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 32 31  t_expr expr-1.21
0750: 20 7b 69 31 3d 32 30 2c 20 69 32 3d 32 30 7d 20   {i1=20, i2=20} 
0760: 7b 69 32 3d 3d 69 31 7d 20 31 0a 74 65 73 74 5f  {i2==i1} 1.test_
0770: 65 78 70 72 20 65 78 70 72 2d 31 2e 32 32 20 7b  expr expr-1.22 {
0780: 69 31 3d 31 2c 20 69 32 3d 32 2c 20 72 31 3d 33  i1=1, i2=2, r1=3
0790: 2e 30 7d 20 7b 69 31 2b 69 32 2a 72 31 7d 20 7b  .0} {i1+i2*r1} {
07a0: 37 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  7}.test_expr exp
07b0: 72 2d 31 2e 32 33 20 7b 69 31 3d 31 2c 20 69 32  r-1.23 {i1=1, i2
07c0: 3d 32 2c 20 72 31 3d 33 2e 30 7d 20 7b 28 69 31  =2, r1=3.0} {(i1
07d0: 2b 69 32 29 2a 72 31 7d 20 7b 39 7d 0a 74 65 73  +i2)*r1} {9}.tes
07e0: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 32 34  t_expr expr-1.24
07f0: 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 6d   {i1=1, i2=2} {m
0800: 69 6e 28 69 31 2c 69 32 2c 69 31 2b 69 32 2c 69  in(i1,i2,i1+i2,i
0810: 31 2d 69 32 29 7d 20 7b 2d 31 7d 0a 74 65 73 74  1-i2)} {-1}.test
0820: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 32 35 20  _expr expr-1.25 
0830: 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 6d 61  {i1=1, i2=2} {ma
0840: 78 28 69 31 2c 69 32 2c 69 31 2b 69 32 2c 69 31  x(i1,i2,i1+i2,i1
0850: 2d 69 32 29 7d 20 7b 33 7d 0a 74 65 73 74 5f 65  -i2)} {3}.test_e
0860: 78 70 72 20 65 78 70 72 2d 31 2e 32 36 20 7b 69  xpr expr-1.26 {i
0870: 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 6d 61 78 28  1=1, i2=2} {max(
0880: 69 31 2c 69 32 2c 69 31 2b 69 32 2c 69 31 2d 69  i1,i2,i1+i2,i1-i
0890: 32 29 7d 20 7b 33 7d 0a 74 65 73 74 5f 65 78 70  2)} {3}.test_exp
08a0: 72 20 65 78 70 72 2d 31 2e 32 37 20 7b 69 31 3d  r expr-1.27 {i1=
08b0: 31 2c 20 69 32 3d 32 7d 20 7b 69 31 3d 3d 31 20  1, i2=2} {i1==1 
08c0: 41 4e 44 20 69 32 3d 32 7d 20 7b 31 7d 0a 74 65  AND i2=2} {1}.te
08d0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 32  st_expr expr-1.2
08e0: 38 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b  8 {i1=1, i2=2} {
08f0: 69 31 3d 32 20 41 4e 44 20 69 32 3d 31 7d 20 7b  i1=2 AND i2=1} {
0900: 30 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  0}.test_expr exp
0910: 72 2d 31 2e 32 39 20 7b 69 31 3d 31 2c 20 69 32  r-1.29 {i1=1, i2
0920: 3d 32 7d 20 7b 69 31 3d 31 20 41 4e 44 20 69 32  =2} {i1=1 AND i2
0930: 3d 31 7d 20 7b 30 7d 0a 74 65 73 74 5f 65 78 70  =1} {0}.test_exp
0940: 72 20 65 78 70 72 2d 31 2e 33 30 20 7b 69 31 3d  r expr-1.30 {i1=
0950: 31 2c 20 69 32 3d 32 7d 20 7b 69 31 3d 32 20 41  1, i2=2} {i1=2 A
0960: 4e 44 20 69 32 3d 32 7d 20 7b 30 7d 0a 74 65 73  ND i2=2} {0}.tes
0970: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 33 31  t_expr expr-1.31
0980: 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 69   {i1=1, i2=2} {i
0990: 31 3d 3d 31 20 4f 52 20 69 32 3d 32 7d 20 7b 31  1==1 OR i2=2} {1
09a0: 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  }.test_expr expr
09b0: 2d 31 2e 33 32 20 7b 69 31 3d 31 2c 20 69 32 3d  -1.32 {i1=1, i2=
09c0: 32 7d 20 7b 69 31 3d 32 20 4f 52 20 69 32 3d 31  2} {i1=2 OR i2=1
09d0: 7d 20 7b 30 7d 0a 74 65 73 74 5f 65 78 70 72 20  } {0}.test_expr 
09e0: 65 78 70 72 2d 31 2e 33 33 20 7b 69 31 3d 31 2c  expr-1.33 {i1=1,
09f0: 20 69 32 3d 32 7d 20 7b 69 31 3d 31 20 4f 52 20   i2=2} {i1=1 OR 
0a00: 69 32 3d 31 7d 20 7b 31 7d 0a 74 65 73 74 5f 65  i2=1} {1}.test_e
0a10: 78 70 72 20 65 78 70 72 2d 31 2e 33 34 20 7b 69  xpr expr-1.34 {i
0a20: 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 69 31 3d 32  1=1, i2=2} {i1=2
0a30: 20 4f 52 20 69 32 3d 32 7d 20 7b 31 7d 0a 74 65   OR i2=2} {1}.te
0a40: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 33  st_expr expr-1.3
0a50: 35 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b  5 {i1=1, i2=2} {
0a60: 69 31 2d 69 32 3d 2d 31 7d 20 7b 31 7d 0a 74 65  i1-i2=-1} {1}.te
0a70: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 33  st_expr expr-1.3
0a80: 36 20 7b 69 31 3d 31 2c 20 69 32 3d 30 7d 20 7b  6 {i1=1, i2=0} {
0a90: 6e 6f 74 20 69 31 7d 20 7b 30 7d 0a 74 65 73 74  not i1} {0}.test
0aa0: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 33 37 20  _expr expr-1.37 
0ab0: 7b 69 31 3d 31 2c 20 69 32 3d 30 7d 20 7b 6e 6f  {i1=1, i2=0} {no
0ac0: 74 20 69 32 7d 20 7b 31 7d 0a 74 65 73 74 5f 65  t i2} {1}.test_e
0ad0: 78 70 72 20 65 78 70 72 2d 31 2e 33 38 20 7b 69  xpr expr-1.38 {i
0ae0: 31 3d 31 7d 20 7b 2d 69 31 7d 20 7b 2d 31 7d 0a  1=1} {-i1} {-1}.
0af0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
0b00: 2e 33 39 20 7b 69 31 3d 31 7d 20 7b 2b 69 31 7d  .39 {i1=1} {+i1}
0b10: 20 7b 31 7d 0a 74 65 73 74 5f 65 78 70 72 20 65   {1}.test_expr e
0b20: 78 70 72 2d 31 2e 34 30 20 7b 69 31 3d 31 2c 20  xpr-1.40 {i1=1, 
0b30: 69 32 3d 32 7d 20 7b 2b 28 69 32 2b 69 31 29 7d  i2=2} {+(i2+i1)}
0b40: 20 7b 33 7d 0a 74 65 73 74 5f 65 78 70 72 20 65   {3}.test_expr e
0b50: 78 70 72 2d 31 2e 34 31 20 7b 69 31 3d 31 2c 20  xpr-1.41 {i1=1, 
0b60: 69 32 3d 32 7d 20 7b 2d 28 69 32 2b 69 31 29 7d  i2=2} {-(i2+i1)}
0b70: 20 7b 2d 33 7d 0a 74 65 73 74 5f 65 78 70 72 20   {-3}.test_expr 
0b80: 65 78 70 72 2d 31 2e 34 32 20 7b 69 31 3d 31 2c  expr-1.42 {i1=1,
0b90: 20 69 32 3d 32 7d 20 7b 69 31 7c 69 32 7d 20 7b   i2=2} {i1|i2} {
0ba0: 33 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  3}.test_expr exp
0bb0: 72 2d 31 2e 34 32 62 20 7b 69 31 3d 31 2c 20 69  r-1.42b {i1=1, i
0bc0: 32 3d 32 7d 20 7b 34 7c 32 7d 20 7b 36 7d 0a 74  2=2} {4|2} {6}.t
0bd0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0be0: 34 33 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20  43 {i1=1, i2=2} 
0bf0: 7b 69 31 26 69 32 7d 20 7b 30 7d 0a 74 65 73 74  {i1&i2} {0}.test
0c00: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 34 33 62  _expr expr-1.43b
0c10: 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 34   {i1=1, i2=2} {4
0c20: 26 35 7d 20 7b 34 7d 0a 74 65 73 74 5f 65 78 70  &5} {4}.test_exp
0c30: 72 20 65 78 70 72 2d 31 2e 34 34 20 7b 69 31 3d  r expr-1.44 {i1=
0c40: 31 7d 20 7b 7e 69 31 7d 20 7b 2d 32 7d 0a 74 65  1} {~i1} {-2}.te
0c50: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 34  st_expr expr-1.4
0c60: 35 20 7b 69 31 3d 31 2c 20 69 32 3d 33 7d 20 7b  5 {i1=1, i2=3} {
0c70: 69 31 3c 3c 69 32 7d 20 7b 38 7d 0a 74 65 73 74  i1<<i2} {8}.test
0c80: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 34 36 20  _expr expr-1.46 
0c90: 7b 69 31 3d 33 32 2c 20 69 32 3d 33 7d 20 7b 69  {i1=32, i2=3} {i
0ca0: 31 3e 3e 69 32 7d 20 7b 34 7d 0a 74 65 73 74 5f  1>>i2} {4}.test_
0cb0: 65 78 70 72 20 65 78 70 72 2d 31 2e 34 37 20 7b  expr expr-1.47 {
0cc0: 69 31 3d 39 39 39 39 39 39 39 39 39 39 2c 20 69  i1=9999999999, i
0cd0: 32 3d 38 38 38 38 38 38 38 38 38 38 7d 20 7b 69  2=8888888888} {i
0ce0: 31 3c 69 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  1<i2} 0.test_exp
0cf0: 72 20 65 78 70 72 2d 31 2e 34 38 20 7b 69 31 3d  r expr-1.48 {i1=
0d00: 39 39 39 39 39 39 39 39 39 39 2c 20 69 32 3d 38  9999999999, i2=8
0d10: 38 38 38 38 38 38 38 38 38 7d 20 7b 69 31 3d 69  888888888} {i1=i
0d20: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
0d30: 78 70 72 2d 31 2e 34 39 20 7b 69 31 3d 39 39 39  xpr-1.49 {i1=999
0d40: 39 39 39 39 39 39 39 2c 20 69 32 3d 38 38 38 38  9999999, i2=8888
0d50: 38 38 38 38 38 38 7d 20 7b 69 31 3e 69 32 7d 20  888888} {i1>i2} 
0d60: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
0d70: 2d 31 2e 35 30 20 7b 69 31 3d 39 39 39 39 39 39  -1.50 {i1=999999
0d80: 39 39 39 39 39 2c 20 69 32 3d 39 39 39 39 39 39  99999, i2=999999
0d90: 39 39 39 39 38 7d 20 7b 69 31 3c 69 32 7d 20 30  99998} {i1<i2} 0
0da0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0db0: 31 2e 35 31 20 7b 69 31 3d 39 39 39 39 39 39 39  1.51 {i1=9999999
0dc0: 39 39 39 39 2c 20 69 32 3d 39 39 39 39 39 39 39  9999, i2=9999999
0dd0: 39 39 39 38 7d 20 7b 69 31 3d 69 32 7d 20 30 0a  9998} {i1=i2} 0.
0de0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
0df0: 2e 35 32 20 7b 69 31 3d 39 39 39 39 39 39 39 39  .52 {i1=99999999
0e00: 39 39 39 2c 20 69 32 3d 39 39 39 39 39 39 39 39  999, i2=99999999
0e10: 39 39 38 7d 20 7b 69 31 3e 69 32 7d 20 31 0a 74  998} {i1>i2} 1.t
0e20: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0e30: 35 33 20 7b 69 31 3d 30 39 39 39 39 39 39 39 39  53 {i1=099999999
0e40: 39 39 39 2c 20 69 32 3d 39 39 39 39 39 39 39 39  999, i2=99999999
0e50: 39 39 39 7d 20 7b 69 31 3c 69 32 7d 20 30 0a 74  999} {i1<i2} 0.t
0e60: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0e70: 35 34 20 7b 69 31 3d 30 39 39 39 39 39 39 39 39  54 {i1=099999999
0e80: 39 39 39 2c 20 69 32 3d 39 39 39 39 39 39 39 39  999, i2=99999999
0e90: 39 39 39 7d 20 7b 69 31 3d 69 32 7d 20 31 0a 74  999} {i1=i2} 1.t
0ea0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0eb0: 35 35 20 7b 69 31 3d 30 39 39 39 39 39 39 39 39  55 {i1=099999999
0ec0: 39 39 39 2c 20 69 32 3d 39 39 39 39 39 39 39 39  999, i2=99999999
0ed0: 39 39 39 7d 20 7b 69 31 3e 69 32 7d 20 30 0a 74  999} {i1>i2} 0.t
0ee0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0ef0: 35 36 20 7b 69 31 3d 32 35 2c 20 69 32 3d 31 31  56 {i1=25, i2=11
0f00: 7d 20 7b 69 31 25 69 32 7d 20 33 0a 74 65 73 74  } {i1%i2} 3.test
0f10: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 35 38 20  _expr expr-1.58 
0f20: 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d 31 7d 20  {i1=NULL, i2=1} 
0f30: 7b 63 6f 61 6c 65 73 63 65 28 69 31 2b 69 32 2c  {coalesce(i1+i2,
0f40: 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70  99)} 99.test_exp
0f50: 72 20 65 78 70 72 2d 31 2e 35 39 20 7b 69 31 3d  r expr-1.59 {i1=
0f60: 31 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61  1, i2=NULL} {coa
0f70: 6c 65 73 63 65 28 69 31 2b 69 32 2c 39 39 29 7d  lesce(i1+i2,99)}
0f80: 20 39 39 0a 74 65 73 74 5f 65 78 70 72 20 65 78   99.test_expr ex
0f90: 70 72 2d 31 2e 36 30 20 7b 69 31 3d 4e 55 4c 4c  pr-1.60 {i1=NULL
0fa0: 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c  , i2=NULL} {coal
0fb0: 65 73 63 65 28 69 31 2b 69 32 2c 39 39 29 7d 20  esce(i1+i2,99)} 
0fc0: 39 39 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  99.test_expr exp
0fd0: 72 2d 31 2e 36 31 20 7b 69 31 3d 4e 55 4c 4c 2c  r-1.61 {i1=NULL,
0fe0: 20 69 32 3d 31 7d 20 7b 63 6f 61 6c 65 73 63 65   i2=1} {coalesce
0ff0: 28 69 31 2d 69 32 2c 39 39 29 7d 20 39 39 0a 74  (i1-i2,99)} 99.t
1000: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
1010: 36 32 20 7b 69 31 3d 31 2c 20 69 32 3d 4e 55 4c  62 {i1=1, i2=NUL
1020: 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 2d  L} {coalesce(i1-
1030: 69 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f  i2,99)} 99.test_
1040: 65 78 70 72 20 65 78 70 72 2d 31 2e 36 33 20 7b  expr expr-1.63 {
1050: 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d 4e 55 4c 4c  i1=NULL, i2=NULL
1060: 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 2d 69  } {coalesce(i1-i
1070: 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65  2,99)} 99.test_e
1080: 78 70 72 20 65 78 70 72 2d 31 2e 36 34 20 7b 69  xpr expr-1.64 {i
1090: 31 3d 4e 55 4c 4c 2c 20 69 32 3d 31 7d 20 7b 63  1=NULL, i2=1} {c
10a0: 6f 61 6c 65 73 63 65 28 69 31 2a 69 32 2c 39 39  oalesce(i1*i2,99
10b0: 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70 72 20  )} 99.test_expr 
10c0: 65 78 70 72 2d 31 2e 36 35 20 7b 69 31 3d 31 2c  expr-1.65 {i1=1,
10d0: 20 69 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65   i2=NULL} {coale
10e0: 73 63 65 28 69 31 2a 69 32 2c 39 39 29 7d 20 39  sce(i1*i2,99)} 9
10f0: 39 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  9.test_expr expr
1100: 2d 31 2e 36 36 20 7b 69 31 3d 4e 55 4c 4c 2c 20  -1.66 {i1=NULL, 
1110: 69 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73  i2=NULL} {coales
1120: 63 65 28 69 31 2a 69 32 2c 39 39 29 7d 20 39 39  ce(i1*i2,99)} 99
1130: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1140: 31 2e 36 37 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69  1.67 {i1=NULL, i
1150: 32 3d 31 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69  2=1} {coalesce(i
1160: 31 2f 69 32 2c 39 39 29 7d 20 39 39 0a 74 65 73  1/i2,99)} 99.tes
1170: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 36 38  t_expr expr-1.68
1180: 20 7b 69 31 3d 31 2c 20 69 32 3d 4e 55 4c 4c 7d   {i1=1, i2=NULL}
1190: 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 2f 69 32   {coalesce(i1/i2
11a0: 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78  ,99)} 99.test_ex
11b0: 70 72 20 65 78 70 72 2d 31 2e 36 39 20 7b 69 31  pr expr-1.69 {i1
11c0: 3d 4e 55 4c 4c 2c 20 69 32 3d 4e 55 4c 4c 7d 20  =NULL, i2=NULL} 
11d0: 7b 63 6f 61 6c 65 73 63 65 28 69 31 2f 69 32 2c  {coalesce(i1/i2,
11e0: 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70  99)} 99.test_exp
11f0: 72 20 65 78 70 72 2d 31 2e 37 30 20 7b 69 31 3d  r expr-1.70 {i1=
1200: 4e 55 4c 4c 2c 20 69 32 3d 31 7d 20 7b 63 6f 61  NULL, i2=1} {coa
1210: 6c 65 73 63 65 28 69 31 3c 69 32 2c 39 39 29 7d  lesce(i1<i2,99)}
1220: 20 39 39 0a 74 65 73 74 5f 65 78 70 72 20 65 78   99.test_expr ex
1230: 70 72 2d 31 2e 37 31 20 7b 69 31 3d 31 2c 20 69  pr-1.71 {i1=1, i
1240: 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63  2=NULL} {coalesc
1250: 65 28 69 31 3e 69 32 2c 39 39 29 7d 20 39 39 0a  e(i1>i2,99)} 99.
1260: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
1270: 2e 37 32 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32  .72 {i1=NULL, i2
1280: 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65  =NULL} {coalesce
1290: 28 69 31 3c 3d 69 32 2c 39 39 29 7d 20 39 39 0a  (i1<=i2,99)} 99.
12a0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
12b0: 2e 37 33 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32  .73 {i1=NULL, i2
12c0: 3d 31 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69 31  =1} {coalesce(i1
12d0: 3e 3d 69 32 2c 39 39 29 7d 20 39 39 0a 74 65 73  >=i2,99)} 99.tes
12e0: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 37 34  t_expr expr-1.74
12f0: 20 7b 69 31 3d 31 2c 20 69 32 3d 4e 55 4c 4c 7d   {i1=1, i2=NULL}
1300: 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 21 3d 69   {coalesce(i1!=i
1310: 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65  2,99)} 99.test_e
1320: 78 70 72 20 65 78 70 72 2d 31 2e 37 35 20 7b 69  xpr expr-1.75 {i
1330: 31 3d 4e 55 4c 4c 2c 20 69 32 3d 4e 55 4c 4c 7d  1=NULL, i2=NULL}
1340: 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 3d 3d 69   {coalesce(i1==i
1350: 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65  2,99)} 99.test_e
1360: 78 70 72 20 65 78 70 72 2d 31 2e 37 36 20 7b 69  xpr expr-1.76 {i
1370: 31 3d 4e 55 4c 4c 2c 20 69 32 3d 4e 55 4c 4c 7d  1=NULL, i2=NULL}
1380: 20 7b 63 6f 61 6c 65 73 63 65 28 6e 6f 74 20 69   {coalesce(not i
1390: 31 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65  1,99)} 99.test_e
13a0: 78 70 72 20 65 78 70 72 2d 31 2e 37 37 20 7b 69  xpr expr-1.77 {i
13b0: 31 3d 4e 55 4c 4c 2c 20 69 32 3d 4e 55 4c 4c 7d  1=NULL, i2=NULL}
13c0: 20 7b 63 6f 61 6c 65 73 63 65 28 2d 69 31 2c 39   {coalesce(-i1,9
13d0: 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70 72  9)} 99.test_expr
13e0: 20 65 78 70 72 2d 31 2e 37 38 20 7b 69 31 3d 4e   expr-1.78 {i1=N
13f0: 55 4c 4c 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b 63  ULL, i2=NULL} {c
1400: 6f 61 6c 65 73 63 65 28 69 31 20 49 53 20 4e 55  oalesce(i1 IS NU
1410: 4c 4c 20 41 4e 44 20 69 32 3d 35 2c 39 39 29 7d  LL AND i2=5,99)}
1420: 20 39 39 0a 74 65 73 74 5f 65 78 70 72 20 65 78   99.test_expr ex
1430: 70 72 2d 31 2e 37 39 20 7b 69 31 3d 4e 55 4c 4c  pr-1.79 {i1=NULL
1440: 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c  , i2=NULL} {coal
1450: 65 73 63 65 28 69 31 20 49 53 20 4e 55 4c 4c 20  esce(i1 IS NULL 
1460: 4f 52 20 69 32 3d 35 2c 39 39 29 7d 20 31 0a 74  OR i2=5,99)} 1.t
1470: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
1480: 38 30 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d  80 {i1=NULL, i2=
1490: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
14a0: 69 31 3d 35 20 41 4e 44 20 69 32 20 49 53 20 4e  i1=5 AND i2 IS N
14b0: 55 4c 4c 2c 39 39 29 7d 20 39 39 0a 74 65 73 74  ULL,99)} 99.test
14c0: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 38 31 20  _expr expr-1.81 
14d0: 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d 4e 55 4c  {i1=NULL, i2=NUL
14e0: 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 3d  L} {coalesce(i1=
14f0: 35 20 4f 52 20 69 32 20 49 53 20 4e 55 4c 4c 2c  5 OR i2 IS NULL,
1500: 39 39 29 7d 20 31 0a 74 65 73 74 5f 65 78 70 72  99)} 1.test_expr
1510: 20 65 78 70 72 2d 31 2e 38 32 20 7b 69 31 3d 4e   expr-1.82 {i1=N
1520: 55 4c 4c 2c 20 69 32 3d 33 7d 20 7b 63 6f 61 6c  ULL, i2=3} {coal
1530: 65 73 63 65 28 6d 69 6e 28 69 31 2c 69 32 2c 31  esce(min(i1,i2,1
1540: 29 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65  ),99)} 99.test_e
1550: 78 70 72 20 65 78 70 72 2d 31 2e 38 33 20 7b 69  xpr expr-1.83 {i
1560: 31 3d 4e 55 4c 4c 2c 20 69 32 3d 33 7d 20 7b 63  1=NULL, i2=3} {c
1570: 6f 61 6c 65 73 63 65 28 6d 61 78 28 69 31 2c 69  oalesce(max(i1,i
1580: 32 2c 31 29 2c 39 39 29 7d 20 39 39 0a 74 65 73  2,1),99)} 99.tes
1590: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 38 34  t_expr expr-1.84
15a0: 20 7b 69 31 3d 33 2c 20 69 32 3d 4e 55 4c 4c 7d   {i1=3, i2=NULL}
15b0: 20 7b 63 6f 61 6c 65 73 63 65 28 6d 69 6e 28 69   {coalesce(min(i
15c0: 31 2c 69 32 2c 31 29 2c 39 39 29 7d 20 39 39 0a  1,i2,1),99)} 99.
15d0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
15e0: 2e 38 35 20 7b 69 31 3d 33 2c 20 69 32 3d 4e 55  .85 {i1=3, i2=NU
15f0: 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 6d 61  LL} {coalesce(ma
1600: 78 28 69 31 2c 69 32 2c 31 29 2c 39 39 29 7d 20  x(i1,i2,1),99)} 
1610: 39 39 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  99.test_expr exp
1620: 72 2d 31 2e 38 36 20 7b 69 31 3d 33 2c 20 69 32  r-1.86 {i1=3, i2
1630: 3d 38 7d 20 7b 35 20 62 65 74 77 65 65 6e 20 69  =8} {5 between i
1640: 31 20 61 6e 64 20 69 32 7d 20 31 0a 74 65 73 74  1 and i2} 1.test
1650: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 38 37 20  _expr expr-1.87 
1660: 7b 69 31 3d 33 2c 20 69 32 3d 38 7d 20 7b 35 20  {i1=3, i2=8} {5 
1670: 6e 6f 74 20 62 65 74 77 65 65 6e 20 69 31 20 61  not between i1 a
1680: 6e 64 20 69 32 7d 20 30 0a 74 65 73 74 5f 65 78  nd i2} 0.test_ex
1690: 70 72 20 65 78 70 72 2d 31 2e 38 38 20 7b 69 31  pr expr-1.88 {i1
16a0: 3d 33 2c 20 69 32 3d 38 7d 20 7b 35 35 20 62 65  =3, i2=8} {55 be
16b0: 74 77 65 65 6e 20 69 31 20 61 6e 64 20 69 32 7d  tween i1 and i2}
16c0: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
16d0: 72 2d 31 2e 38 39 20 7b 69 31 3d 33 2c 20 69 32  r-1.89 {i1=3, i2
16e0: 3d 38 7d 20 7b 35 35 20 6e 6f 74 20 62 65 74 77  =8} {55 not betw
16f0: 65 65 6e 20 69 31 20 61 6e 64 20 69 32 7d 20 31  een i1 and i2} 1
1700: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1710: 31 2e 39 30 20 7b 69 31 3d 33 2c 20 69 32 3d 4e  1.90 {i1=3, i2=N
1720: 55 4c 4c 7d 20 7b 35 20 62 65 74 77 65 65 6e 20  ULL} {5 between 
1730: 69 31 20 61 6e 64 20 69 32 7d 20 7b 7b 7d 7d 0a  i1 and i2} {{}}.
1740: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
1750: 2e 39 31 20 7b 69 31 3d 33 2c 20 69 32 3d 4e 55  .91 {i1=3, i2=NU
1760: 4c 4c 7d 20 7b 35 20 6e 6f 74 20 62 65 74 77 65  LL} {5 not betwe
1770: 65 6e 20 69 31 20 61 6e 64 20 69 32 7d 20 7b 7b  en i1 and i2} {{
1780: 7d 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  }}.test_expr exp
1790: 72 2d 31 2e 39 32 20 7b 69 31 3d 33 2c 20 69 32  r-1.92 {i1=3, i2
17a0: 3d 4e 55 4c 4c 7d 20 7b 32 20 62 65 74 77 65 65  =NULL} {2 betwee
17b0: 6e 20 69 31 20 61 6e 64 20 69 32 7d 20 30 0a 74  n i1 and i2} 0.t
17c0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
17d0: 39 33 20 7b 69 31 3d 33 2c 20 69 32 3d 4e 55 4c  93 {i1=3, i2=NUL
17e0: 4c 7d 20 7b 32 20 6e 6f 74 20 62 65 74 77 65 65  L} {2 not betwee
17f0: 6e 20 69 31 20 61 6e 64 20 69 32 7d 20 31 0a 74  n i1 and i2} 1.t
1800: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
1810: 39 34 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d  94 {i1=NULL, i2=
1820: 38 7d 20 7b 32 20 62 65 74 77 65 65 6e 20 69 31  8} {2 between i1
1830: 20 61 6e 64 20 69 32 7d 20 7b 7b 7d 7d 0a 74 65   and i2} {{}}.te
1840: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 39  st_expr expr-1.9
1850: 35 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d 38  5 {i1=NULL, i2=8
1860: 7d 20 7b 32 20 6e 6f 74 20 62 65 74 77 65 65 6e  } {2 not between
1870: 20 69 31 20 61 6e 64 20 69 32 7d 20 7b 7b 7d 7d   i1 and i2} {{}}
1880: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1890: 31 2e 39 34 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69  1.94 {i1=NULL, i
18a0: 32 3d 38 7d 20 7b 35 35 20 62 65 74 77 65 65 6e  2=8} {55 between
18b0: 20 69 31 20 61 6e 64 20 69 32 7d 20 30 0a 74 65   i1 and i2} 0.te
18c0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 39  st_expr expr-1.9
18d0: 35 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d 38  5 {i1=NULL, i2=8
18e0: 7d 20 7b 35 35 20 6e 6f 74 20 62 65 74 77 65 65  } {55 not betwee
18f0: 6e 20 69 31 20 61 6e 64 20 69 32 7d 20 31 0a 74  n i1 and i2} 1.t
1900: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
1910: 39 36 20 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d  96 {i1=NULL, i2=
1920: 33 7d 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 3c  3} {coalesce(i1<
1930: 3c 69 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74  <i2,99)} 99.test
1940: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 39 37 20  _expr expr-1.97 
1950: 7b 69 31 3d 33 32 2c 20 69 32 3d 4e 55 4c 4c 7d  {i1=32, i2=NULL}
1960: 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 3e 3e 69   {coalesce(i1>>i
1970: 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65  2,99)} 99.test_e
1980: 78 70 72 20 65 78 70 72 2d 31 2e 39 38 20 7b 69  xpr expr-1.98 {i
1990: 31 3d 4e 55 4c 4c 2c 20 69 32 3d 4e 55 4c 4c 7d  1=NULL, i2=NULL}
19a0: 20 7b 63 6f 61 6c 65 73 63 65 28 69 31 7c 69 32   {coalesce(i1|i2
19b0: 2c 39 39 29 7d 20 39 39 0a 74 65 73 74 5f 65 78  ,99)} 99.test_ex
19c0: 70 72 20 65 78 70 72 2d 31 2e 39 39 20 7b 69 31  pr expr-1.99 {i1
19d0: 3d 33 32 2c 20 69 32 3d 4e 55 4c 4c 7d 20 7b 63  =32, i2=NULL} {c
19e0: 6f 61 6c 65 73 63 65 28 69 31 26 69 32 2c 39 39  oalesce(i1&i2,99
19f0: 29 7d 20 39 39 0a 74 65 73 74 5f 65 78 70 72 20  )} 99.test_expr 
1a00: 65 78 70 72 2d 31 2e 31 30 30 20 7b 69 31 3d 31  expr-1.100 {i1=1
1a10: 2c 20 69 32 3d 27 27 7d 20 7b 69 31 3d 69 32 7d  , i2=''} {i1=i2}
1a20: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
1a30: 72 2d 31 2e 31 30 31 20 7b 69 31 3d 30 2c 20 69  r-1.101 {i1=0, i
1a40: 32 3d 27 27 7d 20 7b 69 31 3d 69 32 7d 20 30 0a  2=''} {i1=i2} 0.
1a50: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1a60: 32 2e 31 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32  2.1 {r1=1.23, r2
1a70: 3d 32 2e 33 34 7d 20 7b 72 31 2b 72 32 7d 20 33  =2.34} {r1+r2} 3
1a80: 2e 35 37 0a 74 65 73 74 5f 65 78 70 72 20 65 78  .57.test_expr ex
1a90: 70 72 2d 32 2e 32 20 7b 72 31 3d 31 2e 32 33 2c  pr-2.2 {r1=1.23,
1aa0: 20 72 32 3d 32 2e 33 34 7d 20 7b 72 31 2d 72 32   r2=2.34} {r1-r2
1ab0: 7d 20 2d 31 2e 31 31 0a 74 65 73 74 5f 65 78 70  } -1.11.test_exp
1ac0: 72 20 65 78 70 72 2d 32 2e 33 20 7b 72 31 3d 31  r expr-2.3 {r1=1
1ad0: 2e 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72  .23, r2=2.34} {r
1ae0: 31 2a 72 32 7d 20 32 2e 38 37 38 32 0a 74 65 73  1*r2} 2.8782.tes
1af0: 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 34 20  t_expr expr-2.4 
1b00: 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33  {r1=1.23, r2=2.3
1b10: 34 7d 20 7b 72 31 2f 72 32 7d 20 30 2e 35 32 35  4} {r1/r2} 0.525
1b20: 36 34 31 30 32 35 36 34 31 30 32 36 0a 74 65 73  641025641026.tes
1b30: 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 35 20  t_expr expr-2.5 
1b40: 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33  {r1=1.23, r2=2.3
1b50: 34 7d 20 7b 72 32 2f 72 31 7d 20 31 2e 39 30 32  4} {r2/r1} 1.902
1b60: 34 33 39 30 32 34 33 39 30 32 34 0a 74 65 73 74  43902439024.test
1b70: 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 36 20 7b  _expr expr-2.6 {
1b80: 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33 34  r1=1.23, r2=2.34
1b90: 7d 20 7b 72 32 3c 72 31 7d 20 30 0a 74 65 73 74  } {r2<r1} 0.test
1ba0: 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 37 20 7b  _expr expr-2.7 {
1bb0: 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33 34  r1=1.23, r2=2.34
1bc0: 7d 20 7b 72 32 3c 3d 72 31 7d 20 30 0a 74 65 73  } {r2<=r1} 0.tes
1bd0: 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 38 20  t_expr expr-2.8 
1be0: 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33  {r1=1.23, r2=2.3
1bf0: 34 7d 20 7b 72 32 3e 72 31 7d 20 31 0a 74 65 73  4} {r2>r1} 1.tes
1c00: 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 39 20  t_expr expr-2.9 
1c10: 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33  {r1=1.23, r2=2.3
1c20: 34 7d 20 7b 72 32 3e 3d 72 31 7d 20 31 0a 74 65  4} {r2>=r1} 1.te
1c30: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 31  st_expr expr-2.1
1c40: 30 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32  0 {r1=1.23, r2=2
1c50: 2e 33 34 7d 20 7b 72 32 21 3d 72 31 7d 20 31 0a  .34} {r2!=r1} 1.
1c60: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32  test_expr expr-2
1c70: 2e 31 31 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32  .11 {r1=1.23, r2
1c80: 3d 32 2e 33 34 7d 20 7b 72 32 3d 72 31 7d 20 30  =2.34} {r2=r1} 0
1c90: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1ca0: 32 2e 31 32 20 7b 72 31 3d 31 2e 32 33 2c 20 72  2.12 {r1=1.23, r
1cb0: 32 3d 32 2e 33 34 7d 20 7b 72 32 3c 3e 72 31 7d  2=2.34} {r2<>r1}
1cc0: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
1cd0: 72 2d 32 2e 31 33 20 7b 72 31 3d 31 2e 32 33 2c  r-2.13 {r1=1.23,
1ce0: 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32 3d 3d 72   r2=2.34} {r2==r
1cf0: 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  1} 0.test_expr e
1d00: 78 70 72 2d 32 2e 31 34 20 7b 72 31 3d 32 2e 33  xpr-2.14 {r1=2.3
1d10: 34 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32 3c  4, r2=2.34} {r2<
1d20: 72 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  r1} 0.test_expr 
1d30: 65 78 70 72 2d 32 2e 31 35 20 7b 72 31 3d 32 2e  expr-2.15 {r1=2.
1d40: 33 34 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32  34, r2=2.34} {r2
1d50: 3c 3d 72 31 7d 20 31 0a 74 65 73 74 5f 65 78 70  <=r1} 1.test_exp
1d60: 72 20 65 78 70 72 2d 32 2e 31 36 20 7b 72 31 3d  r expr-2.16 {r1=
1d70: 32 2e 33 34 2c 20 72 32 3d 32 2e 33 34 7d 20 7b  2.34, r2=2.34} {
1d80: 72 32 3e 72 31 7d 20 30 0a 74 65 73 74 5f 65 78  r2>r1} 0.test_ex
1d90: 70 72 20 65 78 70 72 2d 32 2e 31 37 20 7b 72 31  pr expr-2.17 {r1
1da0: 3d 32 2e 33 34 2c 20 72 32 3d 32 2e 33 34 7d 20  =2.34, r2=2.34} 
1db0: 7b 72 32 3e 3d 72 31 7d 20 31 0a 74 65 73 74 5f  {r2>=r1} 1.test_
1dc0: 65 78 70 72 20 65 78 70 72 2d 32 2e 31 38 20 7b  expr expr-2.18 {
1dd0: 72 31 3d 32 2e 33 34 2c 20 72 32 3d 32 2e 33 34  r1=2.34, r2=2.34
1de0: 7d 20 7b 72 32 21 3d 72 31 7d 20 30 0a 74 65 73  } {r2!=r1} 0.tes
1df0: 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 31 39  t_expr expr-2.19
1e00: 20 7b 72 31 3d 32 2e 33 34 2c 20 72 32 3d 32 2e   {r1=2.34, r2=2.
1e10: 33 34 7d 20 7b 72 32 3d 72 31 7d 20 31 0a 74 65  34} {r2=r1} 1.te
1e20: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 32  st_expr expr-2.2
1e30: 30 20 7b 72 31 3d 32 2e 33 34 2c 20 72 32 3d 32  0 {r1=2.34, r2=2
1e40: 2e 33 34 7d 20 7b 72 32 3c 3e 72 31 7d 20 30 0a  .34} {r2<>r1} 0.
1e50: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32  test_expr expr-2
1e60: 2e 32 31 20 7b 72 31 3d 32 2e 33 34 2c 20 72 32  .21 {r1=2.34, r2
1e70: 3d 32 2e 33 34 7d 20 7b 72 32 3d 3d 72 31 7d 20  =2.34} {r2==r1} 
1e80: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
1e90: 2d 32 2e 32 32 20 7b 72 31 3d 31 2e 32 33 2c 20  -2.22 {r1=1.23, 
1ea0: 72 32 3d 32 2e 33 34 7d 20 7b 6d 69 6e 28 72 31  r2=2.34} {min(r1
1eb0: 2c 72 32 2c 72 31 2b 72 32 2c 72 31 2d 72 32 29  ,r2,r1+r2,r1-r2)
1ec0: 7d 20 7b 2d 31 2e 31 31 7d 0a 74 65 73 74 5f 65  } {-1.11}.test_e
1ed0: 78 70 72 20 65 78 70 72 2d 32 2e 32 33 20 7b 72  xpr expr-2.23 {r
1ee0: 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33 34 7d  1=1.23, r2=2.34}
1ef0: 20 7b 6d 61 78 28 72 31 2c 72 32 2c 72 31 2b 72   {max(r1,r2,r1+r
1f00: 32 2c 72 31 2d 72 32 29 7d 20 7b 33 2e 35 37 7d  2,r1-r2)} {3.57}
1f10: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1f20: 32 2e 32 34 20 7b 72 31 3d 32 35 2e 30 2c 20 72  2.24 {r1=25.0, r
1f30: 32 3d 31 31 2e 30 7d 20 7b 72 31 25 72 32 7d 20  2=11.0} {r1%r2} 
1f40: 33 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  3.test_expr expr
1f50: 2d 32 2e 32 35 20 7b 72 31 3d 31 2e 32 33 2c 20  -2.25 {r1=1.23, 
1f60: 72 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73  r2=NULL} {coales
1f70: 63 65 28 72 31 2b 72 32 2c 39 39 2e 30 29 7d 20  ce(r1+r2,99.0)} 
1f80: 39 39 2e 30 0a 0a 74 65 73 74 5f 65 78 70 72 20  99.0..test_expr 
1f90: 65 78 70 72 2d 33 2e 31 20 7b 74 31 3d 27 61 62  expr-3.1 {t1='ab
1fa0: 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74  c', t2='xyz'} {t
1fb0: 31 3c 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  1<t2} 1.test_exp
1fc0: 72 20 65 78 70 72 2d 33 2e 32 20 7b 74 31 3d 27  r expr-3.2 {t1='
1fd0: 78 79 7a 27 2c 20 74 32 3d 27 61 62 63 27 7d 20  xyz', t2='abc'} 
1fe0: 7b 74 31 3c 74 32 7d 20 30 0a 74 65 73 74 5f 65  {t1<t2} 0.test_e
1ff0: 78 70 72 20 65 78 70 72 2d 33 2e 33 20 7b 74 31  xpr expr-3.3 {t1
2000: 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 62 63 27  ='abc', t2='abc'
2010: 7d 20 7b 74 31 3c 74 32 7d 20 30 0a 74 65 73 74  } {t1<t2} 0.test
2020: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 34 20 7b  _expr expr-3.4 {
2030: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 78 79  t1='abc', t2='xy
2040: 7a 27 7d 20 7b 74 31 3c 3d 74 32 7d 20 31 0a 74  z'} {t1<=t2} 1.t
2050: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e  est_expr expr-3.
2060: 35 20 7b 74 31 3d 27 78 79 7a 27 2c 20 74 32 3d  5 {t1='xyz', t2=
2070: 27 61 62 63 27 7d 20 7b 74 31 3c 3d 74 32 7d 20  'abc'} {t1<=t2} 
2080: 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  0.test_expr expr
2090: 2d 33 2e 36 20 7b 74 31 3d 27 61 62 63 27 2c 20  -3.6 {t1='abc', 
20a0: 74 32 3d 27 61 62 63 27 7d 20 7b 74 31 3c 3d 74  t2='abc'} {t1<=t
20b0: 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 1.test_expr e
20c0: 78 70 72 2d 33 2e 37 20 7b 74 31 3d 27 61 62 63  xpr-3.7 {t1='abc
20d0: 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31  ', t2='xyz'} {t1
20e0: 3e 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72  >t2} 0.test_expr
20f0: 20 65 78 70 72 2d 33 2e 38 20 7b 74 31 3d 27 78   expr-3.8 {t1='x
2100: 79 7a 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b  yz', t2='abc'} {
2110: 74 31 3e 74 32 7d 20 31 0a 74 65 73 74 5f 65 78  t1>t2} 1.test_ex
2120: 70 72 20 65 78 70 72 2d 33 2e 39 20 7b 74 31 3d  pr expr-3.9 {t1=
2130: 27 61 62 63 27 2c 20 74 32 3d 27 61 62 63 27 7d  'abc', t2='abc'}
2140: 20 7b 74 31 3e 74 32 7d 20 30 0a 74 65 73 74 5f   {t1>t2} 0.test_
2150: 65 78 70 72 20 65 78 70 72 2d 33 2e 31 30 20 7b  expr expr-3.10 {
2160: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 78 79  t1='abc', t2='xy
2170: 7a 27 7d 20 7b 74 31 3e 3d 74 32 7d 20 30 0a 74  z'} {t1>=t2} 0.t
2180: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e  est_expr expr-3.
2190: 31 31 20 7b 74 31 3d 27 78 79 7a 27 2c 20 74 32  11 {t1='xyz', t2
21a0: 3d 27 61 62 63 27 7d 20 7b 74 31 3e 3d 74 32 7d  ='abc'} {t1>=t2}
21b0: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
21c0: 72 2d 33 2e 31 32 20 7b 74 31 3d 27 61 62 63 27  r-3.12 {t1='abc'
21d0: 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31 3e  , t2='abc'} {t1>
21e0: 3d 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72  =t2} 1.test_expr
21f0: 20 65 78 70 72 2d 33 2e 31 33 20 7b 74 31 3d 27   expr-3.13 {t1='
2200: 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20  abc', t2='xyz'} 
2210: 7b 74 31 3d 74 32 7d 20 30 0a 74 65 73 74 5f 65  {t1=t2} 0.test_e
2220: 78 70 72 20 65 78 70 72 2d 33 2e 31 34 20 7b 74  xpr expr-3.14 {t
2230: 31 3d 27 78 79 7a 27 2c 20 74 32 3d 27 61 62 63  1='xyz', t2='abc
2240: 27 7d 20 7b 74 31 3d 74 32 7d 20 30 0a 74 65 73  '} {t1=t2} 0.tes
2250: 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 31 35  t_expr expr-3.15
2260: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27   {t1='abc', t2='
2270: 61 62 63 27 7d 20 7b 74 31 3d 74 32 7d 20 31 0a  abc'} {t1=t2} 1.
2280: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33  test_expr expr-3
2290: 2e 31 36 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  .16 {t1='abc', t
22a0: 32 3d 27 78 79 7a 27 7d 20 7b 74 31 3d 3d 74 32  2='xyz'} {t1==t2
22b0: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
22c0: 70 72 2d 33 2e 31 37 20 7b 74 31 3d 27 78 79 7a  pr-3.17 {t1='xyz
22d0: 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31  ', t2='abc'} {t1
22e0: 3d 3d 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  ==t2} 0.test_exp
22f0: 72 20 65 78 70 72 2d 33 2e 31 38 20 7b 74 31 3d  r expr-3.18 {t1=
2300: 27 61 62 63 27 2c 20 74 32 3d 27 61 62 63 27 7d  'abc', t2='abc'}
2310: 20 7b 74 31 3d 3d 74 32 7d 20 31 0a 74 65 73 74   {t1==t2} 1.test
2320: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 31 39 20  _expr expr-3.19 
2330: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 78  {t1='abc', t2='x
2340: 79 7a 27 7d 20 7b 74 31 3c 3e 74 32 7d 20 31 0a  yz'} {t1<>t2} 1.
2350: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33  test_expr expr-3
2360: 2e 32 30 20 7b 74 31 3d 27 78 79 7a 27 2c 20 74  .20 {t1='xyz', t
2370: 32 3d 27 61 62 63 27 7d 20 7b 74 31 3c 3e 74 32  2='abc'} {t1<>t2
2380: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
2390: 70 72 2d 33 2e 32 31 20 7b 74 31 3d 27 61 62 63  pr-3.21 {t1='abc
23a0: 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31  ', t2='abc'} {t1
23b0: 3c 3e 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  <>t2} 0.test_exp
23c0: 72 20 65 78 70 72 2d 33 2e 32 32 20 7b 74 31 3d  r expr-3.22 {t1=
23d0: 27 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d  'abc', t2='xyz'}
23e0: 20 7b 74 31 21 3d 74 32 7d 20 31 0a 74 65 73 74   {t1!=t2} 1.test
23f0: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 32 33 20  _expr expr-3.23 
2400: 7b 74 31 3d 27 78 79 7a 27 2c 20 74 32 3d 27 61  {t1='xyz', t2='a
2410: 62 63 27 7d 20 7b 74 31 21 3d 74 32 7d 20 31 0a  bc'} {t1!=t2} 1.
2420: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33  test_expr expr-3
2430: 2e 32 34 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  .24 {t1='abc', t
2440: 32 3d 27 61 62 63 27 7d 20 7b 74 31 21 3d 74 32  2='abc'} {t1!=t2
2450: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
2460: 70 72 2d 33 2e 32 35 20 7b 74 31 3d 4e 55 4c 4c  pr-3.25 {t1=NULL
2470: 2c 20 74 32 3d 27 68 69 27 7d 20 7b 74 31 20 69  , t2='hi'} {t1 i
2480: 73 6e 75 6c 6c 7d 20 31 0a 74 65 73 74 5f 65 78  snull} 1.test_ex
2490: 70 72 20 65 78 70 72 2d 33 2e 32 35 62 20 7b 74  pr expr-3.25b {t
24a0: 31 3d 4e 55 4c 4c 2c 20 74 32 3d 27 68 69 27 7d  1=NULL, t2='hi'}
24b0: 20 7b 74 31 20 69 73 20 6e 75 6c 6c 7d 20 31 0a   {t1 is null} 1.
24c0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33  test_expr expr-3
24d0: 2e 32 36 20 7b 74 31 3d 4e 55 4c 4c 2c 20 74 32  .26 {t1=NULL, t2
24e0: 3d 27 68 69 27 7d 20 7b 74 32 20 69 73 6e 75 6c  ='hi'} {t2 isnul
24f0: 6c 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  l} 0.test_expr e
2500: 78 70 72 2d 33 2e 32 37 20 7b 74 31 3d 4e 55 4c  xpr-3.27 {t1=NUL
2510: 4c 2c 20 74 32 3d 27 68 69 27 7d 20 7b 74 31 20  L, t2='hi'} {t1 
2520: 6e 6f 74 6e 75 6c 6c 7d 20 30 0a 74 65 73 74 5f  notnull} 0.test_
2530: 65 78 70 72 20 65 78 70 72 2d 33 2e 32 38 20 7b  expr expr-3.28 {
2540: 74 31 3d 4e 55 4c 4c 2c 20 74 32 3d 27 68 69 27  t1=NULL, t2='hi'
2550: 7d 20 7b 74 32 20 6e 6f 74 6e 75 6c 6c 7d 20 31  } {t2 notnull} 1
2560: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
2570: 33 2e 32 38 62 20 7b 74 31 3d 4e 55 4c 4c 2c 20  3.28b {t1=NULL, 
2580: 74 32 3d 27 68 69 27 7d 20 7b 74 32 20 69 73 20  t2='hi'} {t2 is 
2590: 6e 6f 74 20 6e 75 6c 6c 7d 20 31 0a 74 65 73 74  not null} 1.test
25a0: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 32 39 20  _expr expr-3.29 
25b0: 7b 74 31 3d 27 78 79 7a 27 2c 20 74 32 3d 27 61  {t1='xyz', t2='a
25c0: 62 63 27 7d 20 7b 74 31 7c 7c 74 32 7d 20 7b 78  bc'} {t1||t2} {x
25d0: 79 7a 61 62 63 7d 0a 74 65 73 74 5f 65 78 70 72  yzabc}.test_expr
25e0: 20 65 78 70 72 2d 33 2e 33 30 20 7b 74 31 3d 4e   expr-3.30 {t1=N
25f0: 55 4c 4c 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b  ULL, t2='abc'} {
2600: 74 31 7c 7c 74 32 7d 20 7b 7b 7d 7d 0a 74 65 73  t1||t2} {{}}.tes
2610: 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 33 31  t_expr expr-3.31
2620: 20 7b 74 31 3d 27 78 79 7a 27 2c 20 74 32 3d 4e   {t1='xyz', t2=N
2630: 55 4c 4c 7d 20 7b 74 31 7c 7c 74 32 7d 20 7b 7b  ULL} {t1||t2} {{
2640: 7d 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  }}.test_expr exp
2650: 72 2d 33 2e 33 32 20 7b 74 31 3d 27 78 79 7a 27  r-3.32 {t1='xyz'
2660: 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31 7c  , t2='abc'} {t1|
2670: 7c 27 20 68 69 20 27 7c 7c 74 32 7d 20 7b 7b 78  |' hi '||t2} {{x
2680: 79 7a 20 68 69 20 61 62 63 7d 7d 0a 74 65 73 74  yz hi abc}}.test
2690: 5f 65 78 70 72 20 65 70 78 72 2d 33 2e 33 33 20  _expr epxr-3.33 
26a0: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e 55  {t1='abc', t2=NU
26b0: 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 74 31  LL} {coalesce(t1
26c0: 3c 74 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74  <t2,99)} 99.test
26d0: 5f 65 78 70 72 20 65 70 78 72 2d 33 2e 33 34 20  _expr epxr-3.34 
26e0: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e 55  {t1='abc', t2=NU
26f0: 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 74 32  LL} {coalesce(t2
2700: 3c 74 31 2c 39 39 29 7d 20 39 39 0a 74 65 73 74  <t1,99)} 99.test
2710: 5f 65 78 70 72 20 65 70 78 72 2d 33 2e 33 35 20  _expr epxr-3.35 
2720: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e 55  {t1='abc', t2=NU
2730: 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 74 31  LL} {coalesce(t1
2740: 3e 74 32 2c 39 39 29 7d 20 39 39 0a 74 65 73 74  >t2,99)} 99.test
2750: 5f 65 78 70 72 20 65 70 78 72 2d 33 2e 33 36 20  _expr epxr-3.36 
2760: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e 55  {t1='abc', t2=NU
2770: 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 74 32  LL} {coalesce(t2
2780: 3e 74 31 2c 39 39 29 7d 20 39 39 0a 74 65 73 74  >t1,99)} 99.test
2790: 5f 65 78 70 72 20 65 70 78 72 2d 33 2e 33 37 20  _expr epxr-3.37 
27a0: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e 55  {t1='abc', t2=NU
27b0: 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 74 31  LL} {coalesce(t1
27c0: 3c 3d 74 32 2c 39 39 29 7d 20 39 39 0a 74 65 73  <=t2,99)} 99.tes
27d0: 74 5f 65 78 70 72 20 65 70 78 72 2d 33 2e 33 38  t_expr epxr-3.38
27e0: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 4e   {t1='abc', t2=N
27f0: 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28 74  ULL} {coalesce(t
2800: 32 3c 3d 74 31 2c 39 39 29 7d 20 39 39 0a 74 65  2<=t1,99)} 99.te
2810: 73 74 5f 65 78 70 72 20 65 70 78 72 2d 33 2e 33  st_expr epxr-3.3
2820: 39 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d  9 {t1='abc', t2=
2830: 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65 28  NULL} {coalesce(
2840: 74 31 3e 3d 74 32 2c 39 39 29 7d 20 39 39 0a 74  t1>=t2,99)} 99.t
2850: 65 73 74 5f 65 78 70 72 20 65 70 78 72 2d 33 2e  est_expr epxr-3.
2860: 34 30 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32  40 {t1='abc', t2
2870: 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63 65  =NULL} {coalesce
2880: 28 74 32 3e 3d 74 31 2c 39 39 29 7d 20 39 39 0a  (t2>=t1,99)} 99.
2890: 74 65 73 74 5f 65 78 70 72 20 65 70 78 72 2d 33  test_expr epxr-3
28a0: 2e 34 31 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  .41 {t1='abc', t
28b0: 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73 63  2=NULL} {coalesc
28c0: 65 28 74 31 3d 3d 74 32 2c 39 39 29 7d 20 39 39  e(t1==t2,99)} 99
28d0: 0a 74 65 73 74 5f 65 78 70 72 20 65 70 78 72 2d  .test_expr epxr-
28e0: 33 2e 34 32 20 7b 74 31 3d 27 61 62 63 27 2c 20  3.42 {t1='abc', 
28f0: 74 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65 73  t2=NULL} {coales
2900: 63 65 28 74 32 3d 3d 74 31 2c 39 39 29 7d 20 39  ce(t2==t1,99)} 9
2910: 39 0a 74 65 73 74 5f 65 78 70 72 20 65 70 78 72  9.test_expr epxr
2920: 2d 33 2e 34 33 20 7b 74 31 3d 27 61 62 63 27 2c  -3.43 {t1='abc',
2930: 20 74 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c 65   t2=NULL} {coale
2940: 73 63 65 28 74 31 21 3d 74 32 2c 39 39 29 7d 20  sce(t1!=t2,99)} 
2950: 39 39 0a 74 65 73 74 5f 65 78 70 72 20 65 70 78  99.test_expr epx
2960: 72 2d 33 2e 34 34 20 7b 74 31 3d 27 61 62 63 27  r-3.44 {t1='abc'
2970: 2c 20 74 32 3d 4e 55 4c 4c 7d 20 7b 63 6f 61 6c  , t2=NULL} {coal
2980: 65 73 63 65 28 74 32 21 3d 74 31 2c 39 39 29 7d  esce(t2!=t1,99)}
2990: 20 39 39 0a 0a 0a 74 65 73 74 5f 65 78 70 72 20   99...test_expr 
29a0: 65 78 70 72 2d 34 2e 31 20 7b 74 31 3d 27 61 62  expr-4.1 {t1='ab
29b0: 63 27 2c 20 74 32 3d 27 41 62 63 27 7d 20 7b 74  c', t2='Abc'} {t
29c0: 31 3c 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  1<t2} 0.test_exp
29d0: 72 20 65 78 70 72 2d 34 2e 32 20 7b 74 31 3d 27  r expr-4.2 {t1='
29e0: 61 62 63 27 2c 20 74 32 3d 27 41 62 63 27 7d 20  abc', t2='Abc'} 
29f0: 7b 74 31 3e 74 32 7d 20 31 0a 74 65 73 74 5f 65  {t1>t2} 1.test_e
2a00: 78 70 72 20 65 78 70 72 2d 34 2e 33 20 7b 74 31  xpr expr-4.3 {t1
2a10: 3d 27 61 62 63 27 2c 20 74 32 3d 27 42 62 63 27  ='abc', t2='Bbc'
2a20: 7d 20 7b 74 31 3c 74 32 7d 20 30 0a 74 65 73 74  } {t1<t2} 0.test
2a30: 5f 65 78 70 72 20 65 78 70 72 2d 34 2e 34 20 7b  _expr expr-4.4 {
2a40: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 42 62  t1='abc', t2='Bb
2a50: 63 27 7d 20 7b 74 31 3e 74 32 7d 20 31 0a 74 65  c'} {t1>t2} 1.te
2a60: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 34 2e 35  st_expr expr-4.5
2a70: 20 7b 74 31 3d 27 30 27 2c 20 74 32 3d 27 30 2e   {t1='0', t2='0.
2a80: 30 27 7d 20 7b 74 31 3d 3d 74 32 7d 20 30 0a 74  0'} {t1==t2} 0.t
2a90: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 34 2e  est_expr expr-4.
2aa0: 36 20 7b 74 31 3d 27 30 2e 30 30 30 27 2c 20 74  6 {t1='0.000', t
2ab0: 32 3d 27 30 2e 30 27 7d 20 7b 74 31 3d 3d 74 32  2='0.0'} {t1==t2
2ac0: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
2ad0: 70 72 2d 34 2e 37 20 7b 74 31 3d 27 20 30 2e 30  pr-4.7 {t1=' 0.0
2ae0: 30 30 27 2c 20 74 32 3d 27 20 30 2e 30 27 7d 20  00', 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 38 20 7b 74  expr expr-4.8 {t
2b10: 31 3d 27 30 2e 30 27 2c 20 74 32 3d 27 61 62 63  1='0.0', t2='abc
2b20: 27 7d 20 7b 74 31 3c 74 32 7d 20 31 0a 74 65 73  '} {t1<t2} 1.tes
2b30: 74 5f 65 78 70 72 20 65 78 70 72 2d 34 2e 39 20  t_expr expr-4.9 
2b40: 7b 74 31 3d 27 30 2e 30 27 2c 20 74 32 3d 27 61  {t1='0.0', t2='a
2b50: 62 63 27 7d 20 7b 74 31 3d 3d 74 32 7d 20 30 0a  bc'} {t1==t2} 0.
2b60: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 34  test_expr expr-4
2b70: 2e 31 30 20 7b 72 31 3d 27 30 2e 30 27 2c 20 72  .10 {r1='0.0', r
2b80: 32 3d 27 61 62 63 27 7d 20 7b 72 31 3e 72 32 7d  2='abc'} {r1>r2}
2b90: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
2ba0: 72 2d 34 2e 31 31 20 7b 72 31 3d 27 61 62 63 27  r-4.11 {r1='abc'
2bb0: 2c 20 72 32 3d 27 41 62 63 27 7d 20 7b 72 31 3c  , r2='Abc'} {r1<
2bc0: 72 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  r2} 0.test_expr 
2bd0: 65 78 70 72 2d 34 2e 31 32 20 7b 72 31 3d 27 61  expr-4.12 {r1='a
2be0: 62 63 27 2c 20 72 32 3d 27 41 62 63 27 7d 20 7b  bc', r2='Abc'} {
2bf0: 72 31 3e 72 32 7d 20 31 0a 74 65 73 74 5f 65 78  r1>r2} 1.test_ex
2c00: 70 72 20 65 78 70 72 2d 34 2e 31 33 20 7b 72 31  pr expr-4.13 {r1
2c10: 3d 27 61 62 63 27 2c 20 72 32 3d 27 42 62 63 27  ='abc', r2='Bbc'
2c20: 7d 20 7b 72 31 3c 72 32 7d 20 30 0a 74 65 73 74  } {r1<r2} 0.test
2c30: 5f 65 78 70 72 20 65 78 70 72 2d 34 2e 31 34 20  _expr expr-4.14 
2c40: 7b 72 31 3d 27 61 62 63 27 2c 20 72 32 3d 27 42  {r1='abc', r2='B
2c50: 62 63 27 7d 20 7b 72 31 3e 72 32 7d 20 31 0a 74  bc'} {r1>r2} 1.t
2c60: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 34 2e  est_expr expr-4.
2c70: 31 35 20 7b 72 31 3d 27 30 27 2c 20 72 32 3d 27  15 {r1='0', r2='
2c80: 30 2e 30 27 7d 20 7b 72 31 3d 3d 72 32 7d 20 31  0.0'} {r1==r2} 1
2c90: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
2ca0: 34 2e 31 36 20 7b 72 31 3d 27 30 2e 30 30 30 27  4.16 {r1='0.000'
2cb0: 2c 20 72 32 3d 27 30 2e 30 27 7d 20 7b 72 31 3d  , r2='0.0'} {r1=
2cc0: 3d 72 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72  =r2} 1.test_expr
2cd0: 20 65 78 70 72 2d 34 2e 31 37 20 7b 72 31 3d 27   expr-4.17 {r1='
2ce0: 20 30 2e 30 30 30 27 2c 20 72 32 3d 27 20 30 2e   0.000', r2=' 0.
2cf0: 30 27 7d 20 7b 72 31 3d 3d 72 32 7d 20 30 0a 74  0'} {r1==r2} 0.t
2d00: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 34 2e  est_expr expr-4.
2d10: 31 38 20 7b 72 31 3d 27 30 2e 30 27 2c 20 72 32  18 {r1='0.0', r2
2d20: 3d 27 61 62 63 27 7d 20 7b 72 31 3c 72 32 7d 20  ='abc'} {r1<r2} 
2d30: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
2d40: 2d 34 2e 31 39 20 7b 72 31 3d 27 30 2e 30 27 2c  -4.19 {r1='0.0',
2d50: 20 72 32 3d 27 61 62 63 27 7d 20 7b 72 31 3d 3d   r2='abc'} {r1==
2d60: 72 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  r2} 0.test_expr 
2d70: 65 78 70 72 2d 34 2e 32 30 20 7b 72 31 3d 27 30  expr-4.20 {r1='0
2d80: 2e 30 27 2c 20 72 32 3d 27 61 62 63 27 7d 20 7b  .0', r2='abc'} {
2d90: 72 31 3e 72 32 7d 20 30 0a 0a 74 65 73 74 5f 65  r1>r2} 0..test_e
2da0: 78 70 72 20 65 78 70 72 2d 35 2e 31 20 7b 74 31  xpr expr-5.1 {t1
2db0: 3d 27 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27  ='abc', t2='xyz'
2dc0: 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 30  } {t1 LIKE t2} 0
2dd0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
2de0: 35 2e 32 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  5.2 {t1='abc', t
2df0: 32 3d 27 41 42 43 27 7d 20 7b 74 31 20 4c 49 4b  2='ABC'} {t1 LIK
2e00: 45 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  E t2} 1.test_exp
2e10: 72 20 65 78 70 72 2d 35 2e 33 20 7b 74 31 3d 27  r expr-5.3 {t1='
2e20: 61 62 63 27 2c 20 74 32 3d 27 41 5f 43 27 7d 20  abc', t2='A_C'} 
2e30: 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 31 0a 74  {t1 LIKE t2} 1.t
2e40: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e  est_expr expr-5.
2e50: 34 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d  4 {t1='abc', t2=
2e60: 27 61 62 63 5f 27 7d 20 7b 74 31 20 4c 49 4b 45  'abc_'} {t1 LIKE
2e70: 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72   t2} 0.test_expr
2e80: 20 65 78 70 72 2d 35 2e 35 20 7b 74 31 3d 27 61   expr-5.5 {t1='a
2e90: 62 63 27 2c 20 74 32 3d 27 41 25 43 27 7d 20 7b  bc', t2='A%C'} {
2ea0: 74 31 20 4c 49 4b 45 20 74 32 7d 20 31 0a 74 65  t1 LIKE t2} 1.te
2eb0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 35  st_expr expr-5.5
2ec0: 62 20 7b 74 31 3d 27 61 63 27 2c 20 74 32 3d 27  b {t1='ac', t2='
2ed0: 41 25 43 27 7d 20 7b 74 31 20 4c 49 4b 45 20 74  A%C'} {t1 LIKE t
2ee0: 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 1.test_expr e
2ef0: 78 70 72 2d 35 2e 36 20 7b 74 31 3d 27 61 62 78  xpr-5.6 {t1='abx
2f00: 79 7a 7a 79 63 27 2c 20 74 32 3d 27 41 25 43 27  yzzyc', t2='A%C'
2f10: 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 31  } {t1 LIKE t2} 1
2f20: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
2f30: 35 2e 37 20 7b 74 31 3d 27 61 62 78 79 7a 7a 79  5.7 {t1='abxyzzy
2f40: 27 2c 20 74 32 3d 27 41 25 43 27 7d 20 7b 74 31  ', t2='A%C'} {t1
2f50: 20 4c 49 4b 45 20 74 32 7d 20 30 0a 74 65 73 74   LIKE t2} 0.test
2f60: 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 38 20 7b  _expr expr-5.8 {
2f70: 74 31 3d 27 61 62 78 79 7a 7a 79 63 78 27 2c 20  t1='abxyzzycx', 
2f80: 74 32 3d 27 41 25 43 27 7d 20 7b 74 31 20 4c 49  t2='A%C'} {t1 LI
2f90: 4b 45 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78  KE t2} 0.test_ex
2fa0: 70 72 20 65 78 70 72 2d 35 2e 38 62 20 7b 74 31  pr expr-5.8b {t1
2fb0: 3d 27 61 62 78 79 7a 7a 79 63 79 27 2c 20 74 32  ='abxyzzycy', t2
2fc0: 3d 27 41 25 43 58 27 7d 20 7b 74 31 20 4c 49 4b  ='A%CX'} {t1 LIK
2fd0: 45 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  E t2} 0.test_exp
2fe0: 72 20 65 78 70 72 2d 35 2e 39 20 7b 74 31 3d 27  r expr-5.9 {t1='
2ff0: 61 62 63 27 2c 20 74 32 3d 27 41 25 5f 43 27 7d  abc', t2='A%_C'}
3000: 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 31 0a   {t1 LIKE t2} 1.
3010: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35  test_expr expr-5
3020: 2e 39 62 20 7b 74 31 3d 27 61 63 27 2c 20 74 32  .9b {t1='ac', t2
3030: 3d 27 41 25 5f 43 27 7d 20 7b 74 31 20 4c 49 4b  ='A%_C'} {t1 LIK
3040: 45 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  E t2} 0.test_exp
3050: 72 20 65 78 70 72 2d 35 2e 31 30 20 7b 74 31 3d  r expr-5.10 {t1=
3060: 27 61 62 78 79 7a 7a 79 63 27 2c 20 74 32 3d 27  'abxyzzyc', t2='
3070: 41 25 5f 43 27 7d 20 7b 74 31 20 4c 49 4b 45 20  A%_C'} {t1 LIKE 
3080: 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  t2} 1.test_expr 
3090: 65 78 70 72 2d 35 2e 31 31 20 7b 74 31 3d 27 61  expr-5.11 {t1='a
30a0: 62 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b  bc', t2='xyz'} {
30b0: 74 31 20 4e 4f 54 20 4c 49 4b 45 20 74 32 7d 20  t1 NOT LIKE t2} 
30c0: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
30d0: 2d 35 2e 31 32 20 7b 74 31 3d 27 61 62 63 27 2c  -5.12 {t1='abc',
30e0: 20 74 32 3d 27 41 42 43 27 7d 20 7b 74 31 20 4e   t2='ABC'} {t1 N
30f0: 4f 54 20 4c 49 4b 45 20 74 32 7d 20 30 0a 0a 23  OT LIKE t2} 0..#
3100: 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74   The following t
3110: 65 73 74 73 20 6f 6e 6c 79 20 77 6f 72 6b 20 6f  ests only work o
3120: 6e 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 54 43  n versions of TC
3130: 4c 20 74 68 61 74 20 73 75 70 70 6f 72 74 0a 23  L that support.#
3140: 20 55 6e 69 63 6f 64 65 20 61 6e 64 20 53 51 4c   Unicode and SQL
3150: 69 74 65 20 63 6f 6e 66 69 67 75 72 65 64 20 66  ite configured f
3160: 6f 72 20 55 54 46 2d 38 20 73 75 70 70 6f 72 74  or UTF-8 support
3170: 2e 0a 23 0a 69 66 20 7b 22 5c 75 31 32 33 34 22  ..#.if {"\u1234"
3180: 21 3d 22 75 31 32 33 34 22 20 26 26 20 5b 73 71  !="u1234" && [sq
3190: 6c 69 74 65 20 2d 65 6e 63 6f 64 69 6e 67 5d 3d  lite -encoding]=
31a0: 3d 22 55 54 46 2d 38 22 7d 20 7b 0a 20 20 74 65  ="UTF-8"} {.  te
31b0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 31  st_expr expr-5.1
31c0: 33 20 22 74 31 3d 27 61 5c 75 30 30 38 30 63 27  3 "t1='a\u0080c'
31d0: 2c 20 74 32 3d 27 41 5f 43 27 22 20 7b 74 31 20  , t2='A_C'" {t1 
31e0: 4c 49 4b 45 20 74 32 7d 20 31 0a 20 20 74 65 73  LIKE t2} 1.  tes
31f0: 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 31 34  t_expr expr-5.14
3200: 20 22 74 31 3d 27 61 5c 75 30 37 46 46 63 27 2c   "t1='a\u07FFc',
3210: 20 74 32 3d 27 41 5f 43 27 22 20 7b 74 31 20 4c   t2='A_C'" {t1 L
3220: 49 4b 45 20 74 32 7d 20 31 0a 20 20 74 65 73 74  IKE t2} 1.  test
3230: 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 31 35 20  _expr expr-5.15 
3240: 22 74 31 3d 27 61 5c 75 30 38 30 30 63 27 2c 20  "t1='a\u0800c', 
3250: 74 32 3d 27 41 5f 43 27 22 20 7b 74 31 20 4c 49  t2='A_C'" {t1 LI
3260: 4b 45 20 74 32 7d 20 31 0a 20 20 74 65 73 74 5f  KE t2} 1.  test_
3270: 65 78 70 72 20 65 78 70 72 2d 35 2e 31 36 20 22  expr expr-5.16 "
3280: 74 31 3d 27 61 5c 75 46 46 46 46 63 27 2c 20 74  t1='a\uFFFFc', t
3290: 32 3d 27 41 5f 43 27 22 20 7b 74 31 20 4c 49 4b  2='A_C'" {t1 LIK
32a0: 45 20 74 32 7d 20 31 0a 20 20 74 65 73 74 5f 65  E t2} 1.  test_e
32b0: 78 70 72 20 65 78 70 72 2d 35 2e 31 37 20 22 74  xpr expr-5.17 "t
32c0: 31 3d 27 61 5c 75 30 30 38 30 27 2c 20 74 32 3d  1='a\u0080', t2=
32d0: 27 41 5f 5f 27 22 20 7b 74 31 20 4c 49 4b 45 20  'A__'" {t1 LIKE 
32e0: 74 32 7d 20 30 0a 20 20 74 65 73 74 5f 65 78 70  t2} 0.  test_exp
32f0: 72 20 65 78 70 72 2d 35 2e 31 38 20 22 74 31 3d  r expr-5.18 "t1=
3300: 27 61 5c 75 30 37 46 46 27 2c 20 74 32 3d 27 41  'a\u07FF', t2='A
3310: 5f 5f 27 22 20 7b 74 31 20 4c 49 4b 45 20 74 32  __'" {t1 LIKE t2
3320: 7d 20 30 0a 20 20 74 65 73 74 5f 65 78 70 72 20  } 0.  test_expr 
3330: 65 78 70 72 2d 35 2e 31 39 20 22 74 31 3d 27 61  expr-5.19 "t1='a
3340: 5c 75 30 38 30 30 27 2c 20 74 32 3d 27 41 5f 5f  \u0800', t2='A__
3350: 27 22 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20  '" {t1 LIKE t2} 
3360: 30 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78  0.  test_expr ex
3370: 70 72 2d 35 2e 32 30 20 22 74 31 3d 27 61 5c 75  pr-5.20 "t1='a\u
3380: 46 46 46 46 27 2c 20 74 32 3d 27 41 5f 5f 27 22  FFFF', t2='A__'"
3390: 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 30 0a   {t1 LIKE t2} 0.
33a0: 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72    test_expr expr
33b0: 2d 35 2e 32 31 20 22 74 31 3d 27 61 78 5c 75 41  -5.21 "t1='ax\uA
33c0: 42 43 44 27 2c 20 74 32 3d 27 41 5f 5c 75 41 42  BCD', t2='A_\uAB
33d0: 43 44 27 22 20 7b 74 31 20 4c 49 4b 45 20 74 32  CD'" {t1 LIKE t2
33e0: 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20  } 1.  test_expr 
33f0: 65 78 70 72 2d 35 2e 32 32 20 22 74 31 3d 27 61  expr-5.22 "t1='a
3400: 78 5c 75 31 32 33 34 27 2c 20 74 32 3d 27 41 25  x\u1234', t2='A%
3410: 5c 75 31 32 33 34 27 22 20 7b 74 31 20 4c 49 4b  \u1234'" {t1 LIK
3420: 45 20 74 32 7d 20 31 0a 20 20 74 65 73 74 5f 65  E t2} 1.  test_e
3430: 78 70 72 20 65 78 70 72 2d 35 2e 32 33 20 22 74  xpr expr-5.23 "t
3440: 31 3d 27 61 78 5c 75 46 45 44 43 27 2c 20 74 32  1='ax\uFEDC', t2
3450: 3d 27 41 5f 25 27 22 20 7b 74 31 20 4c 49 4b 45  ='A_%'" {t1 LIKE
3460: 20 74 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78   t2} 1.  test_ex
3470: 70 72 20 65 78 70 72 2d 35 2e 32 34 20 22 74 31  pr expr-5.24 "t1
3480: 3d 27 61 78 5c 75 46 45 44 43 79 5c 75 46 45 44  ='ax\uFEDCy\uFED
3490: 43 27 2c 20 74 32 3d 27 41 25 5c 75 46 45 44 43  C', t2='A%\uFEDC
34a0: 27 22 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20  '" {t1 LIKE t2} 
34b0: 31 0a 7d 0a 0a 23 20 54 68 65 73 65 73 20 74 65  1.}..# Theses te
34c0: 73 74 73 20 61 72 65 20 66 6f 72 20 77 68 65 6e  sts are for when
34d0: 20 53 51 4c 69 74 65 20 61 73 73 75 6d 65 73 20   SQLite assumes 
34e0: 69 73 6f 38 38 35 39 20 63 68 61 72 61 63 74 65  iso8859 characte
34f0: 72 73 2e 0a 23 0a 69 66 20 7b 5b 73 71 6c 69 74  rs..#.if {[sqlit
3500: 65 20 2d 65 6e 63 6f 64 69 6e 67 5d 3d 3d 22 69  e -encoding]=="i
3510: 73 6f 38 38 35 39 22 7d 20 7b 0a 20 20 73 65 74  so8859"} {.  set
3520: 20 67 6f 20 31 0a 20 20 69 66 20 7b 5b 69 6e 66   go 1.  if {[inf
3530: 6f 20 63 6f 6d 6d 61 6e 64 20 65 6e 63 6f 64 69  o command encodi
3540: 6e 67 5d 21 3d 22 22 7d 20 7b 0a 20 20 20 20 69  ng]!=""} {.    i
3550: 66 20 7b 5b 63 61 74 63 68 20 7b 65 6e 63 6f 64  f {[catch {encod
3560: 69 6e 67 20 73 79 73 74 65 6d 20 69 73 6f 38 38  ing system iso88
3570: 35 39 2d 31 7d 20 6d 73 67 5d 7d 20 7b 0a 20 20  59-1} msg]} {.  
3580: 20 20 20 20 70 75 74 73 20 22 73 6b 69 70 70 69      puts "skippi
3590: 6e 67 20 74 65 73 74 73 20 6f 66 20 4c 49 4b 45  ng tests of LIKE
35a0: 20 6f 70 65 72 61 74 6f 72 3a 20 24 6d 73 67 22   operator: $msg"
35b0: 0a 20 20 20 20 20 20 73 65 74 20 67 6f 20 30 0a  .      set go 0.
35c0: 20 20 20 20 7d 0a 20 20 7d 0a 20 20 69 66 20 7b      }.  }.  if {
35d0: 24 67 6f 7d 20 7b 0a 20 20 20 20 74 65 73 74 5f  $go} {.    test_
35e0: 65 78 70 72 20 65 78 70 72 2d 35 2e 35 30 20 22  expr expr-5.50 "
35f0: 74 31 3d 27 61 5c 32 36 36 63 27 2c 20 74 32 3d  t1='a\266c', t2=
3600: 27 41 5f 43 27 22 20 20 7b 74 31 20 4c 49 4b 45  'A_C'"  {t1 LIKE
3610: 20 74 32 7d 20 31 0a 20 20 20 20 74 65 73 74 5f   t2} 1.    test_
3620: 65 78 70 72 20 65 78 70 72 2d 35 2e 35 31 20 22  expr expr-5.51 "
3630: 74 31 3d 27 61 5c 33 34 37 27 2c 20 74 32 3d 27  t1='a\347', t2='
3640: 41 5f 27 22 20 20 7b 74 31 20 4c 49 4b 45 20 74  A_'"  {t1 LIKE t
3650: 32 7d 20 31 0a 20 20 20 20 74 65 73 74 5f 65 78  2} 1.    test_ex
3660: 70 72 20 65 78 70 72 2d 35 2e 35 32 20 22 74 31  pr expr-5.52 "t1
3670: 3d 27 61 78 5c 33 35 31 27 2c 20 74 32 3d 27 41  ='ax\351', t2='A
3680: 5f 5c 33 35 31 27 22 20 20 7b 74 31 20 4c 49 4b  _\351'"  {t1 LIK
3690: 45 20 74 32 7d 20 31 0a 20 20 20 20 74 65 73 74  E t2} 1.    test
36a0: 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 35 33 20  _expr expr-5.53 
36b0: 22 74 31 3d 27 61 78 5c 32 34 31 27 2c 20 74 32  "t1='ax\241', t2
36c0: 3d 27 41 5f 25 27 22 20 20 7b 74 31 20 4c 49 4b  ='A_%'"  {t1 LIK
36d0: 45 20 74 32 7d 20 31 0a 20 20 7d 0a 7d 0a 74 65  E t2} 1.  }.}.te
36e0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 35  st_expr expr-5.5
36f0: 34 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d  4 {t1='abc', t2=
3700: 4e 55 4c 4c 7d 20 7b 74 31 20 4c 49 4b 45 20 74  NULL} {t1 LIKE t
3710: 32 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70  2} {{}}.test_exp
3720: 72 20 65 78 70 72 2d 35 2e 35 35 20 7b 74 31 3d  r expr-5.55 {t1=
3730: 27 61 62 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d 20  'abc', t2=NULL} 
3740: 7b 74 31 20 4e 4f 54 20 4c 49 4b 45 20 74 32 7d  {t1 NOT LIKE t2}
3750: 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72 20   {{}}.test_expr 
3760: 65 78 70 72 2d 35 2e 35 36 20 7b 74 31 3d 27 61  expr-5.56 {t1='a
3770: 62 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d 20 7b 74  bc', t2=NULL} {t
3780: 32 20 4c 49 4b 45 20 74 31 7d 20 7b 7b 7d 7d 0a  2 LIKE t1} {{}}.
3790: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35  test_expr expr-5
37a0: 2e 35 37 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  .57 {t1='abc', t
37b0: 32 3d 4e 55 4c 4c 7d 20 7b 74 32 20 4e 4f 54 20  2=NULL} {t2 NOT 
37c0: 4c 49 4b 45 20 74 31 7d 20 7b 7b 7d 7d 0a 0a 0a  LIKE t1} {{}}...
37d0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
37e0: 2e 31 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32  .1 {t1='abc', t2
37f0: 3d 27 78 79 7a 27 7d 20 7b 74 31 20 47 4c 4f 42  ='xyz'} {t1 GLOB
3800: 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72   t2} 0.test_expr
3810: 20 65 78 70 72 2d 36 2e 32 20 7b 74 31 3d 27 61   expr-6.2 {t1='a
3820: 62 63 27 2c 20 74 32 3d 27 41 42 43 27 7d 20 7b  bc', t2='ABC'} {
3830: 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65  t1 GLOB t2} 0.te
3840: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 33  st_expr expr-6.3
3850: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27   {t1='abc', t2='
3860: 41 3f 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  A?C'} {t1 GLOB t
3870: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
3880: 78 70 72 2d 36 2e 34 20 7b 74 31 3d 27 61 62 63  xpr-6.4 {t1='abc
3890: 27 2c 20 74 32 3d 27 61 3f 63 27 7d 20 7b 74 31  ', t2='a?c'} {t1
38a0: 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74   GLOB t2} 1.test
38b0: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35 20 7b  _expr expr-6.5 {
38c0: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 62  t1='abc', t2='ab
38d0: 63 3f 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  c?'} {t1 GLOB t2
38e0: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
38f0: 70 72 2d 36 2e 36 20 7b 74 31 3d 27 61 62 63 27  pr-6.6 {t1='abc'
3900: 2c 20 74 32 3d 27 41 2a 43 27 7d 20 7b 74 31 20  , t2='A*C'} {t1 
3910: 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f  GLOB t2} 0.test_
3920: 65 78 70 72 20 65 78 70 72 2d 36 2e 37 20 7b 74  expr expr-6.7 {t
3930: 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 2a 63  1='abc', t2='a*c
3940: 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '} {t1 GLOB t2} 
3950: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
3960: 2d 36 2e 38 20 7b 74 31 3d 27 61 62 78 79 7a 7a  -6.8 {t1='abxyzz
3970: 79 63 27 2c 20 74 32 3d 27 61 2a 63 27 7d 20 7b  yc', t2='a*c'} {
3980: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65  t1 GLOB t2} 1.te
3990: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 39  st_expr expr-6.9
39a0: 20 7b 74 31 3d 27 61 62 78 79 7a 7a 79 27 2c 20   {t1='abxyzzy', 
39b0: 74 32 3d 27 61 2a 63 27 7d 20 7b 74 31 20 47 4c  t2='a*c'} {t1 GL
39c0: 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78  OB t2} 0.test_ex
39d0: 70 72 20 65 78 70 72 2d 36 2e 31 30 20 7b 74 31  pr expr-6.10 {t1
39e0: 3d 27 61 62 78 79 7a 7a 79 63 78 27 2c 20 74 32  ='abxyzzycx', t2
39f0: 3d 27 61 2a 63 27 7d 20 7b 74 31 20 47 4c 4f 42  ='a*c'} {t1 GLOB
3a00: 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72   t2} 0.test_expr
3a10: 20 65 78 70 72 2d 36 2e 31 31 20 7b 74 31 3d 27   expr-6.11 {t1='
3a20: 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20  abc', t2='xyz'} 
3a30: 7b 74 31 20 4e 4f 54 20 47 4c 4f 42 20 74 32 7d  {t1 NOT GLOB t2}
3a40: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
3a50: 72 2d 36 2e 31 32 20 7b 74 31 3d 27 61 62 63 27  r-6.12 {t1='abc'
3a60: 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31 20  , t2='abc'} {t1 
3a70: 4e 4f 54 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74  NOT GLOB t2} 0.t
3a80: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
3a90: 31 33 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32  13 {t1='abc', t2
3aa0: 3d 27 61 5b 62 78 5d 63 27 7d 20 7b 74 31 20 47  ='a[bx]c'} {t1 G
3ab0: 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65  LOB t2} 1.test_e
3ac0: 78 70 72 20 65 78 70 72 2d 36 2e 31 34 20 7b 74  xpr expr-6.14 {t
3ad0: 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 5b 63  1='abc', t2='a[c
3ae0: 78 5d 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  x]c'} {t1 GLOB t
3af0: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
3b00: 78 70 72 2d 36 2e 31 35 20 7b 74 31 3d 27 61 62  xpr-6.15 {t1='ab
3b10: 63 27 2c 20 74 32 3d 27 61 5b 61 2d 64 5d 63 27  c', t2='a[a-d]c'
3b20: 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  } {t1 GLOB t2} 1
3b30: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
3b40: 36 2e 31 36 20 7b 74 31 3d 27 61 62 63 27 2c 20  6.16 {t1='abc', 
3b50: 74 32 3d 27 61 5b 5e 61 2d 64 5d 63 27 7d 20 7b  t2='a[^a-d]c'} {
3b60: 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65  t1 GLOB t2} 0.te
3b70: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 31  st_expr expr-6.1
3b80: 37 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d  7 {t1='abc', t2=
3b90: 27 61 5b 41 2d 44 63 5d 63 27 7d 20 7b 74 31 20  'a[A-Dc]c'} {t1 
3ba0: 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f  GLOB t2} 0.test_
3bb0: 65 78 70 72 20 65 78 70 72 2d 36 2e 31 38 20 7b  expr expr-6.18 {
3bc0: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 5b  t1='abc', t2='a[
3bd0: 5e 41 2d 44 63 5d 63 27 7d 20 7b 74 31 20 47 4c  ^A-Dc]c'} {t1 GL
3be0: 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78  OB t2} 1.test_ex
3bf0: 70 72 20 65 78 70 72 2d 36 2e 31 39 20 7b 74 31  pr expr-6.19 {t1
3c00: 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 5b 5d 62  ='abc', t2='a[]b
3c10: 5d 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  ]c'} {t1 GLOB t2
3c20: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
3c30: 70 72 2d 36 2e 32 30 20 7b 74 31 3d 27 61 62 63  pr-6.20 {t1='abc
3c40: 27 2c 20 74 32 3d 27 61 5b 5e 5d 62 5d 63 27 7d  ', t2='a[^]b]c'}
3c50: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a   {t1 GLOB t2} 0.
3c60: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
3c70: 2e 32 31 61 20 7b 74 31 3d 27 61 62 63 64 65 66  .21a {t1='abcdef
3c80: 67 27 2c 20 74 32 3d 27 61 2a 5b 64 65 5d 67 27  g', t2='a*[de]g'
3c90: 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30  } {t1 GLOB t2} 0
3ca0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
3cb0: 36 2e 32 31 62 20 7b 74 31 3d 27 61 62 63 64 65  6.21b {t1='abcde
3cc0: 66 67 27 2c 20 74 32 3d 27 61 2a 5b 64 66 5d 67  fg', t2='a*[df]g
3cd0: 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '} {t1 GLOB t2} 
3ce0: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
3cf0: 2d 36 2e 32 31 63 20 7b 74 31 3d 27 61 62 63 64  -6.21c {t1='abcd
3d00: 65 66 67 27 2c 20 74 32 3d 27 61 2a 5b 64 2d 68  efg', t2='a*[d-h
3d10: 5d 67 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  ]g'} {t1 GLOB t2
3d20: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
3d30: 70 72 2d 36 2e 32 31 64 20 7b 74 31 3d 27 61 62  pr-6.21d {t1='ab
3d40: 63 64 65 66 67 27 2c 20 74 32 3d 27 61 2a 5b 62  cdefg', t2='a*[b
3d50: 2d 65 5d 67 27 7d 20 7b 74 31 20 47 4c 4f 42 20  -e]g'} {t1 GLOB 
3d60: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
3d70: 65 78 70 72 2d 36 2e 32 32 61 20 7b 74 31 3d 27  expr-6.22a {t1='
3d80: 61 62 63 64 65 66 67 27 2c 20 74 32 3d 27 61 2a  abcdefg', t2='a*
3d90: 5b 5e 64 65 5d 67 27 7d 20 7b 74 31 20 47 4c 4f  [^de]g'} {t1 GLO
3da0: 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  B t2} 1.test_exp
3db0: 72 20 65 78 70 72 2d 36 2e 32 32 62 20 7b 74 31  r expr-6.22b {t1
3dc0: 3d 27 61 62 63 64 65 66 67 27 2c 20 74 32 3d 27  ='abcdefg', t2='
3dd0: 61 2a 5b 5e 64 65 66 5d 67 27 7d 20 7b 74 31 20  a*[^def]g'} {t1 
3de0: 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f  GLOB t2} 0.test_
3df0: 65 78 70 72 20 65 78 70 72 2d 36 2e 32 33 20 7b  expr expr-6.23 {
3e00: 74 31 3d 27 61 62 63 64 65 66 67 27 2c 20 74 32  t1='abcdefg', t2
3e10: 3d 27 61 2a 3f 67 27 7d 20 7b 74 31 20 47 4c 4f  ='a*?g'} {t1 GLO
3e20: 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  B t2} 1.test_exp
3e30: 72 20 65 78 70 72 2d 36 2e 32 34 20 7b 74 31 3d  r expr-6.24 {t1=
3e40: 27 61 63 27 2c 20 74 32 3d 27 61 2a 63 27 7d 20  'ac', t2='a*c'} 
3e50: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74  {t1 GLOB t2} 1.t
3e60: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
3e70: 32 35 20 7b 74 31 3d 27 61 63 27 2c 20 74 32 3d  25 {t1='ac', t2=
3e80: 27 61 2a 3f 63 27 7d 20 7b 74 31 20 47 4c 4f 42  'a*?c'} {t1 GLOB
3e90: 20 74 32 7d 20 30 0a 0a 0a 23 20 54 68 65 73 65   t2} 0...# These
3ea0: 20 74 65 73 74 73 20 6f 6e 6c 79 20 77 6f 72 6b   tests only work
3eb0: 20 6f 6e 20 76 65 72 73 69 6f 6e 73 20 6f 66 20   on versions of 
3ec0: 54 43 4c 20 74 68 61 74 20 73 75 70 70 6f 72 74  TCL that support
3ed0: 20 55 6e 69 63 6f 64 65 0a 23 0a 69 66 20 7b 22   Unicode.#.if {"
3ee0: 5c 75 31 32 33 34 22 21 3d 22 75 31 32 33 34 22  \u1234"!="u1234"
3ef0: 20 26 26 20 5b 73 71 6c 69 74 65 20 2d 65 6e 63   && [sqlite -enc
3f00: 6f 64 69 6e 67 5d 3d 3d 22 55 54 46 2d 38 22 7d  oding]=="UTF-8"}
3f10: 20 7b 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65   {.  test_expr e
3f20: 78 70 72 2d 36 2e 32 36 20 22 74 31 3d 27 61 5c  xpr-6.26 "t1='a\
3f30: 75 30 30 38 30 63 27 2c 20 74 32 3d 27 61 3f 63  u0080c', t2='a?c
3f40: 27 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '" {t1 GLOB t2} 
3f50: 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78  1.  test_expr ex
3f60: 70 72 2d 36 2e 32 37 20 22 74 31 3d 27 61 5c 75  pr-6.27 "t1='a\u
3f70: 30 37 66 66 63 27 2c 20 74 32 3d 27 61 3f 63 27  07ffc', t2='a?c'
3f80: 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  " {t1 GLOB t2} 1
3f90: 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70  .  test_expr exp
3fa0: 72 2d 36 2e 32 38 20 22 74 31 3d 27 61 5c 75 30  r-6.28 "t1='a\u0
3fb0: 38 30 30 63 27 2c 20 74 32 3d 27 61 3f 63 27 22  800c', t2='a?c'"
3fc0: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a   {t1 GLOB t2} 1.
3fd0: 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72    test_expr expr
3fe0: 2d 36 2e 32 39 20 22 74 31 3d 27 61 5c 75 66 66  -6.29 "t1='a\uff
3ff0: 66 66 63 27 2c 20 74 32 3d 27 61 3f 63 27 22 20  ffc', t2='a?c'" 
4000: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20  {t1 GLOB t2} 1. 
4010: 20 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d   test_expr expr-
4020: 36 2e 33 30 20 22 74 31 3d 27 61 5c 75 31 32 33  6.30 "t1='a\u123
4030: 34 27 2c 20 74 32 3d 27 61 3f 27 22 20 7b 74 31  4', t2='a?'" {t1
4040: 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20 74 65   GLOB t2} 1.  te
4050: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 33  st_expr expr-6.3
4060: 31 20 22 74 31 3d 27 61 5c 75 31 32 33 34 27 2c  1 "t1='a\u1234',
4070: 20 74 32 3d 27 61 3f 3f 27 22 20 7b 74 31 20 47   t2='a??'" {t1 G
4080: 4c 4f 42 20 74 32 7d 20 30 0a 20 20 74 65 73 74  LOB t2} 0.  test
4090: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 33 32 20  _expr expr-6.32 
40a0: 22 74 31 3d 27 61 78 5c 75 31 32 33 34 27 2c 20  "t1='ax\u1234', 
40b0: 74 32 3d 27 61 3f 5c 75 31 32 33 34 27 22 20 7b  t2='a?\u1234'" {
40c0: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20  t1 GLOB t2} 1.  
40d0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
40e0: 2e 33 33 20 22 74 31 3d 27 61 78 5c 75 31 32 33  .33 "t1='ax\u123
40f0: 34 27 2c 20 74 32 3d 27 61 2a 5c 75 31 32 33 34  4', t2='a*\u1234
4100: 27 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '" {t1 GLOB t2} 
4110: 31 0a 20 20 74 65 73 74 5f 65 78 70 72 20 65 78  1.  test_expr ex
4120: 70 72 2d 36 2e 33 34 20 22 74 31 3d 27 61 78 5c  pr-6.34 "t1='ax\
4130: 75 31 32 33 34 79 5c 75 31 32 33 34 27 2c 20 74  u1234y\u1234', t
4140: 32 3d 27 61 2a 5c 75 31 32 33 34 27 22 20 7b 74  2='a*\u1234'" {t
4150: 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20 74  1 GLOB t2} 1.  t
4160: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
4170: 33 35 20 22 74 31 3d 27 61 5c 75 31 32 33 34 62  35 "t1='a\u1234b
4180: 27 2c 20 74 32 3d 27 61 5c 5b 78 5c 75 31 32 33  ', t2='a\[x\u123
4190: 34 79 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42  4y\]b'" {t1 GLOB
41a0: 20 74 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78   t2} 1.  test_ex
41b0: 70 72 20 65 78 70 72 2d 36 2e 33 36 20 22 74 31  pr expr-6.36 "t1
41c0: 3d 27 61 5c 75 31 32 33 34 62 27 2c 20 74 32 3d  ='a\u1234b', t2=
41d0: 27 61 5c 5b 5c 75 31 32 33 33 2d 5c 75 31 32 33  'a\[\u1233-\u123
41e0: 35 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42 20  5\]b'" {t1 GLOB 
41f0: 74 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70  t2} 1.  test_exp
4200: 72 20 65 78 70 72 2d 36 2e 33 37 20 22 74 31 3d  r expr-6.37 "t1=
4210: 27 61 5c 75 31 32 33 34 62 27 2c 20 74 32 3d 27  'a\u1234b', t2='
4220: 61 5c 5b 5c 75 31 32 33 34 2d 5c 75 31 32 34 66  a\[\u1234-\u124f
4230: 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42 20 74  \]b'" {t1 GLOB t
4240: 32 7d 20 31 0a 20 20 74 65 73 74 5f 65 78 70 72  2} 1.  test_expr
4250: 20 65 78 70 72 2d 36 2e 33 38 20 22 74 31 3d 27   expr-6.38 "t1='
4260: 61 5c 75 31 32 33 34 62 27 2c 20 74 32 3d 27 61  a\u1234b', t2='a
4270: 5c 5b 5c 75 31 32 33 35 2d 5c 75 31 32 34 66 5c  \[\u1235-\u124f\
4280: 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42 20 74 32  ]b'" {t1 GLOB t2
4290: 7d 20 30 0a 20 20 74 65 73 74 5f 65 78 70 72 20  } 0.  test_expr 
42a0: 65 78 70 72 2d 36 2e 33 39 20 22 74 31 3d 27 61  expr-6.39 "t1='a
42b0: 5c 75 31 32 33 34 62 27 2c 20 74 32 3d 27 61 5c  \u1234b', t2='a\
42c0: 5b 61 2d 5c 75 31 32 33 35 5c 5d 62 27 22 20 7b  [a-\u1235\]b'" {
42d0: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20  t1 GLOB t2} 1.  
42e0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36  test_expr expr-6
42f0: 2e 34 30 20 22 74 31 3d 27 61 5c 75 31 32 33 34  .40 "t1='a\u1234
4300: 62 27 2c 20 74 32 3d 27 61 5c 5b 61 2d 5c 75 31  b', t2='a\[a-\u1
4310: 32 33 34 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f  234\]b'" {t1 GLO
4320: 42 20 74 32 7d 20 31 0a 20 20 74 65 73 74 5f 65  B t2} 1.  test_e
4330: 78 70 72 20 65 78 70 72 2d 36 2e 34 31 20 22 74  xpr expr-6.41 "t
4340: 31 3d 27 61 5c 75 31 32 33 34 62 27 2c 20 74 32  1='a\u1234b', t2
4350: 3d 27 61 5c 5b 61 2d 5c 75 31 32 33 33 5c 5d 62  ='a\[a-\u1233\]b
4360: 27 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '" {t1 GLOB t2} 
4370: 30 0a 7d 0a 0a 74 65 73 74 5f 65 78 70 72 20 65  0.}..test_expr e
4380: 78 70 72 2d 36 2e 35 31 20 7b 74 31 3d 27 41 42  xpr-6.51 {t1='AB
4390: 43 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74  C', t2='xyz'} {t
43a0: 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73  1 GLOB t2} 0.tes
43b0: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35 32  t_expr expr-6.52
43c0: 20 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27   {t1='ABC', t2='
43d0: 61 62 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  abc'} {t1 GLOB t
43e0: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
43f0: 78 70 72 2d 36 2e 35 33 20 7b 74 31 3d 27 41 42  xpr-6.53 {t1='AB
4400: 43 27 2c 20 74 32 3d 27 61 3f 63 27 7d 20 7b 74  C', t2='a?c'} {t
4410: 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73  1 GLOB t2} 0.tes
4420: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35 34  t_expr expr-6.54
4430: 20 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27   {t1='ABC', t2='
4440: 41 3f 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  A?C'} {t1 GLOB t
4450: 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 1.test_expr e
4460: 78 70 72 2d 36 2e 35 35 20 7b 74 31 3d 27 41 42  xpr-6.55 {t1='AB
4470: 43 27 2c 20 74 32 3d 27 61 62 63 3f 27 7d 20 7b  C', t2='abc?'} {
4480: 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65  t1 GLOB t2} 0.te
4490: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35  st_expr expr-6.5
44a0: 36 20 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d  6 {t1='ABC', t2=
44b0: 27 61 2a 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20  'a*c'} {t1 GLOB 
44c0: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
44d0: 65 78 70 72 2d 36 2e 35 37 20 7b 74 31 3d 27 41  expr-6.57 {t1='A
44e0: 42 43 27 2c 20 74 32 3d 27 41 2a 43 27 7d 20 7b  BC', t2='A*C'} {
44f0: 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65  t1 GLOB t2} 1.te
4500: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35  st_expr expr-6.5
4510: 38 20 7b 74 31 3d 27 41 42 78 79 7a 7a 79 43 27  8 {t1='ABxyzzyC'
4520: 2c 20 74 32 3d 27 41 2a 43 27 7d 20 7b 74 31 20  , t2='A*C'} {t1 
4530: 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f  GLOB t2} 1.test_
4540: 65 78 70 72 20 65 78 70 72 2d 36 2e 35 39 20 7b  expr expr-6.59 {
4550: 74 31 3d 27 41 42 78 79 7a 7a 79 27 2c 20 74 32  t1='ABxyzzy', t2
4560: 3d 27 41 2a 43 27 7d 20 7b 74 31 20 47 4c 4f 42  ='A*C'} {t1 GLOB
4570: 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72   t2} 0.test_expr
4580: 20 65 78 70 72 2d 36 2e 36 30 20 7b 74 31 3d 27   expr-6.60 {t1='
4590: 41 42 78 79 7a 7a 79 43 78 27 2c 20 74 32 3d 27  ABxyzzyCx', t2='
45a0: 41 2a 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  A*C'} {t1 GLOB t
45b0: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
45c0: 78 70 72 2d 36 2e 36 31 20 7b 74 31 3d 27 41 42  xpr-6.61 {t1='AB
45d0: 43 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74  C', t2='xyz'} {t
45e0: 31 20 4e 4f 54 20 47 4c 4f 42 20 74 32 7d 20 31  1 NOT GLOB t2} 1
45f0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
4600: 36 2e 36 32 20 7b 74 31 3d 27 41 42 43 27 2c 20  6.62 {t1='ABC', 
4610: 74 32 3d 27 41 42 43 27 7d 20 7b 74 31 20 4e 4f  t2='ABC'} {t1 NO
4620: 54 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73  T GLOB t2} 0.tes
4630: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 36 33  t_expr expr-6.63
4640: 20 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27   {t1='ABC', t2='
4650: 41 5b 42 78 5d 43 27 7d 20 7b 74 31 20 47 4c 4f  A[Bx]C'} {t1 GLO
4660: 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  B t2} 1.test_exp
4670: 72 20 65 78 70 72 2d 36 2e 36 34 20 7b 74 31 3d  r expr-6.64 {t1=
4680: 27 41 42 43 27 2c 20 74 32 3d 27 41 5b 43 78 5d  'ABC', t2='A[Cx]
4690: 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d  C'} {t1 GLOB t2}
46a0: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
46b0: 72 2d 36 2e 36 35 20 7b 74 31 3d 27 41 42 43 27  r-6.65 {t1='ABC'
46c0: 2c 20 74 32 3d 27 41 5b 41 2d 44 5d 43 27 7d 20  , t2='A[A-D]C'} 
46d0: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74  {t1 GLOB t2} 1.t
46e0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
46f0: 36 36 20 7b 74 31 3d 27 41 42 43 27 2c 20 74 32  66 {t1='ABC', t2
4700: 3d 27 41 5b 5e 41 2d 44 5d 43 27 7d 20 7b 74 31  ='A[^A-D]C'} {t1
4710: 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74   GLOB t2} 0.test
4720: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 36 37 20  _expr expr-6.67 
4730: 7b 74 31 3d 27 41 42 43 27 2c 20 74 32 3d 27 41  {t1='ABC', t2='A
4740: 5b 61 2d 64 43 5d 43 27 7d 20 7b 74 31 20 47 4c  [a-dC]C'} {t1 GL
4750: 4f 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78  OB t2} 0.test_ex
4760: 70 72 20 65 78 70 72 2d 36 2e 36 38 20 7b 74 31  pr expr-6.68 {t1
4770: 3d 27 41 42 43 27 2c 20 74 32 3d 27 41 5b 5e 61  ='ABC', t2='A[^a
4780: 2d 64 43 5d 43 27 7d 20 7b 74 31 20 47 4c 4f 42  -dC]C'} {t1 GLOB
4790: 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72   t2} 1.test_expr
47a0: 20 65 78 70 72 2d 36 2e 36 39 61 20 7b 74 31 3d   expr-6.69a {t1=
47b0: 27 41 42 43 27 2c 20 74 32 3d 27 41 5b 5d 42 5d  'ABC', t2='A[]B]
47c0: 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d  C'} {t1 GLOB t2}
47d0: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
47e0: 72 2d 36 2e 36 39 62 20 7b 74 31 3d 27 41 5d 43  r-6.69b {t1='A]C
47f0: 27 2c 20 74 32 3d 27 41 5b 5d 42 5d 43 27 7d 20  ', t2='A[]B]C'} 
4800: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74  {t1 GLOB t2} 1.t
4810: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
4820: 37 30 61 20 7b 74 31 3d 27 41 42 43 27 2c 20 74  70a {t1='ABC', t
4830: 32 3d 27 41 5b 5e 5d 42 5d 43 27 7d 20 7b 74 31  2='A[^]B]C'} {t1
4840: 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65 73 74   GLOB t2} 0.test
4850: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 37 30 62  _expr expr-6.70b
4860: 20 7b 74 31 3d 27 41 78 43 27 2c 20 74 32 3d 27   {t1='AxC', t2='
4870: 41 5b 5e 5d 42 5d 43 27 7d 20 7b 74 31 20 47 4c  A[^]B]C'} {t1 GL
4880: 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78  OB t2} 1.test_ex
4890: 70 72 20 65 78 70 72 2d 36 2e 37 30 63 20 7b 74  pr expr-6.70c {t
48a0: 31 3d 27 41 5d 43 27 2c 20 74 32 3d 27 41 5b 5e  1='A]C', t2='A[^
48b0: 5d 42 5d 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20  ]B]C'} {t1 GLOB 
48c0: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
48d0: 65 78 70 72 2d 36 2e 37 31 20 7b 74 31 3d 27 41  expr-6.71 {t1='A
48e0: 42 43 44 45 46 47 27 2c 20 74 32 3d 27 41 2a 5b  BCDEFG', t2='A*[
48f0: 44 45 5d 47 27 7d 20 7b 74 31 20 47 4c 4f 42 20  DE]G'} {t1 GLOB 
4900: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
4910: 65 78 70 72 2d 36 2e 37 32 20 7b 74 31 3d 27 41  expr-6.72 {t1='A
4920: 42 43 44 45 46 47 27 2c 20 74 32 3d 27 41 2a 5b  BCDEFG', t2='A*[
4930: 5e 44 45 5d 47 27 7d 20 7b 74 31 20 47 4c 4f 42  ^DE]G'} {t1 GLOB
4940: 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72   t2} 1.test_expr
4950: 20 65 78 70 72 2d 36 2e 37 33 20 7b 74 31 3d 27   expr-6.73 {t1='
4960: 41 42 43 44 45 46 47 27 2c 20 74 32 3d 27 41 2a  ABCDEFG', t2='A*
4970: 3f 47 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32  ?G'} {t1 GLOB t2
4980: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
4990: 70 72 2d 36 2e 37 34 20 7b 74 31 3d 27 41 43 27  pr-6.74 {t1='AC'
49a0: 2c 20 74 32 3d 27 41 2a 43 27 7d 20 7b 74 31 20  , t2='A*C'} {t1 
49b0: 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74 5f  GLOB t2} 1.test_
49c0: 65 78 70 72 20 65 78 70 72 2d 36 2e 37 35 20 7b  expr expr-6.75 {
49d0: 74 31 3d 27 41 43 27 2c 20 74 32 3d 27 41 2a 3f  t1='AC', t2='A*?
49e0: 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d  C'} {t1 GLOB t2}
49f0: 20 30 0a 0a 23 20 54 68 65 73 65 73 20 74 65 73   0..# Theses tes
4a00: 74 73 20 61 72 65 20 66 6f 72 20 77 68 65 6e 20  ts are for when 
4a10: 53 51 4c 69 74 65 20 61 73 73 75 6d 65 73 20 69  SQLite assumes i
4a20: 73 6f 38 38 35 39 20 63 68 61 72 61 63 74 65 72  so8859 character
4a30: 73 2e 0a 23 0a 69 66 20 7b 5b 73 71 6c 69 74 65  s..#.if {[sqlite
4a40: 20 2d 65 6e 63 6f 64 69 6e 67 5d 3d 3d 22 69 73   -encoding]=="is
4a50: 6f 38 38 35 39 22 7d 20 7b 0a 20 20 73 65 74 20  o8859"} {.  set 
4a60: 67 6f 20 31 0a 20 20 69 66 20 7b 5b 69 6e 66 6f  go 1.  if {[info
4a70: 20 63 6f 6d 6d 61 6e 64 20 65 6e 63 6f 64 69 6e   command encodin
4a80: 67 5d 21 3d 22 22 7d 20 7b 0a 20 20 20 20 69 66  g]!=""} {.    if
4a90: 20 7b 5b 63 61 74 63 68 20 7b 65 6e 63 6f 64 69   {[catch {encodi
4aa0: 6e 67 20 73 79 73 74 65 6d 20 69 73 6f 38 38 35  ng system iso885
4ab0: 39 2d 31 7d 20 6d 73 67 5d 7d 20 7b 0a 20 20 20  9-1} msg]} {.   
4ac0: 20 20 20 70 75 74 73 20 22 73 6b 69 70 70 69 6e     puts "skippin
4ad0: 67 20 74 65 73 74 73 20 6f 66 20 47 4c 4f 42 20  g tests of GLOB 
4ae0: 6f 70 65 72 61 74 6f 72 3a 20 24 6d 73 67 22 0a  operator: $msg".
4af0: 20 20 20 20 20 20 73 65 74 20 67 6f 20 30 0a 20        set go 0. 
4b00: 20 20 20 7d 0a 20 20 7d 0a 20 20 69 66 20 7b 24     }.  }.  if {$
4b10: 67 6f 7d 20 7b 0a 20 20 20 20 74 65 73 74 5f 65  go} {.    test_e
4b20: 78 70 72 20 65 78 70 72 2d 36 2e 35 30 20 22 74  xpr expr-6.50 "t
4b30: 31 3d 27 61 5c 32 36 36 63 27 2c 20 74 32 3d 27  1='a\266c', t2='
4b40: 61 3f 63 27 22 20 7b 74 31 20 47 4c 4f 42 20 74  a?c'" {t1 GLOB t
4b50: 32 7d 20 31 0a 20 20 20 20 74 65 73 74 5f 65 78  2} 1.    test_ex
4b60: 70 72 20 65 78 70 72 2d 36 2e 35 31 20 22 74 31  pr expr-6.51 "t1
4b70: 3d 27 61 5c 32 36 36 27 2c 20 74 32 3d 27 61 3f  ='a\266', t2='a?
4b80: 27 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20  '" {t1 GLOB t2} 
4b90: 31 0a 20 20 20 20 74 65 73 74 5f 65 78 70 72 20  1.    test_expr 
4ba0: 65 78 70 72 2d 36 2e 35 32 20 22 74 31 3d 27 61  expr-6.52 "t1='a
4bb0: 5c 32 36 36 27 2c 20 74 32 3d 27 61 3f 3f 27 22  \266', t2='a??'"
4bc0: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a   {t1 GLOB t2} 0.
4bd0: 20 20 20 20 74 65 73 74 5f 65 78 70 72 20 65 78      test_expr ex
4be0: 70 72 2d 36 2e 35 33 20 22 74 31 3d 27 61 78 5c  pr-6.53 "t1='ax\
4bf0: 32 36 36 27 2c 20 74 32 3d 27 61 3f 3f 27 22 20  266', t2='a??'" 
4c00: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a 20  {t1 GLOB t2} 1. 
4c10: 20 20 20 74 65 73 74 5f 65 78 70 72 20 65 78 70     test_expr exp
4c20: 72 2d 36 2e 35 34 20 22 74 31 3d 27 61 78 5c 32  r-6.54 "t1='ax\2
4c30: 36 36 27 2c 20 74 32 3d 27 61 3f 5c 32 36 36 27  66', t2='a?\266'
4c40: 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  " {t1 GLOB t2} 1
4c50: 0a 20 20 20 20 74 65 73 74 5f 65 78 70 72 20 65  .    test_expr e
4c60: 78 70 72 2d 36 2e 35 35 20 22 74 31 3d 27 61 78  xpr-6.55 "t1='ax
4c70: 5c 32 36 36 79 5c 32 36 36 27 2c 20 74 32 3d 27  \266y\266', t2='
4c80: 61 2a 5c 32 36 36 27 22 20 7b 74 31 20 47 4c 4f  a*\266'" {t1 GLO
4c90: 42 20 74 32 7d 20 31 0a 20 20 20 20 74 65 73 74  B t2} 1.    test
4ca0: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 35 36 20  _expr expr-6.56 
4cb0: 22 74 31 3d 27 61 5c 32 36 36 62 27 2c 20 74 32  "t1='a\266b', t2
4cc0: 3d 27 61 5c 5b 78 5c 32 36 36 79 5c 5d 62 27 22  ='a\[x\266y\]b'"
4cd0: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31 0a   {t1 GLOB t2} 1.
4ce0: 20 20 20 20 74 65 73 74 5f 65 78 70 72 20 65 78      test_expr ex
4cf0: 70 72 2d 36 2e 35 37 20 22 74 31 3d 27 61 5c 32  pr-6.57 "t1='a\2
4d00: 36 36 62 27 2c 20 74 32 3d 27 61 5c 5b 5c 32 36  66b', t2='a\[\26
4d10: 30 2d 5c 32 37 30 5c 5d 62 27 22 20 7b 74 31 20  0-\270\]b'" {t1 
4d20: 47 4c 4f 42 20 74 32 7d 20 31 0a 20 20 20 20 74  GLOB t2} 1.    t
4d30: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
4d40: 35 38 20 22 74 31 3d 27 61 5c 32 36 36 62 27 2c  58 "t1='a\266b',
4d50: 20 74 32 3d 27 61 5c 5b 5c 32 36 36 2d 5c 32 37   t2='a\[\266-\27
4d60: 30 5c 5d 62 27 22 20 7b 74 31 20 47 4c 4f 42 20  0\]b'" {t1 GLOB 
4d70: 74 32 7d 20 31 0a 20 20 20 20 74 65 73 74 5f 65  t2} 1.    test_e
4d80: 78 70 72 20 65 78 70 72 2d 36 2e 35 39 20 22 74  xpr expr-6.59 "t
4d90: 31 3d 27 61 5c 32 36 36 62 27 2c 20 74 32 3d 27  1='a\266b', t2='
4da0: 61 5c 5b 5c 32 36 37 2d 5c 32 37 30 5c 5d 62 27  a\[\267-\270\]b'
4db0: 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30  " {t1 GLOB t2} 0
4dc0: 0a 20 20 20 20 74 65 73 74 5f 65 78 70 72 20 65  .    test_expr e
4dd0: 78 70 72 2d 36 2e 36 30 20 22 74 31 3d 27 61 5c  xpr-6.60 "t1='a\
4de0: 32 36 36 62 27 2c 20 74 32 3d 27 61 5c 5b 78 2d  266b', t2='a\[x-
4df0: 5c 32 36 37 5c 5d 62 27 22 20 7b 74 31 20 47 4c  \267\]b'" {t1 GL
4e00: 4f 42 20 74 32 7d 20 31 0a 20 20 20 20 74 65 73  OB t2} 1.    tes
4e10: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 36 31  t_expr expr-6.61
4e20: 20 22 74 31 3d 27 61 5c 32 36 36 62 27 2c 20 74   "t1='a\266b', t
4e30: 32 3d 27 61 5c 5b 78 2d 5c 32 36 36 5c 5d 62 27  2='a\[x-\266\]b'
4e40: 22 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 31  " {t1 GLOB t2} 1
4e50: 0a 20 20 20 20 74 65 73 74 5f 65 78 70 72 20 65  .    test_expr e
4e60: 78 70 72 2d 36 2e 36 32 20 22 74 31 3d 27 61 5c  xpr-6.62 "t1='a\
4e70: 32 36 36 62 27 2c 20 74 32 3d 27 61 5c 5b 78 2d  266b', t2='a\[x-
4e80: 5c 32 36 35 5c 5d 62 27 22 20 7b 74 31 20 47 4c  \265\]b'" {t1 GL
4e90: 4f 42 20 74 32 7d 20 30 0a 20 20 7d 0a 7d 0a 74  OB t2} 0.  }.}.t
4ea0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
4eb0: 36 33 20 7b 74 31 3d 4e 55 4c 4c 2c 20 74 32 3d  63 {t1=NULL, t2=
4ec0: 27 61 2a 3f 63 27 7d 20 7b 74 31 20 47 4c 4f 42  'a*?c'} {t1 GLOB
4ed0: 20 74 32 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65   t2} {{}}.test_e
4ee0: 78 70 72 20 65 78 70 72 2d 36 2e 36 34 20 7b 74  xpr expr-6.64 {t
4ef0: 31 3d 27 61 63 27 2c 20 74 32 3d 4e 55 4c 4c 7d  1='ac', t2=NULL}
4f00: 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 7b 7b   {t1 GLOB t2} {{
4f10: 7d 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  }}.test_expr exp
4f20: 72 2d 36 2e 36 35 20 7b 74 31 3d 4e 55 4c 4c 2c  r-6.65 {t1=NULL,
4f30: 20 74 32 3d 27 61 2a 3f 63 27 7d 20 7b 74 31 20   t2='a*?c'} {t1 
4f40: 4e 4f 54 20 47 4c 4f 42 20 74 32 7d 20 7b 7b 7d  NOT GLOB t2} {{}
4f50: 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  }.test_expr expr
4f60: 2d 36 2e 36 36 20 7b 74 31 3d 27 61 63 27 2c 20  -6.66 {t1='ac', 
4f70: 74 32 3d 4e 55 4c 4c 7d 20 7b 74 31 20 4e 4f 54  t2=NULL} {t1 NOT
4f80: 20 47 4c 4f 42 20 74 32 7d 20 7b 7b 7d 7d 0a 0a   GLOB t2} {{}}..
4f90: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 63  test_expr expr-c
4fa0: 61 73 65 2e 31 20 7b 69 31 3d 31 2c 20 69 32 3d  ase.1 {i1=1, i2=
4fb0: 32 7d 20 5c 0a 09 7b 43 41 53 45 20 57 48 45 4e  2} \..{CASE WHEN
4fc0: 20 69 31 20 3d 20 69 32 20 54 48 45 4e 20 27 65   i1 = i2 THEN 'e
4fd0: 71 27 20 45 4c 53 45 20 27 6e 65 27 20 45 4e 44  q' ELSE 'ne' END
4fe0: 7d 20 6e 65 0a 74 65 73 74 5f 65 78 70 72 20 65  } ne.test_expr e
4ff0: 78 70 72 2d 63 61 73 65 2e 32 20 7b 69 31 3d 32  xpr-case.2 {i1=2
5000: 2c 20 69 32 3d 32 7d 20 5c 0a 09 7b 43 41 53 45  , i2=2} \..{CASE
5010: 20 57 48 45 4e 20 69 31 20 3d 20 69 32 20 54 48   WHEN i1 = i2 TH
5020: 45 4e 20 27 65 71 27 20 45 4c 53 45 20 27 6e 65  EN 'eq' ELSE 'ne
5030: 27 20 45 4e 44 7d 20 65 71 0a 74 65 73 74 5f 65  ' END} eq.test_e
5040: 78 70 72 20 65 78 70 72 2d 63 61 73 65 2e 33 20  xpr expr-case.3 
5050: 7b 69 31 3d 4e 55 4c 4c 2c 20 69 32 3d 32 7d 20  {i1=NULL, i2=2} 
5060: 5c 0a 09 7b 43 41 53 45 20 57 48 45 4e 20 69 31  \..{CASE WHEN i1
5070: 20 3d 20 69 32 20 54 48 45 4e 20 27 65 71 27 20   = i2 THEN 'eq' 
5080: 45 4c 53 45 20 27 6e 65 27 20 45 4e 44 7d 20 6e  ELSE 'ne' END} n
5090: 65 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  e.test_expr expr
50a0: 2d 63 61 73 65 2e 34 20 7b 69 31 3d 32 2c 20 69  -case.4 {i1=2, i
50b0: 32 3d 4e 55 4c 4c 7d 20 5c 0a 09 7b 43 41 53 45  2=NULL} \..{CASE
50c0: 20 57 48 45 4e 20 69 31 20 3d 20 69 32 20 54 48   WHEN i1 = i2 TH
50d0: 45 4e 20 27 65 71 27 20 45 4c 53 45 20 27 6e 65  EN 'eq' ELSE 'ne
50e0: 27 20 45 4e 44 7d 20 6e 65 0a 74 65 73 74 5f 65  ' END} ne.test_e
50f0: 78 70 72 20 65 78 70 72 2d 63 61 73 65 2e 35 20  xpr expr-case.5 
5100: 7b 69 31 3d 32 7d 20 5c 0a 09 7b 43 41 53 45 20  {i1=2} \..{CASE 
5110: 69 31 20 57 48 45 4e 20 31 20 54 48 45 4e 20 27  i1 WHEN 1 THEN '
5120: 6f 6e 65 27 20 57 48 45 4e 20 32 20 54 48 45 4e  one' WHEN 2 THEN
5130: 20 27 74 77 6f 27 20 45 4c 53 45 20 27 65 72 72   'two' ELSE 'err
5140: 6f 72 27 20 45 4e 44 7d 20 74 77 6f 0a 74 65 73  or' END} two.tes
5150: 74 5f 65 78 70 72 20 65 78 70 72 2d 63 61 73 65  t_expr expr-case
5160: 2e 36 20 7b 69 31 3d 31 7d 20 5c 0a 09 7b 43 41  .6 {i1=1} \..{CA
5170: 53 45 20 69 31 20 57 48 45 4e 20 31 20 54 48 45  SE i1 WHEN 1 THE
5180: 4e 20 27 6f 6e 65 27 20 57 48 45 4e 20 4e 55 4c  N 'one' WHEN NUL
5190: 4c 20 54 48 45 4e 20 27 74 77 6f 27 20 45 4c 53  L THEN 'two' ELS
51a0: 45 20 27 65 72 72 6f 72 27 20 45 4e 44 7d 20 6f  E 'error' END} o
51b0: 6e 65 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  ne.test_expr exp
51c0: 72 2d 63 61 73 65 2e 37 20 7b 69 31 3d 32 7d 20  r-case.7 {i1=2} 
51d0: 5c 0a 09 7b 43 41 53 45 20 69 31 20 57 48 45 4e  \..{CASE i1 WHEN
51e0: 20 31 20 54 48 45 4e 20 27 6f 6e 65 27 20 57 48   1 THEN 'one' WH
51f0: 45 4e 20 4e 55 4c 4c 20 54 48 45 4e 20 27 74 77  EN NULL THEN 'tw
5200: 6f 27 20 45 4c 53 45 20 27 65 72 72 6f 72 27 20  o' ELSE 'error' 
5210: 45 4e 44 7d 20 65 72 72 6f 72 0a 74 65 73 74 5f  END} error.test_
5220: 65 78 70 72 20 65 78 70 72 2d 63 61 73 65 2e 38  expr expr-case.8
5230: 20 7b 69 31 3d 33 7d 20 5c 0a 09 7b 43 41 53 45   {i1=3} \..{CASE
5240: 20 69 31 20 57 48 45 4e 20 31 20 54 48 45 4e 20   i1 WHEN 1 THEN 
5250: 27 6f 6e 65 27 20 57 48 45 4e 20 4e 55 4c 4c 20  'one' WHEN NULL 
5260: 54 48 45 4e 20 27 74 77 6f 27 20 45 4c 53 45 20  THEN 'two' ELSE 
5270: 27 65 72 72 6f 72 27 20 45 4e 44 7d 20 65 72 72  'error' END} err
5280: 6f 72 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  or.test_expr exp
5290: 72 2d 63 61 73 65 2e 39 20 7b 69 31 3d 33 7d 20  r-case.9 {i1=3} 
52a0: 5c 0a 09 7b 43 41 53 45 20 69 31 20 57 48 45 4e  \..{CASE i1 WHEN
52b0: 20 31 20 54 48 45 4e 20 27 6f 6e 65 27 20 57 48   1 THEN 'one' WH
52c0: 45 4e 20 32 20 54 48 45 4e 20 27 74 77 6f 27 20  EN 2 THEN 'two' 
52d0: 45 4c 53 45 20 27 65 72 72 6f 72 27 20 45 4e 44  ELSE 'error' END
52e0: 7d 20 65 72 72 6f 72 0a 74 65 73 74 5f 65 78 70  } error.test_exp
52f0: 72 20 65 78 70 72 2d 63 61 73 65 2e 31 30 20 7b  r expr-case.10 {
5300: 69 31 3d 33 7d 20 5c 0a 09 7b 43 41 53 45 20 69  i1=3} \..{CASE i
5310: 31 20 57 48 45 4e 20 31 20 54 48 45 4e 20 27 6f  1 WHEN 1 THEN 'o
5320: 6e 65 27 20 57 48 45 4e 20 32 20 54 48 45 4e 20  ne' WHEN 2 THEN 
5330: 27 74 77 6f 27 20 45 4e 44 7d 20 7b 7b 7d 7d 0a  'two' END} {{}}.
5340: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 63  test_expr expr-c
5350: 61 73 65 2e 31 31 20 7b 69 31 3d 6e 75 6c 6c 7d  ase.11 {i1=null}
5360: 20 5c 0a 09 7b 43 41 53 45 20 69 31 20 57 48 45   \..{CASE i1 WHE
5370: 4e 20 31 20 54 48 45 4e 20 27 6f 6e 65 27 20 57  N 1 THEN 'one' W
5380: 48 45 4e 20 32 20 54 48 45 4e 20 27 74 77 6f 27  HEN 2 THEN 'two'
5390: 20 45 4c 53 45 20 33 20 45 4e 44 7d 20 33 0a 74   ELSE 3 END} 3.t
53a0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 63 61  est_expr expr-ca
53b0: 73 65 2e 31 32 20 7b 69 31 3d 31 7d 20 5c 0a 09  se.12 {i1=1} \..
53c0: 7b 43 41 53 45 20 69 31 20 57 48 45 4e 20 31 20  {CASE i1 WHEN 1 
53d0: 54 48 45 4e 20 6e 75 6c 6c 20 57 48 45 4e 20 32  THEN null WHEN 2
53e0: 20 54 48 45 4e 20 27 74 77 6f 27 20 45 4c 53 45   THEN 'two' ELSE
53f0: 20 33 20 45 4e 44 7d 20 7b 7b 7d 7d 0a 74 65 73   3 END} {{}}.tes
5400: 74 5f 65 78 70 72 20 65 78 70 72 2d 63 61 73 65  t_expr expr-case
5410: 2e 31 33 20 7b 69 31 3d 37 7d 20 5c 0a 09 7b 20  .13 {i1=7} \..{ 
5420: 43 41 53 45 20 57 48 45 4e 20 69 31 20 3c 20 35  CASE WHEN i1 < 5
5430: 20 54 48 45 4e 20 27 6c 6f 77 27 20 0a 09 20 20   THEN 'low' ..  
5440: 20 20 20 20 20 57 48 45 4e 20 69 31 20 3c 20 31       WHEN i1 < 1
5450: 30 20 54 48 45 4e 20 27 6d 65 64 69 75 6d 27 20  0 THEN 'medium' 
5460: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
5470: 57 48 45 4e 20 69 31 20 3c 20 31 35 20 54 48 45  WHEN i1 < 15 THE
5480: 4e 20 27 68 69 67 68 27 20 45 4c 53 45 20 27 65  N 'high' ELSE 'e
5490: 72 72 6f 72 27 20 45 4e 44 7d 20 6d 65 64 69 75  rror' END} mediu
54a0: 6d 0a 0a 0a 23 20 54 68 65 20 73 71 6c 69 74 65  m...# The sqlite
54b0: 45 78 70 72 49 66 46 61 6c 73 65 20 61 6e 64 20  ExprIfFalse and 
54c0: 73 71 6c 69 74 65 45 78 70 72 49 66 54 72 75 65  sqliteExprIfTrue
54d0: 20 72 6f 75 74 69 6e 65 73 20 61 72 65 20 6f 6e   routines are on
54e0: 6c 79 0a 23 20 65 78 65 63 75 74 65 64 20 61 73  ly.# executed as
54f0: 20 70 61 72 74 20 6f 66 20 61 20 57 48 45 52 45   part of a WHERE
5500: 20 63 6c 61 75 73 65 2e 20 20 43 72 65 61 74 65   clause.  Create
5510: 20 61 20 74 61 62 6c 65 20 73 75 69 74 61 62 6c   a table suitabl
5520: 65 0a 23 20 66 6f 72 20 74 65 73 74 69 6e 67 20  e.# for testing 
5530: 74 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 2e  these functions.
5540: 0a 23 0a 65 78 65 63 73 71 6c 20 7b 44 52 4f 50  .#.execsql {DROP
5550: 20 54 41 42 4c 45 20 74 65 73 74 31 7d 0a 65 78   TABLE test1}.ex
5560: 65 63 73 71 6c 20 7b 43 52 45 41 54 45 20 54 41  ecsql {CREATE TA
5570: 42 4c 45 20 74 65 73 74 31 28 61 20 69 6e 74 2c  BLE test1(a int,
5580: 20 62 20 69 6e 74 29 3b 7d 0a 66 6f 72 20 7b 73   b int);}.for {s
5590: 65 74 20 69 20 31 7d 20 7b 24 69 3c 3d 32 30 7d  et i 1} {$i<=20}
55a0: 20 7b 69 6e 63 72 20 69 7d 20 7b 0a 20 20 65 78   {incr i} {.  ex
55b0: 65 63 73 71 6c 20 22 49 4e 53 45 52 54 20 49 4e  ecsql "INSERT IN
55c0: 54 4f 20 74 65 73 74 31 20 56 41 4c 55 45 53 28  TO test1 VALUES(
55d0: 24 69 2c 5b 65 78 70 72 20 7b 69 6e 74 28 70 6f  $i,[expr {int(po
55e0: 77 28 32 2c 24 69 29 29 7d 5d 29 22 0a 7d 0a 65  w(2,$i))}])".}.e
55f0: 78 65 63 73 71 6c 20 22 49 4e 53 45 52 54 20 49  xecsql "INSERT I
5600: 4e 54 4f 20 74 65 73 74 31 20 56 41 4c 55 45 53  NTO test1 VALUES
5610: 28 4e 55 4c 4c 2c 30 29 22 0a 64 6f 5f 74 65 73  (NULL,0)".do_tes
5620: 74 20 65 78 70 72 2d 37 2e 31 20 7b 0a 20 20 65  t expr-7.1 {.  e
5630: 78 65 63 73 71 6c 20 7b 53 45 4c 45 43 54 20 2a  xecsql {SELECT *
5640: 20 46 52 4f 4d 20 74 65 73 74 31 20 4f 52 44 45   FROM test1 ORDE
5650: 52 20 42 59 20 61 7d 0a 7d 20 7b 7b 7d 20 30 20  R BY a}.} {{} 0 
5660: 31 20 32 20 32 20 34 20 33 20 38 20 34 20 31 36  1 2 2 4 3 8 4 16
5670: 20 35 20 33 32 20 36 20 36 34 20 37 20 31 32 38   5 32 6 64 7 128
5680: 20 38 20 32 35 36 20 39 20 35 31 32 20 31 30 20   8 256 9 512 10 
5690: 31 30 32 34 20 31 31 20 32 30 34 38 20 31 32 20  1024 11 2048 12 
56a0: 34 30 39 36 20 31 33 20 38 31 39 32 20 31 34 20  4096 13 8192 14 
56b0: 31 36 33 38 34 20 31 35 20 33 32 37 36 38 20 31  16384 15 32768 1
56c0: 36 20 36 35 35 33 36 20 31 37 20 31 33 31 30 37  6 65536 17 13107
56d0: 32 20 31 38 20 32 36 32 31 34 34 20 31 39 20 35  2 18 262144 19 5
56e0: 32 34 32 38 38 20 32 30 20 31 30 34 38 35 37 36  24288 20 1048576
56f0: 7d 0a 0a 70 72 6f 63 20 74 65 73 74 5f 65 78 70  }..proc test_exp
5700: 72 32 20 7b 6e 61 6d 65 20 65 78 70 72 20 72 65  r2 {name expr re
5710: 73 75 6c 74 7d 20 7b 0a 20 20 64 6f 5f 74 65 73  sult} {.  do_tes
5720: 74 20 24 6e 61 6d 65 20 5b 66 6f 72 6d 61 74 20  t $name [format 
5730: 7b 0a 20 20 20 20 65 78 65 63 73 71 6c 20 7b 53  {.    execsql {S
5740: 45 4c 45 43 54 20 61 20 46 52 4f 4d 20 74 65 73  ELECT a FROM tes
5750: 74 31 20 57 48 45 52 45 20 25 73 20 4f 52 44 45  t1 WHERE %s ORDE
5760: 52 20 42 59 20 61 7d 0a 20 20 7d 20 24 65 78 70  R BY a}.  } $exp
5770: 72 5d 20 24 72 65 73 75 6c 74 0a 7d 0a 0a 74 65  r] $result.}..te
5780: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
5790: 32 20 20 7b 61 3c 31 30 20 41 4e 44 20 61 3e 38  2  {a<10 AND a>8
57a0: 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  }               
57b0: 20 20 20 7b 39 7d 0a 74 65 73 74 5f 65 78 70 72     {9}.test_expr
57c0: 32 20 65 78 70 72 2d 37 2e 33 20 20 7b 61 3c 3d  2 expr-7.3  {a<=
57d0: 31 30 20 41 4e 44 20 61 3e 3d 38 7d 20 20 20 20  10 AND a>=8}    
57e0: 20 20 20 20 20 20 20 20 20 20 20 20 7b 38 20 39              {8 9
57f0: 20 31 30 7d 0a 74 65 73 74 5f 65 78 70 72 32 20   10}.test_expr2 
5800: 65 78 70 72 2d 37 2e 34 20 20 7b 61 3e 3d 38 20  expr-7.4  {a>=8 
5810: 41 4e 44 20 61 3c 3d 31 30 7d 20 20 20 20 20 20  AND a<=10}      
5820: 20 20 20 20 20 20 20 20 20 20 7b 38 20 39 20 31            {8 9 1
5830: 30 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  0}.test_expr2 ex
5840: 70 72 2d 37 2e 35 20 20 7b 61 3e 3d 32 30 20 4f  pr-7.5  {a>=20 O
5850: 52 20 61 3c 3d 31 7d 20 20 20 20 20 20 20 20 20  R a<=1}         
5860: 20 20 20 20 20 20 20 20 7b 31 20 32 30 7d 0a 74          {1 20}.t
5870: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
5880: 2e 36 20 20 7b 62 21 3d 34 20 41 4e 44 20 61 3c  .6  {b!=4 AND a<
5890: 3d 33 7d 20 20 20 20 20 20 20 20 20 20 20 20 20  =3}             
58a0: 20 20 20 20 7b 31 20 33 7d 0a 74 65 73 74 5f 65      {1 3}.test_e
58b0: 78 70 72 32 20 65 78 70 72 2d 37 2e 37 20 20 7b  xpr2 expr-7.7  {
58c0: 62 3d 3d 38 20 4f 52 20 62 3d 3d 31 36 20 4f 52  b==8 OR b==16 OR
58d0: 20 62 3d 3d 33 32 7d 20 20 20 20 20 20 20 20 7b   b==32}        {
58e0: 33 20 34 20 35 7d 0a 74 65 73 74 5f 65 78 70 72  3 4 5}.test_expr
58f0: 32 20 65 78 70 72 2d 37 2e 38 20 20 7b 4e 4f 54  2 expr-7.8  {NOT
5900: 20 62 3c 3e 38 20 4f 52 20 62 3d 3d 31 30 32 34   b<>8 OR b==1024
5910: 7d 20 20 20 20 20 20 20 20 20 20 20 7b 33 20 31  }           {3 1
5920: 30 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  0}.test_expr2 ex
5930: 70 72 2d 37 2e 39 20 20 7b 62 20 4c 49 4b 45 20  pr-7.9  {b LIKE 
5940: 27 31 30 25 27 7d 20 20 20 20 20 20 20 20 20 20  '10%'}          
5950: 20 20 20 20 20 20 20 20 7b 31 30 20 32 30 7d 0a          {10 20}.
5960: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
5970: 37 2e 31 30 20 7b 62 20 4c 49 4b 45 20 27 5f 34  7.10 {b LIKE '_4
5980: 27 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20  '}              
5990: 20 20 20 20 20 7b 36 7d 0a 74 65 73 74 5f 65 78       {6}.test_ex
59a0: 70 72 32 20 65 78 70 72 2d 37 2e 31 31 20 7b 61  pr2 expr-7.11 {a
59b0: 20 47 4c 4f 42 20 27 31 3f 27 7d 20 20 20 20 20   GLOB '1?'}     
59c0: 20 20 20 20 20 20 20 7b 31 30 20 31 31 20 31 32         {10 11 12
59d0: 20 31 33 20 31 34 20 31 35 20 31 36 20 31 37 20   13 14 15 16 17 
59e0: 31 38 20 31 39 7d 0a 74 65 73 74 5f 65 78 70 72  18 19}.test_expr
59f0: 32 20 65 78 70 72 2d 37 2e 31 32 20 7b 62 20 47  2 expr-7.12 {b G
5a00: 4c 4f 42 20 27 31 2a 34 27 7d 20 20 20 20 20 20  LOB '1*4'}      
5a10: 20 20 20 20 20 20 20 20 20 20 20 20 7b 31 30 20              {10 
5a20: 31 34 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65  14}.test_expr2 e
5a30: 78 70 72 2d 37 2e 31 33 20 7b 62 20 47 4c 4f 42  xpr-7.13 {b GLOB
5a40: 20 27 2a 31 5b 34 35 36 5d 27 7d 20 20 20 20 20   '*1[456]'}     
5a50: 20 20 20 20 20 20 20 20 20 7b 34 7d 0a 74 65 73           {4}.tes
5a60: 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 31  t_expr2 expr-7.1
5a70: 34 20 7b 61 20 49 53 4e 55 4c 4c 7d 20 20 20 20  4 {a ISNULL}    
5a80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5a90: 20 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72    {{}}.test_expr
5aa0: 32 20 65 78 70 72 2d 37 2e 31 35 20 7b 61 20 4e  2 expr-7.15 {a N
5ab0: 4f 54 4e 55 4c 4c 20 41 4e 44 20 61 3c 33 7d 20  OTNULL AND a<3} 
5ac0: 20 20 20 20 20 20 20 20 20 20 20 20 7b 31 20 32              {1 2
5ad0: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
5ae0: 72 2d 37 2e 31 36 20 7b 61 20 41 4e 44 20 61 3c  r-7.16 {a AND a<
5af0: 33 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20  3}              
5b00: 20 20 20 20 20 20 20 7b 31 20 32 7d 0a 74 65 73         {1 2}.tes
5b10: 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 31  t_expr2 expr-7.1
5b20: 37 20 7b 4e 4f 54 20 61 7d 20 20 20 20 20 20 20  7 {NOT a}       
5b30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5b40: 20 20 7b 7d 0a 74 65 73 74 5f 65 78 70 72 32 20    {}.test_expr2 
5b50: 65 78 70 72 2d 37 2e 31 38 20 7b 61 3d 3d 31 31  expr-7.18 {a==11
5b60: 20 4f 52 20 28 62 3e 31 30 30 30 20 41 4e 44 20   OR (b>1000 AND 
5b70: 62 3c 32 30 30 30 29 7d 20 20 7b 31 30 20 31 31  b<2000)}  {10 11
5b80: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
5b90: 72 2d 37 2e 31 39 20 7b 61 3c 3d 31 20 4f 52 20  r-7.19 {a<=1 OR 
5ba0: 61 3e 3d 32 30 7d 20 20 20 20 20 20 20 20 20 20  a>=20}          
5bb0: 20 20 20 20 20 20 20 7b 31 20 32 30 7d 0a 74 65         {1 20}.te
5bc0: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
5bd0: 32 30 20 7b 61 3c 31 20 4f 52 20 61 3e 32 30 7d  20 {a<1 OR a>20}
5be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5bf0: 20 20 20 7b 7d 0a 74 65 73 74 5f 65 78 70 72 32     {}.test_expr2
5c00: 20 65 78 70 72 2d 37 2e 32 31 20 7b 61 3e 31 39   expr-7.21 {a>19
5c10: 20 4f 52 20 61 3c 31 7d 20 20 20 20 20 20 20 20   OR a<1}        
5c20: 20 20 20 20 20 20 20 20 20 20 20 7b 32 30 7d 0a             {20}.
5c30: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
5c40: 37 2e 32 32 20 7b 61 21 3d 31 20 4f 52 20 61 3d  7.22 {a!=1 OR a=
5c50: 31 30 30 7d 20 5c 0a 20 20 20 20 20 20 20 20 20  100} \.         
5c60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5c70: 7b 32 20 33 20 34 20 35 20 36 20 37 20 38 20 39  {2 3 4 5 6 7 8 9
5c80: 20 31 30 20 31 31 20 31 32 20 31 33 20 31 34 20   10 11 12 13 14 
5c90: 31 35 20 31 36 20 31 37 20 31 38 20 31 39 20 32  15 16 17 18 19 2
5ca0: 30 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  0}.test_expr2 ex
5cb0: 70 72 2d 37 2e 32 33 20 7b 28 61 20 6e 6f 74 6e  pr-7.23 {(a notn
5cc0: 75 6c 6c 20 41 4e 44 20 61 3c 34 29 20 4f 52 20  ull AND a<4) OR 
5cd0: 61 3d 3d 38 7d 20 20 20 7b 31 20 32 20 33 20 38  a==8}   {1 2 3 8
5ce0: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
5cf0: 72 2d 37 2e 32 34 20 7b 61 20 4c 49 4b 45 20 27  r-7.24 {a LIKE '
5d00: 32 5f 27 20 4f 52 20 61 3d 3d 38 7d 20 20 20 20  2_' OR a==8}    
5d10: 20 20 20 20 20 20 20 7b 38 20 32 30 7d 0a 74 65         {8 20}.te
5d20: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
5d30: 32 35 20 7b 61 20 47 4c 4f 42 20 27 32 3f 27 20  25 {a GLOB '2?' 
5d40: 4f 52 20 61 3d 3d 38 7d 20 20 20 20 20 20 20 20  OR a==8}        
5d50: 20 20 20 7b 38 20 32 30 7d 0a 74 65 73 74 5f 65     {8 20}.test_e
5d60: 78 70 72 32 20 65 78 70 72 2d 37 2e 32 36 20 7b  xpr2 expr-7.26 {
5d70: 61 20 69 73 6e 75 6c 6c 20 4f 52 20 61 3d 38 7d  a isnull OR a=8}
5d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
5d90: 7b 7d 20 38 7d 0a 74 65 73 74 5f 65 78 70 72 32  {} 8}.test_expr2
5da0: 20 65 78 70 72 2d 37 2e 32 37 20 7b 61 20 6e 6f   expr-7.27 {a no
5db0: 74 6e 75 6c 6c 20 4f 52 20 61 3d 38 7d 20 5c 0a  tnull OR a=8} \.
5dc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5dd0: 20 20 20 20 20 20 20 20 20 20 7b 31 20 32 20 33            {1 2 3
5de0: 20 34 20 35 20 36 20 37 20 38 20 39 20 31 30 20   4 5 6 7 8 9 10 
5df0: 31 31 20 31 32 20 31 33 20 31 34 20 31 35 20 31  11 12 13 14 15 1
5e00: 36 20 31 37 20 31 38 20 31 39 20 32 30 7d 0a 74  6 17 18 19 20}.t
5e10: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
5e20: 2e 32 38 20 7b 61 3c 30 20 4f 52 20 62 3d 30 7d  .28 {a<0 OR b=0}
5e30: 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72 32   {{}}.test_expr2
5e40: 20 65 78 70 72 2d 37 2e 32 39 20 7b 62 3d 30 20   expr-7.29 {b=0 
5e50: 4f 52 20 61 3c 30 7d 20 7b 7b 7d 7d 0a 74 65 73  OR a<0} {{}}.tes
5e60: 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 33  t_expr2 expr-7.3
5e70: 30 20 7b 61 3c 30 20 41 4e 44 20 62 3d 30 7d 20  0 {a<0 AND b=0} 
5e80: 7b 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  {}.test_expr2 ex
5e90: 70 72 2d 37 2e 33 31 20 7b 62 3d 30 20 41 4e 44  pr-7.31 {b=0 AND
5ea0: 20 61 3c 30 7d 20 7b 7d 0a 74 65 73 74 5f 65 78   a<0} {}.test_ex
5eb0: 70 72 32 20 65 78 70 72 2d 37 2e 33 32 20 7b 61  pr2 expr-7.32 {a
5ec0: 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20 28 61 3c   IS NULL AND (a<
5ed0: 30 20 4f 52 20 62 3d 30 29 7d 20 7b 7b 7d 7d 0a  0 OR b=0)} {{}}.
5ee0: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
5ef0: 37 2e 33 33 20 7b 61 20 49 53 20 4e 55 4c 4c 20  7.33 {a IS NULL 
5f00: 41 4e 44 20 28 62 3d 30 20 4f 52 20 61 3c 30 29  AND (b=0 OR a<0)
5f10: 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78 70 72  } {{}}.test_expr
5f20: 32 20 65 78 70 72 2d 37 2e 33 34 20 7b 61 20 49  2 expr-7.34 {a I
5f30: 53 20 4e 55 4c 4c 20 41 4e 44 20 28 61 3c 30 20  S NULL AND (a<0 
5f40: 41 4e 44 20 62 3d 30 29 7d 20 7b 7d 0a 74 65 73  AND b=0)} {}.tes
5f50: 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 33  t_expr2 expr-7.3
5f60: 35 20 7b 61 20 49 53 20 4e 55 4c 4c 20 41 4e 44  5 {a IS NULL AND
5f70: 20 28 62 3d 30 20 41 4e 44 20 61 3c 30 29 7d 20   (b=0 AND a<0)} 
5f80: 7b 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  {}.test_expr2 ex
5f90: 70 72 2d 37 2e 33 32 20 7b 28 61 3c 30 20 4f 52  pr-7.32 {(a<0 OR
5fa0: 20 62 3d 30 29 20 41 4e 44 20 61 20 49 53 20 4e   b=0) AND a IS N
5fb0: 55 4c 4c 7d 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65  ULL} {{}}.test_e
5fc0: 78 70 72 32 20 65 78 70 72 2d 37 2e 33 33 20 7b  xpr2 expr-7.33 {
5fd0: 28 62 3d 30 20 4f 52 20 61 3c 30 29 20 41 4e 44  (b=0 OR a<0) AND
5fe0: 20 61 20 49 53 20 4e 55 4c 4c 7d 20 7b 7b 7d 7d   a IS NULL} {{}}
5ff0: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
6000: 2d 37 2e 33 34 20 7b 28 61 3c 30 20 41 4e 44 20  -7.34 {(a<0 AND 
6010: 62 3d 30 29 20 41 4e 44 20 61 20 49 53 20 4e 55  b=0) AND a IS NU
6020: 4c 4c 7d 20 7b 7d 0a 74 65 73 74 5f 65 78 70 72  LL} {}.test_expr
6030: 32 20 65 78 70 72 2d 37 2e 33 35 20 7b 28 62 3d  2 expr-7.35 {(b=
6040: 30 20 41 4e 44 20 61 3c 30 29 20 41 4e 44 20 61  0 AND a<0) AND a
6050: 20 49 53 20 4e 55 4c 4c 7d 20 7b 7d 0a 74 65 73   IS NULL} {}.tes
6060: 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 33  t_expr2 expr-7.3
6070: 36 20 7b 61 3c 32 20 4f 52 20 28 61 3c 30 20 4f  6 {a<2 OR (a<0 O
6080: 52 20 62 3d 30 29 7d 20 7b 7b 7d 20 31 7d 0a 74  R b=0)} {{} 1}.t
6090: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
60a0: 2e 33 37 20 7b 61 3c 32 20 4f 52 20 28 62 3d 30  .37 {a<2 OR (b=0
60b0: 20 4f 52 20 61 3c 30 29 7d 20 7b 7b 7d 20 31 7d   OR a<0)} {{} 1}
60c0: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
60d0: 2d 37 2e 33 38 20 7b 61 3c 32 20 4f 52 20 28 61  -7.38 {a<2 OR (a
60e0: 3c 30 20 41 4e 44 20 62 3d 30 29 7d 20 7b 31 7d  <0 AND b=0)} {1}
60f0: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
6100: 2d 37 2e 33 39 20 7b 61 3c 32 20 4f 52 20 28 62  -7.39 {a<2 OR (b
6110: 3d 30 20 41 4e 44 20 61 3c 30 29 7d 20 7b 31 7d  =0 AND a<0)} {1}
6120: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
6130: 2d 37 2e 34 30 20 7b 28 28 61 3c 32 20 4f 52 20  -7.40 {((a<2 OR 
6140: 61 20 49 53 20 4e 55 4c 4c 29 20 41 4e 44 20 62  a IS NULL) AND b
6150: 3c 33 29 20 4f 52 20 62 3e 31 65 31 30 7d 20 7b  <3) OR b>1e10} {
6160: 7b 7d 20 31 7d 0a 74 65 73 74 5f 65 78 70 72 32  {} 1}.test_expr2
6170: 20 65 78 70 72 2d 37 2e 34 31 20 7b 61 20 42 45   expr-7.41 {a BE
6180: 54 57 45 45 4e 20 2d 31 20 41 4e 44 20 31 7d 20  TWEEN -1 AND 1} 
6190: 7b 31 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65  {1}.test_expr2 e
61a0: 78 70 72 2d 37 2e 34 32 20 7b 61 20 4e 4f 54 20  xpr-7.42 {a NOT 
61b0: 42 45 54 57 45 45 4e 20 32 20 41 4e 44 20 31 30  BETWEEN 2 AND 10
61c0: 30 7d 20 7b 31 7d 0a 74 65 73 74 5f 65 78 70 72  0} {1}.test_expr
61d0: 32 20 65 78 70 72 2d 37 2e 34 33 20 7b 28 62 2b  2 expr-7.43 {(b+
61e0: 31 32 33 34 29 7c 7c 27 74 68 69 73 20 69 73 20  1234)||'this is 
61f0: 61 20 73 74 72 69 6e 67 20 74 68 61 74 20 69 73  a string that is
6200: 20 61 74 20 6c 65 61 73 74 20 33 32 20 63 68 61   at least 32 cha
6210: 72 61 63 74 65 72 73 20 6c 6f 6e 67 27 20 42 45  racters long' BE
6220: 54 57 45 45 4e 20 31 20 41 4e 44 20 32 7d 20 7b  TWEEN 1 AND 2} {
6230: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
6240: 72 2d 37 2e 34 34 20 7b 31 32 33 7c 7c 27 78 61  r-7.44 {123||'xa
6250: 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71  bcdefghijklmnopq
6260: 72 73 74 75 76 77 79 78 7a 30 31 32 33 34 35 36  rstuvwyxz0123456
6270: 37 38 39 30 27 7c 7c 61 20 42 45 54 57 45 45 4e  7890'||a BETWEEN
6280: 20 27 31 32 33 61 27 20 41 4e 44 20 27 31 32 33   '123a' AND '123
6290: 62 27 7d 20 7b 7d 0a 74 65 73 74 5f 65 78 70 72  b'} {}.test_expr
62a0: 32 20 65 78 70 72 2d 37 2e 34 35 20 7b 28 28 31  2 expr-7.45 {((1
62b0: 32 33 7c 7c 27 78 61 62 63 64 65 66 67 68 69 6a  23||'xabcdefghij
62c0: 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 79 78 7a  klmnopqrstuvwyxz
62d0: 30 31 32 33 34 35 36 37 38 39 30 27 7c 7c 61 29  01234567890'||a)
62e0: 20 42 45 54 57 45 45 4e 20 27 31 32 33 61 27 20   BETWEEN '123a' 
62f0: 41 4e 44 20 27 31 32 33 62 27 29 3c 30 7d 20 7b  AND '123b')<0} {
6300: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
6310: 72 2d 37 2e 34 36 20 7b 28 28 31 32 33 7c 7c 27  r-7.46 {((123||'
6320: 78 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f  xabcdefghijklmno
6330: 70 71 72 73 74 75 76 77 79 78 7a 30 31 32 33 34  pqrstuvwyxz01234
6340: 35 36 37 38 39 30 27 7c 7c 61 29 20 42 45 54 57  567890'||a) BETW
6350: 45 45 4e 20 27 31 32 33 61 27 20 41 4e 44 20 27  EEN '123a' AND '
6360: 31 32 33 7a 27 29 3e 30 7d 20 7b 31 20 32 20 33  123z')>0} {1 2 3
6370: 20 34 20 35 20 36 20 37 20 38 20 39 20 31 30 20   4 5 6 7 8 9 10 
6380: 31 31 20 31 32 20 31 33 20 31 34 20 31 35 20 31  11 12 13 14 15 1
6390: 36 20 31 37 20 31 38 20 31 39 20 32 30 7d 0a 0a  6 17 18 19 20}..
63a0: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
63b0: 37 2e 35 30 20 7b 28 28 61 20 62 65 74 77 65 65  7.50 {((a betwee
63c0: 6e 20 31 20 61 6e 64 20 32 20 4f 52 20 30 29 20  n 1 and 2 OR 0) 
63d0: 41 4e 44 20 31 29 20 4f 52 20 30 7d 20 7b 31 20  AND 1) OR 0} {1 
63e0: 32 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  2}.test_expr2 ex
63f0: 70 72 2d 37 2e 35 31 20 7b 28 28 61 20 6e 6f 74  pr-7.51 {((a not
6400: 20 62 65 74 77 65 65 6e 20 33 20 61 6e 64 20 31   between 3 and 1
6410: 30 30 20 4f 52 20 30 29 20 41 4e 44 20 31 29 20  00 OR 0) AND 1) 
6420: 4f 52 20 30 7d 20 7b 31 20 32 7d 0a 74 65 73 74  OR 0} {1 2}.test
6430: 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 35 32  _expr2 expr-7.52
6440: 20 7b 28 28 61 20 69 6e 20 28 31 2c 32 29 20 4f   {((a in (1,2) O
6450: 52 20 30 29 20 41 4e 44 20 31 29 20 4f 52 20 30  R 0) AND 1) OR 0
6460: 7d 20 7b 31 20 32 7d 0a 74 65 73 74 5f 65 78 70  } {1 2}.test_exp
6470: 72 32 20 65 78 70 72 2d 37 2e 35 33 20 7b 28 28  r2 expr-7.53 {((
6480: 61 20 6e 6f 74 20 69 6e 20 28 33 2c 34 2c 35 2c  a not in (3,4,5,
6490: 36 2c 37 2c 38 2c 39 2c 31 30 29 20 4f 52 20 30  6,7,8,9,10) OR 0
64a0: 29 20 41 4e 44 20 61 3c 31 31 29 20 4f 52 20 30  ) AND a<11) OR 0
64b0: 7d 20 7b 31 20 32 7d 0a 74 65 73 74 5f 65 78 70  } {1 2}.test_exp
64c0: 72 32 20 65 78 70 72 2d 37 2e 35 34 20 7b 28 28  r2 expr-7.54 {((
64d0: 61 3e 30 20 4f 52 20 30 29 20 41 4e 44 20 61 3c  a>0 OR 0) AND a<
64e0: 33 29 20 4f 52 20 30 7d 20 7b 31 20 32 7d 0a 74  3) OR 0} {1 2}.t
64f0: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
6500: 2e 35 35 20 7b 28 28 61 20 69 6e 20 28 31 2c 32  .55 {((a in (1,2
6510: 29 20 4f 52 20 30 29 20 49 53 20 4e 55 4c 4c 20  ) OR 0) IS NULL 
6520: 41 4e 44 20 31 29 20 4f 52 20 30 7d 20 7b 7b 7d  AND 1) OR 0} {{}
6530: 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70  }.test_expr2 exp
6540: 72 2d 37 2e 35 36 20 7b 28 28 61 20 6e 6f 74 20  r-7.56 {((a not 
6550: 69 6e 20 28 33 2c 34 2c 35 2c 36 2c 37 2c 38 2c  in (3,4,5,6,7,8,
6560: 39 2c 31 30 29 20 49 53 20 4e 55 4c 4c 20 4f 52  9,10) IS NULL OR
6570: 20 30 29 20 41 4e 44 20 31 29 20 4f 52 20 30 7d   0) AND 1) OR 0}
6580: 20 5c 0a 20 20 20 7b 7b 7d 7d 0a 74 65 73 74 5f   \.   {{}}.test_
6590: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 35 37 20  expr2 expr-7.57 
65a0: 7b 28 28 61 3e 30 20 49 53 20 4e 55 4c 4c 20 4f  {((a>0 IS NULL O
65b0: 52 20 30 29 20 41 4e 44 20 31 29 20 4f 52 20 30  R 0) AND 1) OR 0
65c0: 7d 20 7b 7b 7d 7d 0a 0a 74 65 73 74 5f 65 78 70  } {{}}..test_exp
65d0: 72 32 20 65 78 70 72 2d 37 2e 35 38 20 20 7b 28  r2 expr-7.58  {(
65e0: 61 7c 7c 27 27 29 3c 3d 27 31 27 7d 20 20 20 20  a||'')<='1'}    
65f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 31                {1
6600: 7d 0a 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  }..test_expr2 ex
6610: 70 72 2d 37 2e 35 39 20 7b 4c 49 4b 45 28 27 31  pr-7.59 {LIKE('1
6620: 30 25 27 2c 62 29 7d 20 20 20 20 20 20 20 20 20  0%',b)}         
6630: 20 20 20 20 20 20 20 20 20 7b 31 30 20 32 30 7d           {10 20}
6640: 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72  .test_expr2 expr
6650: 2d 37 2e 36 30 20 7b 4c 49 4b 45 28 27 5f 34 27  -7.60 {LIKE('_4'
6660: 2c 62 29 7d 20 20 20 20 20 20 20 20 20 20 20 20  ,b)}            
6670: 20 20 20 20 20 20 20 7b 36 7d 0a 74 65 73 74 5f         {6}.test_
6680: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 36 31 20  expr2 expr-7.61 
6690: 7b 47 4c 4f 42 28 27 31 3f 27 2c 61 29 7d 20 20  {GLOB('1?',a)}  
66a0: 20 20 20 20 20 20 20 20 20 20 7b 31 30 20 31 31            {10 11
66b0: 20 31 32 20 31 33 20 31 34 20 31 35 20 31 36 20   12 13 14 15 16 
66c0: 31 37 20 31 38 20 31 39 7d 0a 74 65 73 74 5f 65  17 18 19}.test_e
66d0: 78 70 72 32 20 65 78 70 72 2d 37 2e 36 32 20 7b  xpr2 expr-7.62 {
66e0: 47 4c 4f 42 28 27 31 2a 34 27 2c 62 29 7d 20 20  GLOB('1*4',b)}  
66f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6700: 7b 31 30 20 31 34 7d 0a 74 65 73 74 5f 65 78 70  {10 14}.test_exp
6710: 72 32 20 65 78 70 72 2d 37 2e 36 33 20 7b 47 4c  r2 expr-7.63 {GL
6720: 4f 42 28 27 2a 31 5b 34 35 36 5d 27 2c 62 29 7d  OB('*1[456]',b)}
6730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 34                {4
6740: 7d 0a 0a 0a 66 69 6e 69 73 68 5f 74 65 73 74 0a  }...finish_test.