/ Hex Artifact Content
Login

Artifact 8b62f3fcac64fbd5c3d43d7a7984245743dcbe65:


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