/ Hex Artifact Content
Login

Artifact 7d017f1aa64c981b161408a015424cd90592bc16:


0000: 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20  # Copyright (c) 
0010: 31 39 39 39 2c 20 32 30 30 30 20 44 2e 20 52 69  1999, 2000 D. Ri
0020: 63 68 61 72 64 20 48 69 70 70 0a 23 0a 23 20 54  chard Hipp.#.# T
0030: 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66  his program is f
0040: 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f  ree software; yo
0050: 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75  u can redistribu
0060: 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 23 20 6d  te it and/or.# m
0070: 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 20 74  odify it under t
0080: 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20  he terms of the 
0090: 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c  GNU General Publ
00a0: 69 63 0a 23 20 4c 69 63 65 6e 73 65 20 61 73 20  ic.# License as 
00b0: 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65  published by the
00c0: 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46   Free Software F
00d0: 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65  oundation; eithe
00e0: 72 0a 23 20 76 65 72 73 69 6f 6e 20 32 20 6f 66  r.# version 2 of
00f0: 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72   the License, or
0100: 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e   (at your option
0110: 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73  ) any later vers
0120: 69 6f 6e 2e 0a 23 0a 23 20 54 68 69 73 20 70 72  ion..#.# This pr
0130: 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62  ogram is distrib
0140: 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65  uted in the hope
0150: 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65   that it will be
0160: 20 75 73 65 66 75 6c 2c 0a 23 20 62 75 74 20 57   useful,.# but W
0170: 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41  ITHOUT ANY WARRA
0180: 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65  NTY; without eve
0190: 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61  n the implied wa
01a0: 72 72 61 6e 74 79 20 6f 66 0a 23 20 4d 45 52 43  rranty of.# MERC
01b0: 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46  HANTABILITY or F
01c0: 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52  ITNESS FOR A PAR
01d0: 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e  TICULAR PURPOSE.
01e0: 20 20 53 65 65 20 74 68 65 20 47 4e 55 0a 23 20    See the GNU.# 
01f0: 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c  General Public L
0200: 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20  icense for more 
0210: 64 65 74 61 69 6c 73 2e 0a 23 20 0a 23 20 59 6f  details..# .# Yo
0220: 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65  u should have re
0230: 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66  ceived a copy of
0240: 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c   the GNU General
0250: 20 50 75 62 6c 69 63 0a 23 20 4c 69 63 65 6e 73   Public.# Licens
0260: 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69  e along with thi
0270: 73 20 6c 69 62 72 61 72 79 3b 20 69 66 20 6e 6f  s library; if no
0280: 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a  t, write to the.
0290: 23 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20  # Free Software 
02a0: 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e  Foundation, Inc.
02b0: 2c 20 35 39 20 54 65 6d 70 6c 65 20 50 6c 61 63  , 59 Temple Plac
02c0: 65 20 2d 20 53 75 69 74 65 20 33 33 30 2c 0a 23  e - Suite 330,.#
02d0: 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 20 30 32 31   Boston, MA  021
02e0: 31 31 2d 31 33 30 37 2c 20 55 53 41 2e 0a 23 0a  11-1307, USA..#.
02f0: 23 20 41 75 74 68 6f 72 20 63 6f 6e 74 61 63 74  # Author contact
0300: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3a 0a 23 20   information:.# 
0310: 20 20 64 72 68 40 68 77 61 63 69 2e 63 6f 6d 0a    drh@hwaci.com.
0320: 23 20 20 20 68 74 74 70 3a 2f 2f 77 77 77 2e 68  #   http://www.h
0330: 77 61 63 69 2e 63 6f 6d 2f 64 72 68 2f 0a 23 0a  waci.com/drh/.#.
0340: 23 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  #***************
0350: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0360: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0370: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0380: 2a 2a 2a 2a 2a 2a 2a 2a 0a 23 20 54 68 69 73 20  ********.# This 
0390: 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20  file implements 
03a0: 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74 73  regression tests
03b0: 20 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62 72   for SQLite libr
03c0: 61 72 79 2e 20 20 54 68 65 0a 23 20 66 6f 63 75  ary.  The.# focu
03d0: 73 20 6f 66 20 74 68 69 73 20 66 69 6c 65 20 69  s of this file i
03e0: 73 20 74 65 73 74 69 6e 67 20 65 78 70 72 65 73  s testing expres
03f0: 73 69 6f 6e 73 2e 0a 23 0a 23 20 24 49 64 3a 20  sions..#.# $Id: 
0400: 65 78 70 72 2e 74 65 73 74 2c 76 20 31 2e 36 20  expr.test,v 1.6 
0410: 32 30 30 30 2f 30 36 2f 30 37 20 31 35 3a 32 33  2000/06/07 15:23
0420: 3a 35 36 20 64 72 68 20 45 78 70 20 24 0a 0a 73  :56 drh Exp $..s
0430: 65 74 20 74 65 73 74 64 69 72 20 5b 66 69 6c 65  et testdir [file
0440: 20 64 69 72 6e 61 6d 65 20 24 61 72 67 76 30 5d   dirname $argv0]
0450: 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64 69 72  .source $testdir
0460: 2f 74 65 73 74 65 72 2e 74 63 6c 0a 0a 23 20 43  /tester.tcl..# C
0470: 72 65 61 74 65 20 61 20 74 61 62 6c 65 20 74 6f  reate a table to
0480: 20 77 6f 72 6b 20 77 69 74 68 2e 0a 23 0a 65 78   work with..#.ex
0490: 65 63 73 71 6c 20 7b 43 52 45 41 54 45 20 54 41  ecsql {CREATE TA
04a0: 42 4c 45 20 74 65 73 74 31 28 69 31 20 69 6e 74  BLE test1(i1 int
04b0: 2c 20 69 32 20 69 6e 74 2c 20 72 31 20 72 65 61  , i2 int, r1 rea
04c0: 6c 2c 20 72 32 20 72 65 61 6c 2c 20 74 31 20 74  l, r2 real, t1 t
04d0: 65 78 74 2c 20 74 32 20 74 65 78 74 29 7d 0a 65  ext, t2 text)}.e
04e0: 78 65 63 73 71 6c 20 7b 49 4e 53 45 52 54 20 49  xecsql {INSERT I
04f0: 4e 54 4f 20 74 65 73 74 31 20 56 41 4c 55 45 53  NTO test1 VALUES
0500: 28 31 2c 32 2c 31 2e 31 2c 32 2e 32 2c 27 68 65  (1,2,1.1,2.2,'he
0510: 6c 6c 6f 27 2c 27 77 6f 72 6c 64 27 29 7d 0a 70  llo','world')}.p
0520: 72 6f 63 20 74 65 73 74 5f 65 78 70 72 20 7b 6e  roc test_expr {n
0530: 61 6d 65 20 73 65 74 74 69 6e 67 73 20 65 78 70  ame settings exp
0540: 72 20 72 65 73 75 6c 74 7d 20 7b 0a 20 20 64 6f  r result} {.  do
0550: 5f 74 65 73 74 20 24 6e 61 6d 65 20 5b 66 6f 72  _test $name [for
0560: 6d 61 74 20 7b 0a 20 20 20 20 65 78 65 63 73 71  mat {.    execsq
0570: 6c 20 7b 55 50 44 41 54 45 20 74 65 73 74 31 20  l {UPDATE test1 
0580: 53 45 54 20 25 73 7d 0a 20 20 20 20 65 78 65 63  SET %s}.    exec
0590: 73 71 6c 20 7b 53 45 4c 45 43 54 20 25 73 20 46  sql {SELECT %s F
05a0: 52 4f 4d 20 74 65 73 74 31 7d 0a 20 20 7d 20 24  ROM test1}.  } $
05b0: 73 65 74 74 69 6e 67 73 20 24 65 78 70 72 5d 20  settings $expr] 
05c0: 24 72 65 73 75 6c 74 0a 7d 0a 0a 74 65 73 74 5f  $result.}..test_
05d0: 65 78 70 72 20 65 78 70 72 2d 31 2e 31 20 7b 69  expr expr-1.1 {i
05e0: 31 3d 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69 31  1=10, i2=20} {i1
05f0: 2b 69 32 7d 20 33 30 0a 74 65 73 74 5f 65 78 70  +i2} 30.test_exp
0600: 72 20 65 78 70 72 2d 31 2e 32 20 7b 69 31 3d 31  r expr-1.2 {i1=1
0610: 30 2c 20 69 32 3d 32 30 7d 20 7b 69 31 2d 69 32  0, i2=20} {i1-i2
0620: 7d 20 2d 31 30 0a 74 65 73 74 5f 65 78 70 72 20  } -10.test_expr 
0630: 65 78 70 72 2d 31 2e 33 20 7b 69 31 3d 31 30 2c  expr-1.3 {i1=10,
0640: 20 69 32 3d 32 30 7d 20 7b 69 31 2a 69 32 7d 20   i2=20} {i1*i2} 
0650: 32 30 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  200.test_expr ex
0660: 70 72 2d 31 2e 34 20 7b 69 31 3d 31 30 2c 20 69  pr-1.4 {i1=10, i
0670: 32 3d 32 30 7d 20 7b 69 31 2f 69 32 7d 20 30 2e  2=20} {i1/i2} 0.
0680: 35 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  5.test_expr expr
0690: 2d 31 2e 35 20 7b 69 31 3d 31 30 2c 20 69 32 3d  -1.5 {i1=10, i2=
06a0: 32 30 7d 20 7b 69 32 2f 69 31 7d 20 32 0a 74 65  20} {i2/i1} 2.te
06b0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 36  st_expr expr-1.6
06c0: 20 7b 69 31 3d 31 30 2c 20 69 32 3d 32 30 7d 20   {i1=10, i2=20} 
06d0: 7b 69 32 3c 69 31 7d 20 30 0a 74 65 73 74 5f 65  {i2<i1} 0.test_e
06e0: 78 70 72 20 65 78 70 72 2d 31 2e 37 20 7b 69 31  xpr expr-1.7 {i1
06f0: 3d 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3c  =10, i2=20} {i2<
0700: 3d 69 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72  =i1} 0.test_expr
0710: 20 65 78 70 72 2d 31 2e 38 20 7b 69 31 3d 31 30   expr-1.8 {i1=10
0720: 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3e 69 31 7d  , i2=20} {i2>i1}
0730: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
0740: 72 2d 31 2e 39 20 7b 69 31 3d 31 30 2c 20 69 32  r-1.9 {i1=10, i2
0750: 3d 32 30 7d 20 7b 69 32 3e 3d 69 31 7d 20 31 0a  =20} {i2>=i1} 1.
0760: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31  test_expr expr-1
0770: 2e 31 30 20 7b 69 31 3d 31 30 2c 20 69 32 3d 32  .10 {i1=10, i2=2
0780: 30 7d 20 7b 69 32 21 3d 69 31 7d 20 31 0a 74 65  0} {i2!=i1} 1.te
0790: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 31  st_expr expr-1.1
07a0: 31 20 7b 69 31 3d 31 30 2c 20 69 32 3d 32 30 7d  1 {i1=10, i2=20}
07b0: 20 7b 69 32 3d 69 31 7d 20 30 0a 74 65 73 74 5f   {i2=i1} 0.test_
07c0: 65 78 70 72 20 65 78 70 72 2d 31 2e 31 32 20 7b  expr expr-1.12 {
07d0: 69 31 3d 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69  i1=10, i2=20} {i
07e0: 32 3c 3e 69 31 7d 20 31 0a 74 65 73 74 5f 65 78  2<>i1} 1.test_ex
07f0: 70 72 20 65 78 70 72 2d 31 2e 31 33 20 7b 69 31  pr expr-1.13 {i1
0800: 3d 31 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3d  =10, i2=20} {i2=
0810: 3d 69 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72  =i1} 0.test_expr
0820: 20 65 78 70 72 2d 31 2e 31 34 20 7b 69 31 3d 32   expr-1.14 {i1=2
0830: 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3c 69 31  0, i2=20} {i2<i1
0840: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
0850: 70 72 2d 31 2e 31 35 20 7b 69 31 3d 32 30 2c 20  pr-1.15 {i1=20, 
0860: 69 32 3d 32 30 7d 20 7b 69 32 3c 3d 69 31 7d 20  i2=20} {i2<=i1} 
0870: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
0880: 2d 31 2e 31 36 20 7b 69 31 3d 32 30 2c 20 69 32  -1.16 {i1=20, i2
0890: 3d 32 30 7d 20 7b 69 32 3e 69 31 7d 20 30 0a 74  =20} {i2>i1} 0.t
08a0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
08b0: 31 37 20 7b 69 31 3d 32 30 2c 20 69 32 3d 32 30  17 {i1=20, i2=20
08c0: 7d 20 7b 69 32 3e 3d 69 31 7d 20 31 0a 74 65 73  } {i2>=i1} 1.tes
08d0: 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 31 38  t_expr expr-1.18
08e0: 20 7b 69 31 3d 32 30 2c 20 69 32 3d 32 30 7d 20   {i1=20, i2=20} 
08f0: 7b 69 32 21 3d 69 31 7d 20 30 0a 74 65 73 74 5f  {i2!=i1} 0.test_
0900: 65 78 70 72 20 65 78 70 72 2d 31 2e 31 39 20 7b  expr expr-1.19 {
0910: 69 31 3d 32 30 2c 20 69 32 3d 32 30 7d 20 7b 69  i1=20, i2=20} {i
0920: 32 3d 69 31 7d 20 31 0a 74 65 73 74 5f 65 78 70  2=i1} 1.test_exp
0930: 72 20 65 78 70 72 2d 31 2e 32 30 20 7b 69 31 3d  r expr-1.20 {i1=
0940: 32 30 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3c 3e  20, i2=20} {i2<>
0950: 69 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  i1} 0.test_expr 
0960: 65 78 70 72 2d 31 2e 32 31 20 7b 69 31 3d 32 30  expr-1.21 {i1=20
0970: 2c 20 69 32 3d 32 30 7d 20 7b 69 32 3d 3d 69 31  , i2=20} {i2==i1
0980: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
0990: 70 72 2d 31 2e 32 32 20 7b 69 31 3d 31 2c 20 69  pr-1.22 {i1=1, i
09a0: 32 3d 32 2c 20 72 31 3d 33 2e 30 7d 20 7b 69 31  2=2, r1=3.0} {i1
09b0: 2b 69 32 2a 72 31 7d 20 7b 37 7d 0a 74 65 73 74  +i2*r1} {7}.test
09c0: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 32 33 20  _expr expr-1.23 
09d0: 7b 69 31 3d 31 2c 20 69 32 3d 32 2c 20 72 31 3d  {i1=1, i2=2, r1=
09e0: 33 2e 30 7d 20 7b 28 69 31 2b 69 32 29 2a 72 31  3.0} {(i1+i2)*r1
09f0: 7d 20 7b 39 7d 0a 74 65 73 74 5f 65 78 70 72 20  } {9}.test_expr 
0a00: 65 78 70 72 2d 31 2e 32 34 20 7b 69 31 3d 31 2c  expr-1.24 {i1=1,
0a10: 20 69 32 3d 32 7d 20 7b 6d 69 6e 28 69 31 2c 69   i2=2} {min(i1,i
0a20: 32 2c 69 31 2b 69 32 2c 69 31 2d 69 32 29 7d 20  2,i1+i2,i1-i2)} 
0a30: 7b 2d 31 7d 0a 74 65 73 74 5f 65 78 70 72 20 65  {-1}.test_expr e
0a40: 78 70 72 2d 31 2e 32 35 20 7b 69 31 3d 31 2c 20  xpr-1.25 {i1=1, 
0a50: 69 32 3d 32 7d 20 7b 6d 61 78 28 69 31 2c 69 32  i2=2} {max(i1,i2
0a60: 2c 69 31 2b 69 32 2c 69 31 2d 69 32 29 7d 20 7b  ,i1+i2,i1-i2)} {
0a70: 33 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  3}.test_expr exp
0a80: 72 2d 31 2e 32 36 20 7b 69 31 3d 31 2c 20 69 32  r-1.26 {i1=1, i2
0a90: 3d 32 7d 20 7b 6d 61 78 28 69 31 2c 69 32 2c 69  =2} {max(i1,i2,i
0aa0: 31 2b 69 32 2c 69 31 2d 69 32 29 7d 20 7b 33 7d  1+i2,i1-i2)} {3}
0ab0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0ac0: 31 2e 32 37 20 7b 69 31 3d 31 2c 20 69 32 3d 32  1.27 {i1=1, i2=2
0ad0: 7d 20 7b 69 31 3d 3d 31 20 41 4e 44 20 69 32 3d  } {i1==1 AND i2=
0ae0: 32 7d 20 7b 31 7d 0a 74 65 73 74 5f 65 78 70 72  2} {1}.test_expr
0af0: 20 65 78 70 72 2d 31 2e 32 38 20 7b 69 31 3d 31   expr-1.28 {i1=1
0b00: 2c 20 69 32 3d 32 7d 20 7b 69 31 3d 32 20 41 4e  , i2=2} {i1=2 AN
0b10: 44 20 69 32 3d 31 7d 20 7b 30 7d 0a 74 65 73 74  D i2=1} {0}.test
0b20: 5f 65 78 70 72 20 65 78 70 72 2d 31 2e 32 39 20  _expr expr-1.29 
0b30: 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 69 31  {i1=1, i2=2} {i1
0b40: 3d 31 20 41 4e 44 20 69 32 3d 31 7d 20 7b 30 7d  =1 AND i2=1} {0}
0b50: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0b60: 31 2e 33 30 20 7b 69 31 3d 31 2c 20 69 32 3d 32  1.30 {i1=1, i2=2
0b70: 7d 20 7b 69 31 3d 32 20 41 4e 44 20 69 32 3d 32  } {i1=2 AND i2=2
0b80: 7d 20 7b 30 7d 0a 74 65 73 74 5f 65 78 70 72 20  } {0}.test_expr 
0b90: 65 78 70 72 2d 31 2e 33 31 20 7b 69 31 3d 31 2c  expr-1.31 {i1=1,
0ba0: 20 69 32 3d 32 7d 20 7b 69 31 3d 3d 31 20 4f 52   i2=2} {i1==1 OR
0bb0: 20 69 32 3d 32 7d 20 7b 31 7d 0a 74 65 73 74 5f   i2=2} {1}.test_
0bc0: 65 78 70 72 20 65 78 70 72 2d 31 2e 33 32 20 7b  expr expr-1.32 {
0bd0: 69 31 3d 31 2c 20 69 32 3d 32 7d 20 7b 69 31 3d  i1=1, i2=2} {i1=
0be0: 32 20 4f 52 20 69 32 3d 31 7d 20 7b 30 7d 0a 74  2 OR i2=1} {0}.t
0bf0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 31 2e  est_expr expr-1.
0c00: 33 33 20 7b 69 31 3d 31 2c 20 69 32 3d 32 7d 20  33 {i1=1, i2=2} 
0c10: 7b 69 31 3d 31 20 4f 52 20 69 32 3d 31 7d 20 7b  {i1=1 OR i2=1} {
0c20: 31 7d 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  1}.test_expr exp
0c30: 72 2d 31 2e 33 34 20 7b 69 31 3d 31 2c 20 69 32  r-1.34 {i1=1, i2
0c40: 3d 32 7d 20 7b 69 31 3d 32 20 4f 52 20 69 32 3d  =2} {i1=2 OR i2=
0c50: 32 7d 20 7b 31 7d 0a 74 65 73 74 5f 65 78 70 72  2} {1}.test_expr
0c60: 20 65 78 70 72 2d 31 2e 33 35 20 7b 69 31 3d 31   expr-1.35 {i1=1
0c70: 2c 20 69 32 3d 32 7d 20 7b 69 31 2d 69 32 3d 2d  , i2=2} {i1-i2=-
0c80: 31 7d 20 7b 31 7d 0a 74 65 73 74 5f 65 78 70 72  1} {1}.test_expr
0c90: 20 65 78 70 72 2d 31 2e 33 36 20 7b 69 31 3d 31   expr-1.36 {i1=1
0ca0: 2c 20 69 32 3d 30 7d 20 7b 6e 6f 74 20 69 31 7d  , i2=0} {not i1}
0cb0: 20 7b 30 7d 0a 74 65 73 74 5f 65 78 70 72 20 65   {0}.test_expr e
0cc0: 78 70 72 2d 31 2e 33 37 20 7b 69 31 3d 31 2c 20  xpr-1.37 {i1=1, 
0cd0: 69 32 3d 4e 55 4c 4c 7d 20 7b 6e 6f 74 20 69 32  i2=NULL} {not i2
0ce0: 7d 20 7b 31 7d 0a 0a 74 65 73 74 5f 65 78 70 72  } {1}..test_expr
0cf0: 20 65 78 70 72 2d 32 2e 31 20 7b 72 31 3d 31 2e   expr-2.1 {r1=1.
0d00: 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 31  23, r2=2.34} {r1
0d10: 2b 72 32 7d 20 33 2e 35 37 0a 74 65 73 74 5f 65  +r2} 3.57.test_e
0d20: 78 70 72 20 65 78 70 72 2d 32 2e 32 20 7b 72 31  xpr expr-2.2 {r1
0d30: 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20  =1.23, r2=2.34} 
0d40: 7b 72 31 2d 72 32 7d 20 2d 31 2e 31 31 0a 74 65  {r1-r2} -1.11.te
0d50: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 33  st_expr expr-2.3
0d60: 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32 2e   {r1=1.23, r2=2.
0d70: 33 34 7d 20 7b 72 31 2a 72 32 7d 20 32 2e 38 37  34} {r1*r2} 2.87
0d80: 38 32 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70  82.test_expr exp
0d90: 72 2d 32 2e 34 20 7b 72 31 3d 31 2e 32 33 2c 20  r-2.4 {r1=1.23, 
0da0: 72 32 3d 32 2e 33 34 7d 20 7b 72 31 2f 72 32 7d  r2=2.34} {r1/r2}
0db0: 20 30 2e 35 32 35 36 34 31 0a 74 65 73 74 5f 65   0.525641.test_e
0dc0: 78 70 72 20 65 78 70 72 2d 32 2e 35 20 7b 72 31  xpr expr-2.5 {r1
0dd0: 3d 31 2e 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20  =1.23, r2=2.34} 
0de0: 7b 72 32 2f 72 31 7d 20 31 2e 39 30 32 34 34 0a  {r2/r1} 1.90244.
0df0: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32  test_expr expr-2
0e00: 2e 36 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d  .6 {r1=1.23, r2=
0e10: 32 2e 33 34 7d 20 7b 72 32 3c 72 31 7d 20 30 0a  2.34} {r2<r1} 0.
0e20: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32  test_expr expr-2
0e30: 2e 37 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d  .7 {r1=1.23, r2=
0e40: 32 2e 33 34 7d 20 7b 72 32 3c 3d 72 31 7d 20 30  2.34} {r2<=r1} 0
0e50: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0e60: 32 2e 38 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32  2.8 {r1=1.23, r2
0e70: 3d 32 2e 33 34 7d 20 7b 72 32 3e 72 31 7d 20 31  =2.34} {r2>r1} 1
0e80: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
0e90: 32 2e 39 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32  2.9 {r1=1.23, r2
0ea0: 3d 32 2e 33 34 7d 20 7b 72 32 3e 3d 72 31 7d 20  =2.34} {r2>=r1} 
0eb0: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
0ec0: 2d 32 2e 31 30 20 7b 72 31 3d 31 2e 32 33 2c 20  -2.10 {r1=1.23, 
0ed0: 72 32 3d 32 2e 33 34 7d 20 7b 72 32 21 3d 72 31  r2=2.34} {r2!=r1
0ee0: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
0ef0: 70 72 2d 32 2e 31 31 20 7b 72 31 3d 31 2e 32 33  pr-2.11 {r1=1.23
0f00: 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32 3d 72  , r2=2.34} {r2=r
0f10: 31 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  1} 0.test_expr e
0f20: 78 70 72 2d 32 2e 31 32 20 7b 72 31 3d 31 2e 32  xpr-2.12 {r1=1.2
0f30: 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32 3c  3, r2=2.34} {r2<
0f40: 3e 72 31 7d 20 31 0a 74 65 73 74 5f 65 78 70 72  >r1} 1.test_expr
0f50: 20 65 78 70 72 2d 32 2e 31 33 20 7b 72 31 3d 31   expr-2.13 {r1=1
0f60: 2e 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72  .23, r2=2.34} {r
0f70: 32 3d 3d 72 31 7d 20 30 0a 74 65 73 74 5f 65 78  2==r1} 0.test_ex
0f80: 70 72 20 65 78 70 72 2d 32 2e 31 34 20 7b 72 31  pr expr-2.14 {r1
0f90: 3d 32 2e 33 34 2c 20 72 32 3d 32 2e 33 34 7d 20  =2.34, r2=2.34} 
0fa0: 7b 72 32 3c 72 31 7d 20 30 0a 74 65 73 74 5f 65  {r2<r1} 0.test_e
0fb0: 78 70 72 20 65 78 70 72 2d 32 2e 31 35 20 7b 72  xpr expr-2.15 {r
0fc0: 31 3d 32 2e 33 34 2c 20 72 32 3d 32 2e 33 34 7d  1=2.34, r2=2.34}
0fd0: 20 7b 72 32 3c 3d 72 31 7d 20 31 0a 74 65 73 74   {r2<=r1} 1.test
0fe0: 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 31 36 20  _expr expr-2.16 
0ff0: 7b 72 31 3d 32 2e 33 34 2c 20 72 32 3d 32 2e 33  {r1=2.34, r2=2.3
1000: 34 7d 20 7b 72 32 3e 72 31 7d 20 30 0a 74 65 73  4} {r2>r1} 0.tes
1010: 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 31 37  t_expr expr-2.17
1020: 20 7b 72 31 3d 32 2e 33 34 2c 20 72 32 3d 32 2e   {r1=2.34, r2=2.
1030: 33 34 7d 20 7b 72 32 3e 3d 72 31 7d 20 31 0a 74  34} {r2>=r1} 1.t
1040: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e  est_expr expr-2.
1050: 31 38 20 7b 72 31 3d 32 2e 33 34 2c 20 72 32 3d  18 {r1=2.34, r2=
1060: 32 2e 33 34 7d 20 7b 72 32 21 3d 72 31 7d 20 30  2.34} {r2!=r1} 0
1070: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1080: 32 2e 31 39 20 7b 72 31 3d 32 2e 33 34 2c 20 72  2.19 {r1=2.34, r
1090: 32 3d 32 2e 33 34 7d 20 7b 72 32 3d 72 31 7d 20  2=2.34} {r2=r1} 
10a0: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
10b0: 2d 32 2e 32 30 20 7b 72 31 3d 32 2e 33 34 2c 20  -2.20 {r1=2.34, 
10c0: 72 32 3d 32 2e 33 34 7d 20 7b 72 32 3c 3e 72 31  r2=2.34} {r2<>r1
10d0: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
10e0: 70 72 2d 32 2e 32 31 20 7b 72 31 3d 32 2e 33 34  pr-2.21 {r1=2.34
10f0: 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 72 32 3d 3d  , r2=2.34} {r2==
1100: 72 31 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  r1} 1.test_expr 
1110: 65 78 70 72 2d 32 2e 32 32 20 7b 72 31 3d 31 2e  expr-2.22 {r1=1.
1120: 32 33 2c 20 72 32 3d 32 2e 33 34 7d 20 7b 6d 69  23, r2=2.34} {mi
1130: 6e 28 72 31 2c 72 32 2c 72 31 2b 72 32 2c 72 31  n(r1,r2,r1+r2,r1
1140: 2d 72 32 29 7d 20 7b 2d 31 2e 31 31 7d 0a 74 65  -r2)} {-1.11}.te
1150: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 32 2e 32  st_expr expr-2.2
1160: 33 20 7b 72 31 3d 31 2e 32 33 2c 20 72 32 3d 32  3 {r1=1.23, r2=2
1170: 2e 33 34 7d 20 7b 6d 61 78 28 72 31 2c 72 32 2c  .34} {max(r1,r2,
1180: 72 31 2b 72 32 2c 72 31 2d 72 32 29 7d 20 7b 33  r1+r2,r1-r2)} {3
1190: 2e 35 37 7d 0a 0a 74 65 73 74 5f 65 78 70 72 20  .57}..test_expr 
11a0: 65 78 70 72 2d 33 2e 31 20 7b 74 31 3d 27 61 62  expr-3.1 {t1='ab
11b0: 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74  c', t2='xyz'} {t
11c0: 31 3c 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  1<t2} 1.test_exp
11d0: 72 20 65 78 70 72 2d 33 2e 32 20 7b 74 31 3d 27  r expr-3.2 {t1='
11e0: 78 79 7a 27 2c 20 74 32 3d 27 61 62 63 27 7d 20  xyz', t2='abc'} 
11f0: 7b 74 31 3c 74 32 7d 20 30 0a 74 65 73 74 5f 65  {t1<t2} 0.test_e
1200: 78 70 72 20 65 78 70 72 2d 33 2e 33 20 7b 74 31  xpr expr-3.3 {t1
1210: 3d 27 61 62 63 27 2c 20 74 32 3d 27 61 62 63 27  ='abc', t2='abc'
1220: 7d 20 7b 74 31 3c 74 32 7d 20 30 0a 74 65 73 74  } {t1<t2} 0.test
1230: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 34 20 7b  _expr expr-3.4 {
1240: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 78 79  t1='abc', t2='xy
1250: 7a 27 7d 20 7b 74 31 3c 3d 74 32 7d 20 31 0a 74  z'} {t1<=t2} 1.t
1260: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e  est_expr expr-3.
1270: 35 20 7b 74 31 3d 27 78 79 7a 27 2c 20 74 32 3d  5 {t1='xyz', t2=
1280: 27 61 62 63 27 7d 20 7b 74 31 3c 3d 74 32 7d 20  'abc'} {t1<=t2} 
1290: 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  0.test_expr expr
12a0: 2d 33 2e 36 20 7b 74 31 3d 27 61 62 63 27 2c 20  -3.6 {t1='abc', 
12b0: 74 32 3d 27 61 62 63 27 7d 20 7b 74 31 3c 3d 74  t2='abc'} {t1<=t
12c0: 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 1.test_expr e
12d0: 78 70 72 2d 33 2e 37 20 7b 74 31 3d 27 61 62 63  xpr-3.7 {t1='abc
12e0: 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31  ', t2='xyz'} {t1
12f0: 3e 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72  >t2} 0.test_expr
1300: 20 65 78 70 72 2d 33 2e 38 20 7b 74 31 3d 27 78   expr-3.8 {t1='x
1310: 79 7a 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b  yz', t2='abc'} {
1320: 74 31 3e 74 32 7d 20 31 0a 74 65 73 74 5f 65 78  t1>t2} 1.test_ex
1330: 70 72 20 65 78 70 72 2d 33 2e 39 20 7b 74 31 3d  pr expr-3.9 {t1=
1340: 27 61 62 63 27 2c 20 74 32 3d 27 61 62 63 27 7d  'abc', t2='abc'}
1350: 20 7b 74 31 3e 74 32 7d 20 30 0a 74 65 73 74 5f   {t1>t2} 0.test_
1360: 65 78 70 72 20 65 78 70 72 2d 33 2e 31 30 20 7b  expr expr-3.10 {
1370: 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 78 79  t1='abc', t2='xy
1380: 7a 27 7d 20 7b 74 31 3e 3d 74 32 7d 20 30 0a 74  z'} {t1>=t2} 0.t
1390: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e  est_expr expr-3.
13a0: 31 31 20 7b 74 31 3d 27 78 79 7a 27 2c 20 74 32  11 {t1='xyz', t2
13b0: 3d 27 61 62 63 27 7d 20 7b 74 31 3e 3d 74 32 7d  ='abc'} {t1>=t2}
13c0: 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   1.test_expr exp
13d0: 72 2d 33 2e 31 32 20 7b 74 31 3d 27 61 62 63 27  r-3.12 {t1='abc'
13e0: 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31 3e  , t2='abc'} {t1>
13f0: 3d 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72  =t2} 1.test_expr
1400: 20 65 78 70 72 2d 33 2e 31 33 20 7b 74 31 3d 27   expr-3.13 {t1='
1410: 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d 20  abc', t2='xyz'} 
1420: 7b 74 31 3d 74 32 7d 20 30 0a 74 65 73 74 5f 65  {t1=t2} 0.test_e
1430: 78 70 72 20 65 78 70 72 2d 33 2e 31 34 20 7b 74  xpr expr-3.14 {t
1440: 31 3d 27 78 79 7a 27 2c 20 74 32 3d 27 61 62 63  1='xyz', t2='abc
1450: 27 7d 20 7b 74 31 3d 74 32 7d 20 30 0a 74 65 73  '} {t1=t2} 0.tes
1460: 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 31 35  t_expr expr-3.15
1470: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27   {t1='abc', t2='
1480: 61 62 63 27 7d 20 7b 74 31 3d 74 32 7d 20 31 0a  abc'} {t1=t2} 1.
1490: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33  test_expr expr-3
14a0: 2e 31 36 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  .16 {t1='abc', t
14b0: 32 3d 27 78 79 7a 27 7d 20 7b 74 31 3d 3d 74 32  2='xyz'} {t1==t2
14c0: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
14d0: 70 72 2d 33 2e 31 37 20 7b 74 31 3d 27 78 79 7a  pr-3.17 {t1='xyz
14e0: 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31  ', t2='abc'} {t1
14f0: 3d 3d 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  ==t2} 0.test_exp
1500: 72 20 65 78 70 72 2d 33 2e 31 38 20 7b 74 31 3d  r expr-3.18 {t1=
1510: 27 61 62 63 27 2c 20 74 32 3d 27 61 62 63 27 7d  'abc', t2='abc'}
1520: 20 7b 74 31 3d 3d 74 32 7d 20 31 0a 74 65 73 74   {t1==t2} 1.test
1530: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 31 39 20  _expr expr-3.19 
1540: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 78  {t1='abc', t2='x
1550: 79 7a 27 7d 20 7b 74 31 3c 3e 74 32 7d 20 31 0a  yz'} {t1<>t2} 1.
1560: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33  test_expr expr-3
1570: 2e 32 30 20 7b 74 31 3d 27 78 79 7a 27 2c 20 74  .20 {t1='xyz', t
1580: 32 3d 27 61 62 63 27 7d 20 7b 74 31 3c 3e 74 32  2='abc'} {t1<>t2
1590: 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 1.test_expr ex
15a0: 70 72 2d 33 2e 32 31 20 7b 74 31 3d 27 61 62 63  pr-3.21 {t1='abc
15b0: 27 2c 20 74 32 3d 27 61 62 63 27 7d 20 7b 74 31  ', t2='abc'} {t1
15c0: 3c 3e 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  <>t2} 0.test_exp
15d0: 72 20 65 78 70 72 2d 33 2e 32 32 20 7b 74 31 3d  r expr-3.22 {t1=
15e0: 27 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27 7d  'abc', t2='xyz'}
15f0: 20 7b 74 31 21 3d 74 32 7d 20 31 0a 74 65 73 74   {t1!=t2} 1.test
1600: 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 32 33 20  _expr expr-3.23 
1610: 7b 74 31 3d 27 78 79 7a 27 2c 20 74 32 3d 27 61  {t1='xyz', t2='a
1620: 62 63 27 7d 20 7b 74 31 21 3d 74 32 7d 20 31 0a  bc'} {t1!=t2} 1.
1630: 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33  test_expr expr-3
1640: 2e 32 34 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  .24 {t1='abc', t
1650: 32 3d 27 61 62 63 27 7d 20 7b 74 31 21 3d 74 32  2='abc'} {t1!=t2
1660: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
1670: 70 72 2d 33 2e 32 35 20 7b 74 31 3d 4e 55 4c 4c  pr-3.25 {t1=NULL
1680: 2c 20 74 32 3d 27 68 69 27 7d 20 7b 74 31 20 69  , t2='hi'} {t1 i
1690: 73 6e 75 6c 6c 7d 20 31 0a 74 65 73 74 5f 65 78  snull} 1.test_ex
16a0: 70 72 20 65 78 70 72 2d 33 2e 32 36 20 7b 74 31  pr expr-3.26 {t1
16b0: 3d 4e 55 4c 4c 2c 20 74 32 3d 27 68 69 27 7d 20  =NULL, t2='hi'} 
16c0: 7b 74 32 20 69 73 6e 75 6c 6c 7d 20 30 0a 74 65  {t2 isnull} 0.te
16d0: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 33 2e 32  st_expr expr-3.2
16e0: 37 20 7b 74 31 3d 4e 55 4c 4c 2c 20 74 32 3d 27  7 {t1=NULL, t2='
16f0: 68 69 27 7d 20 7b 74 31 20 6e 6f 74 6e 75 6c 6c  hi'} {t1 notnull
1700: 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78  } 0.test_expr ex
1710: 70 72 2d 33 2e 32 38 20 7b 74 31 3d 4e 55 4c 4c  pr-3.28 {t1=NULL
1720: 2c 20 74 32 3d 27 68 69 27 7d 20 7b 74 32 20 6e  , t2='hi'} {t2 n
1730: 6f 74 6e 75 6c 6c 7d 20 31 0a 0a 74 65 73 74 5f  otnull} 1..test_
1740: 65 78 70 72 20 65 78 70 72 2d 34 2e 31 20 7b 74  expr expr-4.1 {t
1750: 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 41 62 63  1='abc', t2='Abc
1760: 27 7d 20 7b 74 31 3c 74 32 7d 20 30 0a 74 65 73  '} {t1<t2} 0.tes
1770: 74 5f 65 78 70 72 20 65 78 70 72 2d 34 2e 32 20  t_expr expr-4.2 
1780: 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 41  {t1='abc', t2='A
1790: 62 63 27 7d 20 7b 74 31 3e 74 32 7d 20 31 0a 74  bc'} {t1>t2} 1.t
17a0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 34 2e  est_expr expr-4.
17b0: 33 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d  3 {t1='abc', t2=
17c0: 27 42 62 63 27 7d 20 7b 74 31 3c 74 32 7d 20 31  'Bbc'} {t1<t2} 1
17d0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
17e0: 34 2e 34 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  4.4 {t1='abc', t
17f0: 32 3d 27 42 62 63 27 7d 20 7b 74 31 3e 74 32 7d  2='Bbc'} {t1>t2}
1800: 20 30 0a 0a 74 65 73 74 5f 65 78 70 72 20 65 78   0..test_expr ex
1810: 70 72 2d 35 2e 31 20 7b 74 31 3d 27 61 62 63 27  pr-5.1 {t1='abc'
1820: 2c 20 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31 20  , t2='xyz'} {t1 
1830: 4c 49 4b 45 20 74 32 7d 20 30 0a 74 65 73 74 5f  LIKE t2} 0.test_
1840: 65 78 70 72 20 65 78 70 72 2d 35 2e 32 20 7b 74  expr expr-5.2 {t
1850: 31 3d 27 61 62 63 27 2c 20 74 32 3d 27 41 42 43  1='abc', t2='ABC
1860: 27 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20  '} {t1 LIKE t2} 
1870: 31 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72  1.test_expr expr
1880: 2d 35 2e 33 20 7b 74 31 3d 27 61 62 63 27 2c 20  -5.3 {t1='abc', 
1890: 74 32 3d 27 41 5f 43 27 7d 20 7b 74 31 20 4c 49  t2='A_C'} {t1 LI
18a0: 4b 45 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78  KE t2} 1.test_ex
18b0: 70 72 20 65 78 70 72 2d 35 2e 34 20 7b 74 31 3d  pr expr-5.4 {t1=
18c0: 27 61 62 63 27 2c 20 74 32 3d 27 61 62 63 5f 27  'abc', t2='abc_'
18d0: 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 30  } {t1 LIKE t2} 0
18e0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
18f0: 35 2e 35 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  5.5 {t1='abc', t
1900: 32 3d 27 41 25 43 27 7d 20 7b 74 31 20 4c 49 4b  2='A%C'} {t1 LIK
1910: 45 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  E t2} 1.test_exp
1920: 72 20 65 78 70 72 2d 35 2e 35 62 20 7b 74 31 3d  r expr-5.5b {t1=
1930: 27 61 63 27 2c 20 74 32 3d 27 41 25 43 27 7d 20  'ac', t2='A%C'} 
1940: 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 31 0a 74  {t1 LIKE t2} 1.t
1950: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e  est_expr expr-5.
1960: 36 20 7b 74 31 3d 27 61 62 78 79 7a 7a 79 63 27  6 {t1='abxyzzyc'
1970: 2c 20 74 32 3d 27 41 25 43 27 7d 20 7b 74 31 20  , t2='A%C'} {t1 
1980: 4c 49 4b 45 20 74 32 7d 20 31 0a 74 65 73 74 5f  LIKE t2} 1.test_
1990: 65 78 70 72 20 65 78 70 72 2d 35 2e 37 20 7b 74  expr expr-5.7 {t
19a0: 31 3d 27 61 62 78 79 7a 7a 79 27 2c 20 74 32 3d  1='abxyzzy', t2=
19b0: 27 41 25 43 27 7d 20 7b 74 31 20 4c 49 4b 45 20  'A%C'} {t1 LIKE 
19c0: 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20  t2} 0.test_expr 
19d0: 65 78 70 72 2d 35 2e 38 20 7b 74 31 3d 27 61 62  expr-5.8 {t1='ab
19e0: 78 79 7a 7a 79 63 78 27 2c 20 74 32 3d 27 41 25  xyzzycx', t2='A%
19f0: 43 27 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d  C'} {t1 LIKE t2}
1a00: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
1a10: 72 2d 35 2e 39 20 7b 74 31 3d 27 61 62 63 27 2c  r-5.9 {t1='abc',
1a20: 20 74 32 3d 27 41 25 5f 43 27 7d 20 7b 74 31 20   t2='A%_C'} {t1 
1a30: 4c 49 4b 45 20 74 32 7d 20 31 0a 74 65 73 74 5f  LIKE t2} 1.test_
1a40: 65 78 70 72 20 65 78 70 72 2d 35 2e 39 62 20 7b  expr expr-5.9b {
1a50: 74 31 3d 27 61 63 27 2c 20 74 32 3d 27 41 25 5f  t1='ac', t2='A%_
1a60: 43 27 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d  C'} {t1 LIKE t2}
1a70: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
1a80: 72 2d 35 2e 31 30 20 7b 74 31 3d 27 61 62 78 79  r-5.10 {t1='abxy
1a90: 7a 7a 79 63 27 2c 20 74 32 3d 27 41 25 5f 43 27  zzyc', t2='A%_C'
1aa0: 7d 20 7b 74 31 20 4c 49 4b 45 20 74 32 7d 20 31  } {t1 LIKE t2} 1
1ab0: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1ac0: 35 2e 31 31 20 7b 74 31 3d 27 61 62 63 27 2c 20  5.11 {t1='abc', 
1ad0: 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31 20 4e 4f  t2='xyz'} {t1 NO
1ae0: 54 20 4c 49 4b 45 20 74 32 7d 20 31 0a 74 65 73  T LIKE t2} 1.tes
1af0: 74 5f 65 78 70 72 20 65 78 70 72 2d 35 2e 31 32  t_expr expr-5.12
1b00: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27   {t1='abc', t2='
1b10: 41 42 43 27 7d 20 7b 74 31 20 4e 4f 54 20 4c 49  ABC'} {t1 NOT LI
1b20: 4b 45 20 74 32 7d 20 30 0a 0a 74 65 73 74 5f 65  KE t2} 0..test_e
1b30: 78 70 72 20 65 78 70 72 2d 36 2e 31 20 7b 74 31  xpr expr-6.1 {t1
1b40: 3d 27 61 62 63 27 2c 20 74 32 3d 27 78 79 7a 27  ='abc', t2='xyz'
1b50: 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30  } {t1 GLOB t2} 0
1b60: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1b70: 36 2e 32 20 7b 74 31 3d 27 61 62 63 27 2c 20 74  6.2 {t1='abc', t
1b80: 32 3d 27 41 42 43 27 7d 20 7b 74 31 20 47 4c 4f  2='ABC'} {t1 GLO
1b90: 42 20 74 32 7d 20 30 0a 74 65 73 74 5f 65 78 70  B t2} 0.test_exp
1ba0: 72 20 65 78 70 72 2d 36 2e 33 20 7b 74 31 3d 27  r expr-6.3 {t1='
1bb0: 61 62 63 27 2c 20 74 32 3d 27 41 3f 43 27 7d 20  abc', t2='A?C'} 
1bc0: 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74  {t1 GLOB t2} 0.t
1bd0: 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e  est_expr expr-6.
1be0: 34 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d  4 {t1='abc', t2=
1bf0: 27 61 3f 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20  'a?c'} {t1 GLOB 
1c00: 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70 72 20  t2} 1.test_expr 
1c10: 65 78 70 72 2d 36 2e 35 20 7b 74 31 3d 27 61 62  expr-6.5 {t1='ab
1c20: 63 27 2c 20 74 32 3d 27 61 62 63 3f 27 7d 20 7b  c', t2='abc?'} {
1c30: 74 31 20 47 4c 4f 42 20 74 32 7d 20 30 0a 74 65  t1 GLOB t2} 0.te
1c40: 73 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 36  st_expr expr-6.6
1c50: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27   {t1='abc', t2='
1c60: 41 2a 43 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74  A*C'} {t1 GLOB t
1c70: 32 7d 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65  2} 0.test_expr e
1c80: 78 70 72 2d 36 2e 37 20 7b 74 31 3d 27 61 62 63  xpr-6.7 {t1='abc
1c90: 27 2c 20 74 32 3d 27 61 2a 63 27 7d 20 7b 74 31  ', t2='a*c'} {t1
1ca0: 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73 74   GLOB t2} 1.test
1cb0: 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 38 20 7b  _expr expr-6.8 {
1cc0: 74 31 3d 27 61 62 78 79 7a 7a 79 63 27 2c 20 74  t1='abxyzzyc', t
1cd0: 32 3d 27 61 2a 63 27 7d 20 7b 74 31 20 47 4c 4f  2='a*c'} {t1 GLO
1ce0: 42 20 74 32 7d 20 31 0a 74 65 73 74 5f 65 78 70  B t2} 1.test_exp
1cf0: 72 20 65 78 70 72 2d 36 2e 39 20 7b 74 31 3d 27  r expr-6.9 {t1='
1d00: 61 62 78 79 7a 7a 79 27 2c 20 74 32 3d 27 61 2a  abxyzzy', t2='a*
1d10: 63 27 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d  c'} {t1 GLOB t2}
1d20: 20 30 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70   0.test_expr exp
1d30: 72 2d 36 2e 31 30 20 7b 74 31 3d 27 61 62 78 79  r-6.10 {t1='abxy
1d40: 7a 7a 79 63 78 27 2c 20 74 32 3d 27 61 2a 63 27  zzycx', t2='a*c'
1d50: 7d 20 7b 74 31 20 47 4c 4f 42 20 74 32 7d 20 30  } {t1 GLOB t2} 0
1d60: 0a 74 65 73 74 5f 65 78 70 72 20 65 78 70 72 2d  .test_expr expr-
1d70: 36 2e 31 31 20 7b 74 31 3d 27 61 62 63 27 2c 20  6.11 {t1='abc', 
1d80: 74 32 3d 27 78 79 7a 27 7d 20 7b 74 31 20 4e 4f  t2='xyz'} {t1 NO
1d90: 54 20 47 4c 4f 42 20 74 32 7d 20 31 0a 74 65 73  T GLOB t2} 1.tes
1da0: 74 5f 65 78 70 72 20 65 78 70 72 2d 36 2e 31 32  t_expr expr-6.12
1db0: 20 7b 74 31 3d 27 61 62 63 27 2c 20 74 32 3d 27   {t1='abc', t2='
1dc0: 61 3f 63 27 7d 20 7b 74 31 20 4e 4f 54 20 47 4c  a?c'} {t1 NOT GL
1dd0: 4f 42 20 74 32 7d 20 30 0a 0a 23 20 54 68 65 20  OB t2} 0..# The 
1de0: 73 71 6c 69 74 65 45 78 70 72 49 66 46 61 6c 73  sqliteExprIfFals
1df0: 65 20 61 6e 64 20 73 71 6c 69 74 65 45 78 70 72  e and sqliteExpr
1e00: 49 66 54 72 75 65 20 72 6f 75 74 69 6e 65 73 20  IfTrue routines 
1e10: 61 72 65 20 6f 6e 6c 79 0a 23 20 65 78 65 63 75  are only.# execu
1e20: 74 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 61  ted as part of a
1e30: 20 57 48 45 52 45 20 63 6c 61 75 73 65 2e 20 20   WHERE clause.  
1e40: 43 72 65 61 74 65 20 61 20 74 61 62 6c 65 20 73  Create a table s
1e50: 75 69 74 61 62 6c 65 0a 23 20 66 6f 72 20 74 65  uitable.# for te
1e60: 73 74 69 6e 67 20 74 68 65 73 65 20 66 75 6e 63  sting these func
1e70: 74 69 6f 6e 73 2e 0a 23 0a 65 78 65 63 73 71 6c  tions..#.execsql
1e80: 20 7b 44 52 4f 50 20 54 41 42 4c 45 20 74 65 73   {DROP TABLE tes
1e90: 74 31 7d 0a 65 78 65 63 73 71 6c 20 7b 43 52 45  t1}.execsql {CRE
1ea0: 41 54 45 20 54 41 42 4c 45 20 74 65 73 74 31 28  ATE TABLE test1(
1eb0: 61 20 69 6e 74 2c 20 62 20 69 6e 74 29 3b 7d 0a  a int, b int);}.
1ec0: 66 6f 72 20 7b 73 65 74 20 69 20 31 7d 20 7b 24  for {set i 1} {$
1ed0: 69 3c 3d 32 30 7d 20 7b 69 6e 63 72 20 69 7d 20  i<=20} {incr i} 
1ee0: 7b 0a 20 20 65 78 65 63 73 71 6c 20 22 49 4e 53  {.  execsql "INS
1ef0: 45 52 54 20 49 4e 54 4f 20 74 65 73 74 31 20 56  ERT INTO test1 V
1f00: 41 4c 55 45 53 28 24 69 2c 5b 65 78 70 72 20 7b  ALUES($i,[expr {
1f10: 69 6e 74 28 70 6f 77 28 32 2c 24 69 29 29 7d 5d  int(pow(2,$i))}]
1f20: 29 22 0a 7d 0a 65 78 65 63 73 71 6c 20 22 49 4e  )".}.execsql "IN
1f30: 53 45 52 54 20 49 4e 54 4f 20 74 65 73 74 31 20  SERT INTO test1 
1f40: 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 30 29 22 0a  VALUES(NULL,0)".
1f50: 64 6f 5f 74 65 73 74 20 65 78 70 72 2d 37 2e 31  do_test expr-7.1
1f60: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 53 45   {.  execsql {SE
1f70: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 65 73 74  LECT * FROM test
1f80: 31 20 4f 52 44 45 52 20 42 59 20 61 7d 0a 7d 20  1 ORDER BY a}.} 
1f90: 7b 7b 7d 20 30 20 31 20 32 20 32 20 34 20 33 20  {{} 0 1 2 2 4 3 
1fa0: 38 20 34 20 31 36 20 35 20 33 32 20 36 20 36 34  8 4 16 5 32 6 64
1fb0: 20 37 20 31 32 38 20 38 20 32 35 36 20 39 20 35   7 128 8 256 9 5
1fc0: 31 32 20 31 30 20 31 30 32 34 20 31 31 20 32 30  12 10 1024 11 20
1fd0: 34 38 20 31 32 20 34 30 39 36 20 31 33 20 38 31  48 12 4096 13 81
1fe0: 39 32 20 31 34 20 31 36 33 38 34 20 31 35 20 33  92 14 16384 15 3
1ff0: 32 37 36 38 20 31 36 20 36 35 35 33 36 20 31 37  2768 16 65536 17
2000: 20 31 33 31 30 37 32 20 31 38 20 32 36 32 31 34   131072 18 26214
2010: 34 20 31 39 20 35 32 34 32 38 38 20 32 30 20 31  4 19 524288 20 1
2020: 30 34 38 35 37 36 7d 0a 0a 70 72 6f 63 20 74 65  048576}..proc te
2030: 73 74 5f 65 78 70 72 32 20 7b 6e 61 6d 65 20 65  st_expr2 {name e
2040: 78 70 72 20 72 65 73 75 6c 74 7d 20 7b 0a 20 20  xpr result} {.  
2050: 64 6f 5f 74 65 73 74 20 24 6e 61 6d 65 20 5b 66  do_test $name [f
2060: 6f 72 6d 61 74 20 7b 0a 20 20 20 20 65 78 65 63  ormat {.    exec
2070: 73 71 6c 20 7b 53 45 4c 45 43 54 20 61 20 46 52  sql {SELECT a FR
2080: 4f 4d 20 74 65 73 74 31 20 57 48 45 52 45 20 25  OM test1 WHERE %
2090: 73 20 4f 52 44 45 52 20 42 59 20 61 7d 0a 20 20  s ORDER BY a}.  
20a0: 7d 20 24 65 78 70 72 5d 20 24 72 65 73 75 6c 74  } $expr] $result
20b0: 0a 7d 0a 0a 74 65 73 74 5f 65 78 70 72 32 20 65  .}..test_expr2 e
20c0: 78 70 72 2d 37 2e 32 20 20 7b 61 3c 31 30 20 41  xpr-7.2  {a<10 A
20d0: 4e 44 20 61 3e 38 7d 20 20 20 20 20 20 20 20 20  ND a>8}         
20e0: 20 20 20 20 20 20 20 20 20 7b 39 7d 0a 74 65 73           {9}.tes
20f0: 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 33  t_expr2 expr-7.3
2100: 20 20 7b 61 3c 3d 31 30 20 41 4e 44 20 61 3e 3d    {a<=10 AND a>=
2110: 38 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20  8}              
2120: 20 20 7b 38 20 39 20 31 30 7d 0a 74 65 73 74 5f    {8 9 10}.test_
2130: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 34 20 20  expr2 expr-7.4  
2140: 7b 61 3e 3d 38 20 41 4e 44 20 61 3c 3d 31 30 7d  {a>=8 AND a<=10}
2150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2160: 7b 38 20 39 20 31 30 7d 0a 74 65 73 74 5f 65 78  {8 9 10}.test_ex
2170: 70 72 32 20 65 78 70 72 2d 37 2e 35 20 20 7b 61  pr2 expr-7.5  {a
2180: 3e 3d 32 30 20 4f 52 20 61 3c 3d 31 7d 20 20 20  >=20 OR a<=1}   
2190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 7b                {{
21a0: 7d 20 31 20 32 30 7d 0a 74 65 73 74 5f 65 78 70  } 1 20}.test_exp
21b0: 72 32 20 65 78 70 72 2d 37 2e 36 20 20 7b 62 21  r2 expr-7.6  {b!
21c0: 3d 34 20 41 4e 44 20 61 3c 3d 33 7d 20 20 20 20  =4 AND a<=3}    
21d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 7b 7d               {{}
21e0: 20 31 20 33 7d 0a 74 65 73 74 5f 65 78 70 72 32   1 3}.test_expr2
21f0: 20 65 78 70 72 2d 37 2e 37 20 20 7b 62 3d 3d 38   expr-7.7  {b==8
2200: 20 4f 52 20 62 3d 3d 31 36 20 4f 52 20 62 3d 3d   OR b==16 OR b==
2210: 33 32 7d 20 20 20 20 20 20 20 20 7b 33 20 34 20  32}        {3 4 
2220: 35 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  5}.test_expr2 ex
2230: 70 72 2d 37 2e 38 20 20 7b 4e 4f 54 20 62 3c 3e  pr-7.8  {NOT b<>
2240: 38 20 4f 52 20 62 3d 3d 31 30 32 34 7d 20 20 20  8 OR b==1024}   
2250: 20 20 20 20 20 20 20 20 7b 33 20 31 30 7d 0a 74          {3 10}.t
2260: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
2270: 2e 39 20 20 7b 62 20 4c 49 4b 45 20 27 31 30 25  .9  {b LIKE '10%
2280: 27 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20  '}              
2290: 20 20 20 20 7b 31 30 20 32 30 7d 0a 74 65 73 74      {10 20}.test
22a0: 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 31 30  _expr2 expr-7.10
22b0: 20 7b 62 20 4c 49 4b 45 20 27 5f 34 27 7d 20 20   {b LIKE '_4'}  
22c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
22d0: 20 7b 36 7d 0a 74 65 73 74 5f 65 78 70 72 32 20   {6}.test_expr2 
22e0: 65 78 70 72 2d 37 2e 31 31 20 7b 61 20 47 4c 4f  expr-7.11 {a GLO
22f0: 42 20 27 31 3f 27 7d 20 20 20 20 20 20 20 20 20  B '1?'}         
2300: 20 20 20 7b 31 30 20 31 31 20 31 32 20 31 33 20     {10 11 12 13 
2310: 31 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31  14 15 16 17 18 1
2320: 39 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  9}.test_expr2 ex
2330: 70 72 2d 37 2e 31 32 20 7b 62 20 47 4c 4f 42 20  pr-7.12 {b GLOB 
2340: 27 31 2a 34 27 7d 20 20 20 20 20 20 20 20 20 20  '1*4'}          
2350: 20 20 20 20 20 20 20 20 7b 31 30 20 31 34 7d 0a          {10 14}.
2360: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
2370: 37 2e 31 33 20 7b 62 20 47 4c 4f 42 20 27 2a 31  7.13 {b GLOB '*1
2380: 5b 34 35 36 5d 27 7d 20 20 20 20 20 20 20 20 20  [456]'}         
2390: 20 20 20 20 20 7b 34 7d 0a 74 65 73 74 5f 65 78       {4}.test_ex
23a0: 70 72 32 20 65 78 70 72 2d 37 2e 31 34 20 7b 61  pr2 expr-7.14 {a
23b0: 20 49 53 4e 55 4c 4c 7d 20 20 20 20 20 20 20 20   ISNULL}        
23c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 7b                {{
23d0: 7d 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  }}.test_expr2 ex
23e0: 70 72 2d 37 2e 31 35 20 7b 61 20 4e 4f 54 4e 55  pr-7.15 {a NOTNU
23f0: 4c 4c 20 41 4e 44 20 61 3c 33 7d 20 20 20 20 20  LL AND a<3}     
2400: 20 20 20 20 20 20 20 20 7b 31 20 32 7d 0a 74 65          {1 2}.te
2410: 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e  st_expr2 expr-7.
2420: 31 36 20 7b 61 20 41 4e 44 20 61 3c 33 7d 20 20  16 {a AND a<3}  
2430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2440: 20 20 20 7b 31 20 32 7d 0a 74 65 73 74 5f 65 78     {1 2}.test_ex
2450: 70 72 32 20 65 78 70 72 2d 37 2e 31 37 20 7b 4e  pr2 expr-7.17 {N
2460: 4f 54 20 61 7d 20 20 20 20 20 20 20 20 20 20 20  OT a}           
2470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 7b                {{
2480: 7d 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  }}.test_expr2 ex
2490: 70 72 2d 37 2e 31 38 20 7b 61 3d 3d 31 31 20 4f  pr-7.18 {a==11 O
24a0: 52 20 28 62 3e 31 30 30 30 20 41 4e 44 20 62 3c  R (b>1000 AND b<
24b0: 32 30 30 30 29 7d 20 20 7b 31 30 20 31 31 7d 0a  2000)}  {10 11}.
24c0: 74 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d  test_expr2 expr-
24d0: 37 2e 31 39 20 7b 61 3c 3d 31 20 4f 52 20 61 3e  7.19 {a<=1 OR a>
24e0: 3d 32 30 7d 20 20 20 20 20 20 20 20 20 20 20 20  =20}            
24f0: 20 20 20 20 20 7b 7b 7d 20 31 20 32 30 7d 0a 74       {{} 1 20}.t
2500: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
2510: 2e 32 30 20 7b 61 3c 31 20 4f 52 20 61 3e 32 30  .20 {a<1 OR a>20
2520: 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  }               
2530: 20 20 20 20 7b 7b 7d 7d 0a 74 65 73 74 5f 65 78      {{}}.test_ex
2540: 70 72 32 20 65 78 70 72 2d 37 2e 32 31 20 7b 61  pr2 expr-7.21 {a
2550: 3e 31 39 20 4f 52 20 61 3c 31 7d 20 20 20 20 20  >19 OR a<1}     
2560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 7b                {{
2570: 7d 20 32 30 7d 0a 74 65 73 74 5f 65 78 70 72 32  } 20}.test_expr2
2580: 20 65 78 70 72 2d 37 2e 32 32 20 7b 61 21 3d 31   expr-7.22 {a!=1
2590: 20 4f 52 20 61 3d 31 30 30 7d 20 5c 0a 20 20 20   OR a=100} \.   
25a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
25b0: 20 20 20 20 20 20 7b 7b 7d 20 32 20 33 20 34 20        {{} 2 3 4 
25c0: 35 20 36 20 37 20 38 20 39 20 31 30 20 31 31 20  5 6 7 8 9 10 11 
25d0: 31 32 20 31 33 20 31 34 20 31 35 20 31 36 20 31  12 13 14 15 16 1
25e0: 37 20 31 38 20 31 39 20 32 30 7d 0a 74 65 73 74  7 18 19 20}.test
25f0: 5f 65 78 70 72 32 20 65 78 70 72 2d 37 2e 32 33  _expr2 expr-7.23
2600: 20 7b 28 61 20 6e 6f 74 6e 75 6c 6c 20 41 4e 44   {(a notnull AND
2610: 20 61 3c 34 29 20 4f 52 20 61 3d 3d 38 7d 20 20   a<4) OR a==8}  
2620: 20 7b 31 20 32 20 33 20 38 7d 0a 74 65 73 74 5f   {1 2 3 8}.test_
2630: 65 78 70 72 32 20 65 78 70 72 2d 37 2e 32 34 20  expr2 expr-7.24 
2640: 7b 61 20 4c 49 4b 45 20 27 32 5f 27 20 4f 52 20  {a LIKE '2_' OR 
2650: 61 3d 3d 38 7d 20 20 20 20 20 20 20 20 20 20 20  a==8}           
2660: 7b 38 20 32 30 7d 0a 74 65 73 74 5f 65 78 70 72  {8 20}.test_expr
2670: 32 20 65 78 70 72 2d 37 2e 32 35 20 7b 61 20 47  2 expr-7.25 {a G
2680: 4c 4f 42 20 27 32 3f 27 20 4f 52 20 61 3d 3d 38  LOB '2?' OR a==8
2690: 7d 20 20 20 20 20 20 20 20 20 20 20 7b 38 20 32  }           {8 2
26a0: 30 7d 0a 74 65 73 74 5f 65 78 70 72 32 20 65 78  0}.test_expr2 ex
26b0: 70 72 2d 37 2e 32 36 20 7b 61 20 69 73 6e 75 6c  pr-7.26 {a isnul
26c0: 6c 20 4f 52 20 61 3d 38 7d 20 20 20 20 20 20 20  l OR a=8}       
26d0: 20 20 20 20 20 20 20 20 7b 7b 7d 20 38 7d 0a 74          {{} 8}.t
26e0: 65 73 74 5f 65 78 70 72 32 20 65 78 70 72 2d 37  est_expr2 expr-7
26f0: 2e 32 37 20 7b 61 20 6e 6f 74 6e 75 6c 6c 20 4f  .27 {a notnull O
2700: 52 20 61 3d 38 7d 20 5c 0a 20 20 20 20 20 20 20  R a=8} \.       
2710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2720: 20 20 20 7b 31 20 32 20 33 20 34 20 35 20 36 20     {1 2 3 4 5 6 
2730: 37 20 38 20 39 20 31 30 20 31 31 20 31 32 20 31  7 8 9 10 11 12 1
2740: 33 20 31 34 20 31 35 20 31 36 20 31 37 20 31 38  3 14 15 16 17 18
2750: 20 31 39 20 32 30 7d 0a 0a 66 69 6e 69 73 68 5f   19 20}..finish_
2760: 74 65 73 74 0a                                   test.