/ Hex Artifact Content
Login

Artifact 98eedca0d375fb400b8377269c4b4686582dfb45:


0000: 23 20 32 30 30 38 20 44 65 63 65 6d 62 65 72 20  # 2008 December 
0010: 32 33 0a 23 0a 23 20 54 68 65 20 61 75 74 68 6f  23.#.# The autho
0020: 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70 79  r disclaims copy
0030: 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73 6f  right to this so
0040: 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20 70  urce code.  In p
0050: 6c 61 63 65 20 6f 66 0a 23 20 61 20 6c 65 67 61  lace of.# a lega
0060: 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20 69  l notice, here i
0070: 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23 0a  s a blessing:.#.
0080: 23 20 20 20 20 4d 61 79 20 79 6f 75 20 64 6f 20  #    May you do 
0090: 67 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76 69  good and not evi
00a0: 6c 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20  l..#    May you 
00b0: 66 69 6e 64 20 66 6f 72 67 69 76 65 6e 65 73 73  find forgiveness
00c0: 20 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 61 6e   for yourself an
00d0: 64 20 66 6f 72 67 69 76 65 20 6f 74 68 65 72 73  d forgive others
00e0: 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 73  ..#    May you s
00f0: 68 61 72 65 20 66 72 65 65 6c 79 2c 20 6e 65 76  hare freely, nev
0100: 65 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20 74  er taking more t
0110: 68 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23 0a  han you give..#.
0120: 23 2a 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 0a 23 20 54 68 69 73 20  ********.# This 
0170: 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20  file implements 
0180: 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74 73  regression tests
0190: 20 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62 72   for SQLite libr
01a0: 61 72 79 2e 20 54 68 65 20 66 6f 63 75 73 0a 23  ary. The focus.#
01b0: 20 69 73 20 74 65 73 74 69 6e 67 20 6f 66 20 77   is testing of w
01c0: 68 65 72 65 2e 63 2e 20 4d 6f 72 65 20 73 70 65  here.c. More spe
01d0: 63 69 66 69 63 61 6c 6c 79 2c 20 74 68 65 20 66  cifically, the f
01e0: 6f 63 75 73 20 69 73 20 74 68 65 20 6f 70 74 69  ocus is the opti
01f0: 6d 69 7a 61 74 69 6f 6e 0a 23 20 6f 66 20 57 48  mization.# of WH
0200: 45 52 45 20 63 6c 61 75 73 65 73 20 74 68 61 74  ERE clauses that
0210: 20 66 65 61 74 75 72 65 20 74 68 65 20 4f 52 20   feature the OR 
0220: 6f 70 65 72 61 74 6f 72 2e 0a 23 0a 0a 73 65 74  operator..#..set
0230: 20 74 65 73 74 64 69 72 20 5b 66 69 6c 65 20 64   testdir [file d
0240: 69 72 6e 61 6d 65 20 24 61 72 67 76 30 5d 0a 73  irname $argv0].s
0250: 6f 75 72 63 65 20 24 74 65 73 74 64 69 72 2f 74  ource $testdir/t
0260: 65 73 74 65 72 2e 74 63 6c 0a 0a 23 20 54 65 73  ester.tcl..# Tes
0270: 74 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 3a 0a  t organization:.
0280: 23 0a 23 20 20 20 77 68 65 72 65 38 2d 31 2e 2a  #.#   where8-1.*
0290: 3a 20 54 65 73 74 73 20 74 6f 20 64 65 6d 6f 6e  : Tests to demon
02a0: 73 74 72 61 74 65 20 73 69 6d 70 6c 65 20 63 61  strate simple ca
02b0: 73 65 73 20 77 6f 72 6b 20 77 69 74 68 20 61 20  ses work with a 
02c0: 73 69 6e 67 6c 65 20 74 61 62 6c 65 0a 23 20 20  single table.#  
02d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 20               in 
02e0: 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e  the FROM clause.
02f0: 0a 23 0a 23 20 20 20 77 68 65 72 65 38 2d 32 2e  .#.#   where8-2.
0300: 2a 3a 20 54 65 73 74 73 20 73 75 72 72 6f 75 6e  *: Tests surroun
0310: 64 69 6e 67 20 76 69 72 74 75 61 6c 20 74 61 62  ding virtual tab
0320: 6c 65 73 20 61 6e 64 20 74 68 65 20 4f 52 20 6f  les and the OR o
0330: 70 74 69 6d 69 7a 61 74 69 6f 6e 2e 0a 23 0a 23  ptimization..#.#
0340: 20 20 20 77 68 65 72 65 38 2d 33 2e 2a 3a 20 54     where8-3.*: T
0350: 65 73 74 73 20 77 69 74 68 20 6d 6f 72 65 20 74  ests with more t
0360: 68 61 6e 20 6f 6e 65 20 74 61 62 6c 65 20 69 6e  han one table in
0370: 20 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73 65   the FROM clause
0380: 2e 0a 23 20 0a 0a 70 72 6f 63 20 65 78 65 63 73  ..# ..proc execs
0390: 71 6c 5f 73 74 61 74 75 73 20 7b 73 71 6c 20 7b  ql_status {sql {
03a0: 64 62 20 64 62 7d 7d 20 7b 0a 20 20 73 65 74 20  db db}} {.  set 
03b0: 72 65 73 75 6c 74 20 5b 75 70 6c 65 76 65 6c 20  result [uplevel 
03c0: 24 64 62 20 65 76 61 6c 20 5b 6c 69 73 74 20 24  $db eval [list $
03d0: 73 71 6c 5d 5d 0a 20 20 63 6f 6e 63 61 74 20 24  sql]].  concat $
03e0: 72 65 73 75 6c 74 20 5b 64 62 20 73 74 61 74 75  result [db statu
03f0: 73 20 73 74 65 70 5d 20 5b 64 62 20 73 74 61 74  s step] [db stat
0400: 75 73 20 73 6f 72 74 5d 0a 7d 0a 0a 70 72 6f 63  us sort].}..proc
0410: 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32   execsql_status2
0420: 20 7b 73 71 6c 20 7b 64 62 20 64 62 7d 7d 20 7b   {sql {db db}} {
0430: 0a 20 20 73 65 74 20 3a 3a 73 71 6c 69 74 65 5f  .  set ::sqlite_
0440: 73 65 61 72 63 68 5f 63 6f 75 6e 74 20 30 0a 20  search_count 0. 
0450: 20 73 65 74 20 72 65 73 75 6c 74 20 5b 75 70 6c   set result [upl
0460: 65 76 65 6c 20 5b 6c 69 73 74 20 65 78 65 63 73  evel [list execs
0470: 71 6c 5f 73 74 61 74 75 73 20 24 73 71 6c 20 24  ql_status $sql $
0480: 64 62 5d 5d 0a 20 20 63 6f 6e 63 61 74 20 24 72  db]].  concat $r
0490: 65 73 75 6c 74 20 24 3a 3a 73 71 6c 69 74 65 5f  esult $::sqlite_
04a0: 73 65 61 72 63 68 5f 63 6f 75 6e 74 0a 7d 0a 0a  search_count.}..
04b0: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31  do_test where8-1
04c0: 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .1 {.  execsql {
04d0: 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c  .    CREATE TABL
04e0: 45 20 74 31 28 61 2c 20 62 20 54 45 58 54 2c 20  E t1(a, b TEXT, 
04f0: 63 29 3b 0a 20 20 20 20 43 52 45 41 54 45 20 49  c);.    CREATE I
0500: 4e 44 45 58 20 69 31 20 4f 4e 20 74 31 28 61 29  NDEX i1 ON t1(a)
0510: 3b 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e 44  ;.    CREATE IND
0520: 45 58 20 69 32 20 4f 4e 20 74 31 28 62 29 3b 0a  EX i2 ON t1(b);.
0530: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
0540: 20 74 31 20 56 41 4c 55 45 53 28 31 2c 20 20 27   t1 VALUES(1,  '
0550: 6f 6e 65 27 2c 20 20 20 27 49 27 29 3b 0a 20 20  one',   'I');.  
0560: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
0570: 20 56 41 4c 55 45 53 28 32 2c 20 20 27 74 77 6f   VALUES(2,  'two
0580: 27 2c 20 20 20 27 49 49 27 29 3b 0a 20 20 20 20  ',   'II');.    
0590: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56  INSERT INTO t1 V
05a0: 41 4c 55 45 53 28 33 2c 20 20 27 74 68 72 65 65  ALUES(3,  'three
05b0: 27 2c 20 27 49 49 49 27 29 3b 0a 20 20 20 20 49  ', 'III');.    I
05c0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41  NSERT INTO t1 VA
05d0: 4c 55 45 53 28 34 2c 20 20 27 66 6f 75 72 27 2c  LUES(4,  'four',
05e0: 20 20 27 49 56 27 29 3b 0a 20 20 20 20 49 4e 53    'IV');.    INS
05f0: 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55  ERT INTO t1 VALU
0600: 45 53 28 35 2c 20 20 27 66 69 76 65 27 2c 20 20  ES(5,  'five',  
0610: 27 56 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  'V');.    INSERT
0620: 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28   INTO t1 VALUES(
0630: 36 2c 20 20 27 73 69 78 27 2c 20 20 20 27 56 49  6,  'six',   'VI
0640: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
0650: 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28 37 2c  NTO t1 VALUES(7,
0660: 20 20 27 73 65 76 65 6e 27 2c 20 27 56 49 49 27    'seven', 'VII'
0670: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
0680: 54 4f 20 74 31 20 56 41 4c 55 45 53 28 38 2c 20  TO t1 VALUES(8, 
0690: 20 27 65 69 67 68 74 27 2c 20 27 56 49 49 49 27   'eight', 'VIII'
06a0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
06b0: 54 4f 20 74 31 20 56 41 4c 55 45 53 28 39 2c 20  TO t1 VALUES(9, 
06c0: 20 27 6e 69 6e 65 27 2c 20 20 27 49 58 27 29 3b   'nine',  'IX');
06d0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
06e0: 20 74 31 20 56 41 4c 55 45 53 28 31 30 2c 20 27   t1 VALUES(10, '
06f0: 74 65 6e 27 2c 20 20 20 27 58 27 29 3b 0a 20 20  ten',   'X');.  
0700: 7d 0a 7d 20 7b 7d 0a 0a 64 6f 5f 74 65 73 74 20  }.} {}..do_test 
0710: 77 68 65 72 65 38 2d 31 2e 32 20 7b 20 0a 20 20  where8-1.2 { .  
0720: 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20  execsql_status2 
0730: 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20  { SELECT c FROM 
0740: 74 31 20 57 48 45 52 45 20 61 20 3d 20 31 20 4f  t1 WHERE a = 1 O
0750: 52 20 62 20 3d 20 27 6e 69 6e 65 27 20 7d 0a 7d  R b = 'nine' }.}
0760: 20 7b 49 20 49 58 20 30 20 30 20 36 7d 0a 0a 64   {I IX 0 0 6}..d
0770: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e  o_test where8-1.
0780: 33 20 7b 20 0a 20 20 65 78 65 63 73 71 6c 5f 73  3 { .  execsql_s
0790: 74 61 74 75 73 32 20 7b 20 53 45 4c 45 43 54 20  tatus2 { SELECT 
07a0: 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20  c FROM t1 WHERE 
07b0: 61 20 3e 20 38 20 4f 52 20 62 20 3d 20 27 74 77  a > 8 OR b = 'tw
07c0: 6f 27 20 7d 0a 7d 20 7b 49 58 20 58 20 49 49 20  o' }.} {IX X II 
07d0: 30 20 30 20 36 7d 0a 0a 69 66 63 61 70 61 62 6c  0 0 6}..ifcapabl
07e0: 65 20 6c 69 6b 65 5f 6d 61 74 63 68 5f 62 6c 6f  e like_match_blo
07f0: 62 73 20 7b 0a 20 20 64 6f 5f 74 65 73 74 20 77  bs {.  do_test w
0800: 68 65 72 65 38 2d 31 2e 34 61 20 7b 20 0a 20 20  here8-1.4a { .  
0810: 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73    execsql_status
0820: 32 20 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f  2 { SELECT c FRO
0830: 4d 20 74 31 20 57 48 45 52 45 20 61 20 3e 20 38  M t1 WHERE a > 8
0840: 20 4f 52 20 62 20 47 4c 4f 42 20 27 74 2a 27 20   OR b GLOB 't*' 
0850: 7d 0a 20 20 7d 20 7b 49 58 20 58 20 49 49 49 20  }.  } {IX X III 
0860: 49 49 20 30 20 30 20 31 30 7d 0a 20 20 64 6f 5f  II 0 0 10}.  do_
0870: 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e 35 61  test where8-1.5a
0880: 20 7b 20 0a 20 20 20 20 65 78 65 63 73 71 6c 5f   { .    execsql_
0890: 73 74 61 74 75 73 32 20 7b 20 53 45 4c 45 43 54  status2 { SELECT
08a0: 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45   c FROM t1 WHERE
08b0: 20 61 20 3e 20 38 20 4f 52 20 62 20 47 4c 4f 42   a > 8 OR b GLOB
08c0: 20 27 66 2a 27 20 7d 0a 20 20 7d 20 7b 49 58 20   'f*' }.  } {IX 
08d0: 58 20 56 20 49 56 20 30 20 30 20 31 30 7d 0a 7d  X V IV 0 0 10}.}
08e0: 20 65 6c 73 65 20 7b 0a 20 20 64 6f 5f 74 65 73   else {.  do_tes
08f0: 74 20 77 68 65 72 65 38 2d 31 2e 34 62 20 7b 20  t where8-1.4b { 
0900: 0a 20 20 20 20 65 78 65 63 73 71 6c 5f 73 74 61  .    execsql_sta
0910: 74 75 73 32 20 7b 20 53 45 4c 45 43 54 20 63 20  tus2 { SELECT c 
0920: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 20  FROM t1 WHERE a 
0930: 3e 20 38 20 4f 52 20 62 20 47 4c 4f 42 20 27 74  > 8 OR b GLOB 't
0940: 2a 27 20 7d 0a 20 20 7d 20 7b 49 58 20 58 20 49  *' }.  } {IX X I
0950: 49 49 20 49 49 20 30 20 30 20 39 7d 0a 20 20 64  II II 0 0 9}.  d
0960: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e  o_test where8-1.
0970: 35 20 7b 20 0a 20 20 20 20 65 78 65 63 73 71 6c  5 { .    execsql
0980: 5f 73 74 61 74 75 73 32 20 7b 20 53 45 4c 45 43  _status2 { SELEC
0990: 54 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52  T c FROM t1 WHER
09a0: 45 20 61 20 3e 20 38 20 4f 52 20 62 20 47 4c 4f  E a > 8 OR b GLO
09b0: 42 20 27 66 2a 27 20 7d 0a 20 20 7d 20 7b 49 58  B 'f*' }.  } {IX
09c0: 20 58 20 56 20 49 56 20 30 20 30 20 39 7d 0a 7d   X V IV 0 0 9}.}
09d0: 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38  ..do_test where8
09e0: 2d 31 2e 36 20 7b 20 0a 20 20 65 78 65 63 73 71  -1.6 { .  execsq
09f0: 6c 5f 73 74 61 74 75 73 20 7b 20 53 45 4c 45 43  l_status { SELEC
0a00: 54 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52  T c FROM t1 WHER
0a10: 45 20 61 20 3d 20 31 20 4f 52 20 62 20 3d 20 27  E a = 1 OR b = '
0a20: 74 68 72 65 65 27 20 4f 52 44 45 52 20 42 59 20  three' ORDER BY 
0a30: 72 6f 77 69 64 20 7d 0a 7d 20 7b 49 20 49 49 49  rowid }.} {I III
0a40: 20 30 20 31 7d 0a 0a 64 6f 5f 74 65 73 74 20 77   0 1}..do_test w
0a50: 68 65 72 65 38 2d 31 2e 37 20 7b 20 0a 20 20 65  here8-1.7 { .  e
0a60: 78 65 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 20  xecsql_status { 
0a70: 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31  SELECT c FROM t1
0a80: 20 57 48 45 52 45 20 61 20 3d 20 31 20 4f 52 20   WHERE a = 1 OR 
0a90: 62 20 3d 20 27 74 68 72 65 65 27 20 4f 52 44 45  b = 'three' ORDE
0aa0: 52 20 42 59 20 61 20 7d 0a 7d 20 7b 49 20 49 49  R BY a }.} {I II
0ab0: 49 20 30 20 31 7d 0a 0a 64 6f 5f 74 65 73 74 20  I 0 1}..do_test 
0ac0: 77 68 65 72 65 38 2d 31 2e 38 20 7b 0a 20 20 23  where8-1.8 {.  #
0ad0: 20 31 38 20 73 65 61 72 63 68 65 73 2e 20 39 20   18 searches. 9 
0ae0: 6f 6e 20 74 68 65 20 69 6e 64 65 78 20 63 75 72  on the index cur
0af0: 73 6f 72 20 61 6e 64 20 39 20 6f 6e 20 74 68 65  sor and 9 on the
0b00: 20 74 61 62 6c 65 20 63 75 72 73 6f 72 2e 0a 20   table cursor.. 
0b10: 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32   execsql_status2
0b20: 20 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d   { SELECT c FROM
0b30: 20 74 31 20 57 48 45 52 45 20 61 20 3e 20 31 20   t1 WHERE a > 1 
0b40: 41 4e 44 20 63 20 4c 49 4b 45 20 27 49 25 27 20  AND c LIKE 'I%' 
0b50: 7d 0a 7d 20 7b 49 49 20 49 49 49 20 49 56 20 49  }.} {II III IV I
0b60: 58 20 30 20 30 20 31 38 7d 0a 0a 64 6f 5f 74 65  X 0 0 18}..do_te
0b70: 73 74 20 77 68 65 72 65 38 2d 31 2e 39 20 7b 0a  st where8-1.9 {.
0b80: 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73    execsql_status
0b90: 32 20 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f  2 { SELECT c FRO
0ba0: 4d 20 74 31 20 57 48 45 52 45 20 61 20 3e 3d 20  M t1 WHERE a >= 
0bb0: 39 20 4f 52 20 62 20 3c 3d 20 27 65 69 67 68 74  9 OR b <= 'eight
0bc0: 27 20 7d 0a 7d 20 7b 49 58 20 58 20 56 49 49 49  ' }.} {IX X VIII
0bd0: 20 30 20 30 20 37 7d 0a 0a 64 6f 5f 74 65 73 74   0 0 7}..do_test
0be0: 20 77 68 65 72 65 38 2d 31 2e 31 30 20 7b 0a 20   where8-1.10 {. 
0bf0: 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32   execsql_status2
0c00: 20 7b 20 0a 20 20 20 20 53 45 4c 45 43 54 20 63   { .    SELECT c
0c10: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 28   FROM t1 WHERE (
0c20: 61 20 3e 3d 20 39 20 41 4e 44 20 63 20 21 3d 20  a >= 9 AND c != 
0c30: 27 58 27 29 20 4f 52 20 62 20 3c 3d 20 27 65 69  'X') OR b <= 'ei
0c40: 67 68 74 27 20 0a 20 20 7d 0a 7d 20 7b 49 58 20  ght' .  }.} {IX 
0c50: 56 49 49 49 20 30 20 30 20 37 7d 0a 0a 64 6f 5f  VIII 0 0 7}..do_
0c60: 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e 31 31  test where8-1.11
0c70: 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61   {.  execsql_sta
0c80: 74 75 73 32 20 7b 20 0a 20 20 20 20 53 45 4c 45  tus2 { .    SELE
0c90: 43 54 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45  CT c FROM t1 WHE
0ca0: 52 45 20 28 61 20 3e 3d 20 34 20 41 4e 44 20 61  RE (a >= 4 AND a
0cb0: 20 3c 3d 20 36 29 20 4f 52 20 62 20 3d 20 27 6e   <= 6) OR b = 'n
0cc0: 69 6e 65 27 20 0a 20 20 7d 0a 7d 20 7b 49 56 20  ine' .  }.} {IV 
0cd0: 56 20 56 49 20 49 58 20 30 20 30 20 31 30 7d 0a  V VI IX 0 0 10}.
0ce0: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
0cf0: 31 2e 31 32 2e 31 20 7b 0a 20 20 65 78 65 63 73  1.12.1 {.  execs
0d00: 71 6c 5f 73 74 61 74 75 73 32 20 7b 20 0a 20 20  ql_status2 { .  
0d10: 20 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20    SELECT c FROM 
0d20: 74 31 20 57 48 45 52 45 20 61 20 49 4e 28 31 2c  t1 WHERE a IN(1,
0d30: 20 32 2c 20 33 29 20 4f 52 20 61 20 3d 20 35 0a   2, 3) OR a = 5.
0d40: 20 20 7d 0a 7d 20 7b 49 20 49 49 20 49 49 49 20    }.} {I II III 
0d50: 56 20 30 20 30 20 31 34 7d 0a 0a 64 6f 5f 74 65  V 0 0 14}..do_te
0d60: 73 74 20 77 68 65 72 65 38 2d 31 2e 31 32 2e 32  st where8-1.12.2
0d70: 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61   {.  execsql_sta
0d80: 74 75 73 32 20 7b 20 0a 20 20 20 20 53 45 4c 45  tus2 { .    SELE
0d90: 43 54 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45  CT c FROM t1 WHE
0da0: 52 45 20 2b 61 20 49 4e 28 31 2c 20 32 2c 20 33  RE +a IN(1, 2, 3
0db0: 29 20 4f 52 20 2b 61 20 3d 20 35 0a 20 20 7d 0a  ) OR +a = 5.  }.
0dc0: 7d 20 7b 49 20 49 49 20 49 49 49 20 56 20 39 20  } {I II III V 9 
0dd0: 30 20 39 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68  0 9}..do_test wh
0de0: 65 72 65 38 2d 31 2e 31 33 20 7b 0a 20 20 65 78  ere8-1.13 {.  ex
0df0: 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 0a  ecsql_status2 {.
0e00: 20 20 20 20 53 45 4c 45 43 54 20 63 20 46 52 4f      SELECT c FRO
0e10: 4d 20 74 31 0a 20 20 20 20 57 48 45 52 45 20 61  M t1.    WHERE a
0e20: 20 3d 20 32 20 4f 52 20 62 20 3d 20 27 74 68 72   = 2 OR b = 'thr
0e30: 65 65 27 20 4f 52 20 61 20 3d 20 34 20 4f 52 20  ee' OR a = 4 OR 
0e40: 62 20 3d 20 27 66 69 76 65 27 20 4f 52 20 61 20  b = 'five' OR a 
0e50: 3d 20 36 0a 20 20 20 20 4f 52 44 45 52 20 42 59  = 6.    ORDER BY
0e60: 20 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 49 49   rowid.  }.} {II
0e70: 20 49 49 49 20 49 56 20 56 20 56 49 20 30 20 31   III IV V VI 0 1
0e80: 20 31 38 7d 0a 64 6f 5f 74 65 73 74 20 77 68 65   18}.do_test whe
0e90: 72 65 38 2d 31 2e 31 34 20 7b 0a 20 20 65 78 65  re8-1.14 {.  exe
0ea0: 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 0a 20  csql_status2 {. 
0eb0: 20 20 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d     SELECT c FROM
0ec0: 20 74 31 0a 20 20 20 20 57 48 45 52 45 20 0a 20   t1.    WHERE . 
0ed0: 20 20 20 20 20 61 20 3d 20 32 20 4f 52 20 62 20       a = 2 OR b 
0ee0: 3d 20 27 74 68 72 65 65 27 20 4f 52 20 61 20 3d  = 'three' OR a =
0ef0: 20 34 20 4f 52 20 62 20 3d 20 27 66 69 76 65 27   4 OR b = 'five'
0f00: 20 4f 52 20 61 20 3d 20 36 20 4f 52 0a 20 20 20   OR a = 6 OR.   
0f10: 20 20 20 62 20 3d 20 27 73 65 76 65 6e 27 20 4f     b = 'seven' O
0f20: 52 20 61 20 3d 20 38 20 4f 52 20 62 20 3d 20 27  R a = 8 OR b = '
0f30: 6e 69 6e 65 27 20 4f 52 20 61 20 3d 20 31 30 0a  nine' OR a = 10.
0f40: 20 20 20 20 4f 52 44 45 52 20 42 59 20 72 6f 77      ORDER BY row
0f50: 69 64 0a 20 20 7d 0a 7d 20 7b 49 49 20 49 49 49  id.  }.} {II III
0f60: 20 49 56 20 56 20 56 49 20 56 49 49 20 56 49 49   IV V VI VII VII
0f70: 49 20 49 58 20 58 20 30 20 31 20 33 33 7d 0a 0a  I IX X 0 1 33}..
0f80: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31  do_test where8-1
0f90: 2e 31 35 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f  .15 {.  execsql_
0fa0: 73 74 61 74 75 73 32 20 7b 0a 20 20 20 20 53 45  status2 {.    SE
0fb0: 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20 57  LECT c FROM t1 W
0fc0: 48 45 52 45 20 0a 20 20 20 20 20 20 61 20 42 45  HERE .      a BE
0fd0: 54 57 45 45 4e 20 32 20 41 4e 44 20 34 20 4f 52  TWEEN 2 AND 4 OR
0fe0: 20 62 20 3d 20 27 6e 69 6e 65 27 0a 20 20 20 20   b = 'nine'.    
0ff0: 4f 52 44 45 52 20 42 59 20 72 6f 77 69 64 0a 20  ORDER BY rowid. 
1000: 20 7d 0a 7d 20 7b 49 49 20 49 49 49 20 49 56 20   }.} {II III IV 
1010: 49 58 20 30 20 31 20 31 32 7d 0a 0a 0a 23 2d 2d  IX 0 1 12}...#--
1020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1040: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1050: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1060: 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54 65 73 74 73  --------.# Tests
1070: 20 77 68 65 72 65 38 2d 32 2e 2a 3a 20 56 69 72   where8-2.*: Vir
1080: 74 75 61 6c 20 74 61 62 6c 65 73 0a 23 20 0a 0a  tual tables.# ..
1090: 69 66 20 30 20 7b 0a 69 66 63 61 70 61 62 6c 65  if 0 {.ifcapable
10a0: 20 76 74 61 62 20 7b 0a 20 20 23 20 52 65 67 69   vtab {.  # Regi
10b0: 73 74 65 72 20 74 68 65 20 27 65 63 68 6f 27 20  ster the 'echo' 
10c0: 6d 6f 64 75 6c 65 20 75 73 65 64 20 66 6f 72 20  module used for 
10d0: 74 65 73 74 69 6e 67 20 76 69 72 74 75 61 6c 20  testing virtual 
10e0: 74 61 62 6c 65 73 2e 0a 20 20 23 0a 20 20 72 65  tables..  #.  re
10f0: 67 69 73 74 65 72 5f 65 63 68 6f 5f 6d 6f 64 75  gister_echo_modu
1100: 6c 65 20 5b 73 71 6c 69 74 65 33 5f 63 6f 6e 6e  le [sqlite3_conn
1110: 65 63 74 69 6f 6e 5f 70 6f 69 6e 74 65 72 20 64  ection_pointer d
1120: 62 5d 0a 0a 20 20 64 6f 5f 74 65 73 74 20 77 68  b]..  do_test wh
1130: 65 72 65 38 2d 32 2e 31 20 7b 0a 20 20 20 20 65  ere8-2.1 {.    e
1140: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 20 20 43  xecsql {.      C
1150: 52 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41  REATE VIRTUAL TA
1160: 42 4c 45 20 65 31 20 55 53 49 4e 47 20 65 63 68  BLE e1 USING ech
1170: 6f 28 74 31 29 3b 0a 20 20 20 20 20 20 53 45 4c  o(t1);.      SEL
1180: 45 43 54 20 62 20 46 52 4f 4d 20 65 31 3b 0a 20  ECT b FROM e1;. 
1190: 20 20 20 7d 0a 20 20 7d 20 7b 6f 6e 65 20 74 77     }.  } {one tw
11a0: 6f 20 74 68 72 65 65 20 66 6f 75 72 20 66 69 76  o three four fiv
11b0: 65 20 73 69 78 20 73 65 76 65 6e 20 65 69 67 68  e six seven eigh
11c0: 74 20 6e 69 6e 65 20 74 65 6e 7d 0a 0a 20 20 64  t nine ten}..  d
11d0: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 32 2e  o_test where8-2.
11e0: 32 2e 31 20 7b 0a 20 20 20 20 73 65 74 20 65 63  2.1 {.    set ec
11f0: 68 6f 5f 6d 6f 64 75 6c 65 20 22 22 0a 20 20 20  ho_module "".   
1200: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 20   execsql {.     
1210: 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 65   SELECT c FROM e
1220: 31 20 57 48 45 52 45 20 61 3d 31 20 4f 52 20 62  1 WHERE a=1 OR b
1230: 3d 27 74 68 72 65 65 27 3b 0a 20 20 20 20 7d 0a  ='three';.    }.
1240: 20 20 7d 20 7b 49 20 49 49 49 7d 0a 20 20 64 6f    } {I III}.  do
1250: 5f 74 65 73 74 20 77 68 65 72 65 38 2d 32 2e 32  _test where8-2.2
1260: 2e 32 20 7b 0a 20 20 20 20 73 65 74 20 65 63 68  .2 {.    set ech
1270: 6f 5f 6d 6f 64 75 6c 65 0a 20 20 7d 20 7b 54 4f  o_module.  } {TO
1280: 44 4f 3a 20 57 68 61 74 20 73 68 6f 75 6c 64 20  DO: What should 
1290: 74 68 69 73 20 62 65 3f 7d 0a 7d 0a 7d 0a 0a 23  this be?}.}.}..#
12a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54 65 73  ----------.# Tes
12f0: 74 73 20 77 68 65 72 65 38 2d 33 2e 2a 3a 20 43  ts where8-3.*: C
1300: 61 73 65 73 20 77 69 74 68 20 6d 75 6c 74 69 70  ases with multip
1310: 6c 65 20 74 61 62 6c 65 73 20 69 6e 20 74 68 65  le tables in the
1320: 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e 0a 23 20   FROM clause..# 
1330: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
1340: 33 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  3.1 {.  execsql 
1350: 7b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42  {.    CREATE TAB
1360: 4c 45 20 74 32 28 64 2c 20 65 2c 20 66 29 3b 0a  LE t2(d, e, f);.
1370: 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58      CREATE INDEX
1380: 20 69 33 20 4f 4e 20 74 32 28 64 29 3b 0a 20 20   i3 ON t2(d);.  
1390: 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20 69    CREATE INDEX i
13a0: 34 20 4f 4e 20 74 32 28 65 29 3b 0a 0a 20 20 20  4 ON t2(e);..   
13b0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20   INSERT INTO t2 
13c0: 56 41 4c 55 45 53 28 31 2c 20 20 4e 55 4c 4c 2c  VALUES(1,  NULL,
13d0: 20 20 20 20 20 20 20 20 20 27 49 27 29 3b 0a 20           'I');. 
13e0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
13f0: 32 20 56 41 4c 55 45 53 28 32 2c 20 20 27 66 6f  2 VALUES(2,  'fo
1400: 75 72 27 2c 20 20 20 20 20 20 20 27 49 56 27 29  ur',       'IV')
1410: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
1420: 4f 20 74 32 20 56 41 4c 55 45 53 28 33 2c 20 20  O t2 VALUES(3,  
1430: 4e 55 4c 4c 2c 20 20 20 20 20 20 20 20 20 27 49  NULL,         'I
1440: 58 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  X');.    INSERT 
1450: 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28 34  INTO t2 VALUES(4
1460: 2c 20 20 27 73 69 78 74 65 65 6e 27 2c 20 20 20  ,  'sixteen',   
1470: 20 27 58 56 49 27 29 3b 0a 20 20 20 20 49 4e 53   'XVI');.    INS
1480: 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55  ERT INTO t2 VALU
1490: 45 53 28 35 2c 20 20 4e 55 4c 4c 2c 20 20 20 20  ES(5,  NULL,    
14a0: 20 20 20 20 20 27 58 58 56 27 29 3b 0a 20 20 20       'XXV');.   
14b0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20   INSERT INTO t2 
14c0: 56 41 4c 55 45 53 28 36 2c 20 20 27 74 68 69 72  VALUES(6,  'thir
14d0: 74 79 73 69 78 27 2c 20 20 27 58 58 58 56 49 27  tysix',  'XXXVI'
14e0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
14f0: 54 4f 20 74 32 20 56 41 4c 55 45 53 28 37 2c 20  TO t2 VALUES(7, 
1500: 20 27 66 6f 72 74 79 6e 69 6e 65 27 2c 20 20 27   'fortynine',  '
1510: 58 4c 49 58 27 29 3b 0a 20 20 20 20 49 4e 53 45  XLIX');.    INSE
1520: 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45  RT INTO t2 VALUE
1530: 53 28 38 2c 20 20 27 73 69 78 74 79 65 69 67 68  S(8,  'sixtyeigh
1540: 74 27 2c 20 27 4c 58 49 56 27 29 3b 0a 20 20 20  t', 'LXIV');.   
1550: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20   INSERT INTO t2 
1560: 56 41 4c 55 45 53 28 39 2c 20 20 27 65 69 67 68  VALUES(9,  'eigh
1570: 74 79 6f 6e 65 27 2c 20 20 27 4c 58 58 58 49 58  tyone',  'LXXXIX
1580: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
1590: 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28 31 30  NTO t2 VALUES(10
15a0: 2c 20 4e 55 4c 4c 2c 20 20 20 20 20 20 20 20 20  , NULL,         
15b0: 27 43 27 29 3b 0a 20 20 7d 0a 7d 20 7b 7d 0a 0a  'C');.  }.} {}..
15c0: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33  do_test where8-3
15d0: 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73  .2 {.  execsql_s
15e0: 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45  tatus {.    SELE
15f0: 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74 31 2c  CT a, d FROM t1,
1600: 20 74 32 20 57 48 45 52 45 20 62 3d 65 0a 20 20   t2 WHERE b=e.  
1610: 7d 0a 7d 20 7b 34 20 32 20 39 20 30 7d 0a 0a 64  }.} {4 2 9 0}..d
1620: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e  o_test where8-3.
1630: 33 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74  3 {.  execsql_st
1640: 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45 43  atus {.    SELEC
1650: 54 20 61 2c 20 64 20 46 52 4f 4d 20 74 31 2c 20  T a, d FROM t1, 
1660: 74 32 20 57 48 45 52 45 20 28 61 20 3d 20 32 20  t2 WHERE (a = 2 
1670: 4f 52 20 61 20 3d 20 33 29 20 41 4e 44 20 64 20  OR a = 3) AND d 
1680: 3d 20 36 0a 20 20 7d 0a 7d 20 7b 32 20 36 20 33  = 6.  }.} {2 6 3
1690: 20 36 20 30 20 30 7d 0a 0a 64 6f 5f 74 65 73 74   6 0 0}..do_test
16a0: 20 77 68 65 72 65 38 2d 33 2e 34 20 7b 0a 20 20   where8-3.4 {.  
16b0: 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 20 7b  execsql_status {
16c0: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 64  .    SELECT a, d
16d0: 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48 45   FROM t1, t2 WHE
16e0: 52 45 20 28 61 20 3d 20 32 20 4f 52 20 61 20 3d  RE (a = 2 OR a =
16f0: 20 33 29 20 41 4e 44 20 64 20 3d 20 61 0a 20 20   3) AND d = a.  
1700: 7d 0a 7d 20 7b 32 20 32 20 33 20 33 20 30 20 30  }.} {2 2 3 3 0 0
1710: 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65  }..do_test where
1720: 38 2d 33 2e 35 20 7b 0a 20 20 65 78 65 63 73 71  8-3.5 {.  execsq
1730: 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53  l_status {.    S
1740: 45 4c 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20  ELECT a, d FROM 
1750: 74 31 2c 20 74 32 20 57 48 45 52 45 20 28 61 20  t1, t2 WHERE (a 
1760: 3d 20 32 20 4f 52 20 61 20 3d 20 33 29 20 41 4e  = 2 OR a = 3) AN
1770: 44 20 28 64 20 3d 20 2b 61 20 4f 52 20 65 20 3d  D (d = +a OR e =
1780: 20 27 73 69 78 74 65 65 6e 27 29 0a 20 20 20 20   'sixteen').    
1790: 20 4f 52 44 45 52 20 42 59 20 2b 61 2c 20 2b 64   ORDER BY +a, +d
17a0: 3b 0a 20 20 7d 0a 7d 20 7b 32 20 32 20 32 20 34  ;.  }.} {2 2 2 4
17b0: 20 33 20 33 20 33 20 34 20 30 20 31 7d 0a 0a 64   3 3 3 4 0 1}..d
17c0: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e  o_test where8-3.
17d0: 36 20 7b 0a 20 20 23 20 54 68 65 20 66 69 72 73  6 {.  # The firs
17e0: 74 20 70 61 72 74 20 6f 66 20 74 68 65 20 57 48  t part of the WH
17f0: 45 52 45 20 63 6c 61 75 73 65 20 69 6e 20 74 68  ERE clause in th
1800: 69 73 20 71 75 65 72 79 2c 20 28 61 3d 32 20 4f  is query, (a=2 O
1810: 52 20 61 3d 33 29 20 69 73 0a 20 20 23 20 74 72  R a=3) is.  # tr
1820: 61 6e 73 66 6f 72 6d 65 64 20 69 6e 74 6f 20 22  ansformed into "
1830: 61 20 49 4e 20 28 32 2c 20 33 29 22 2e 20 54 68  a IN (2, 3)". Th
1840: 69 73 20 69 73 20 77 68 79 20 74 68 65 20 73 6f  is is why the so
1850: 72 74 20 69 73 20 72 65 71 75 69 72 65 64 2e 0a  rt is required..
1860: 20 20 23 0a 20 20 65 78 65 63 73 71 6c 5f 73 74    #.  execsql_st
1870: 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45 43  atus {.    SELEC
1880: 54 20 61 2c 20 64 20 0a 20 20 20 20 46 52 4f 4d  T a, d .    FROM
1890: 20 74 31 2c 20 74 32 20 0a 20 20 20 20 57 48 45   t1, t2 .    WHE
18a0: 52 45 20 28 61 20 3d 20 32 20 4f 52 20 61 20 3d  RE (a = 2 OR a =
18b0: 20 33 29 20 41 4e 44 20 28 64 20 3d 20 2b 61 20   3) AND (d = +a 
18c0: 4f 52 20 65 20 3d 20 27 73 69 78 74 65 65 6e 27  OR e = 'sixteen'
18d0: 29 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  ).    ORDER BY t
18e0: 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 32  1.rowid.  }.} {2
18f0: 20 32 20 32 20 34 20 33 20 33 20 33 20 34 20 30   2 2 4 3 3 3 4 0
1900: 20 31 7d 0a 64 6f 5f 74 65 73 74 20 77 68 65 72   1}.do_test wher
1910: 65 38 2d 33 2e 37 20 7b 0a 20 20 65 78 65 63 73  e8-3.7 {.  execs
1920: 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20  ql_status {.    
1930: 53 45 4c 45 43 54 20 61 2c 20 64 20 0a 20 20 20  SELECT a, d .   
1940: 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 0a 20 20   FROM t1, t2 .  
1950: 20 20 57 48 45 52 45 20 61 20 3d 20 32 20 41 4e    WHERE a = 2 AN
1960: 44 20 28 64 20 3d 20 61 20 4f 52 20 65 20 3d 20  D (d = a OR e = 
1970: 27 73 69 78 74 65 65 6e 27 29 0a 20 20 20 20 4f  'sixteen').    O
1980: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
1990: 0a 20 20 7d 0a 7d 20 7b 2f 32 20 32 20 32 20 34  .  }.} {/2 2 2 4
19a0: 20 30 20 5b 30 31 5d 2f 7d 0a 64 6f 5f 74 65 73   0 [01]/}.do_tes
19b0: 74 20 77 68 65 72 65 38 2d 33 2e 38 20 7b 0a 20  t where8-3.8 {. 
19c0: 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 20   execsql_status 
19d0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  {.    SELECT a, 
19e0: 64 20 0a 20 20 20 20 46 52 4f 4d 20 74 31 2c 20  d .    FROM t1, 
19f0: 74 32 20 0a 20 20 20 20 57 48 45 52 45 20 28 61  t2 .    WHERE (a
1a00: 20 3d 20 32 20 4f 52 20 62 20 3d 20 27 74 68 72   = 2 OR b = 'thr
1a10: 65 65 27 29 20 41 4e 44 20 28 64 20 3d 20 61 20  ee') AND (d = a 
1a20: 4f 52 20 65 20 3d 20 27 73 69 78 74 65 65 6e 27  OR e = 'sixteen'
1a30: 29 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  ).    ORDER BY t
1a40: 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 32  1.rowid.  }.} {2
1a50: 20 32 20 32 20 34 20 33 20 33 20 33 20 34 20 30   2 2 4 3 3 3 4 0
1a60: 20 31 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65   1}..do_test whe
1a70: 72 65 38 2d 33 2e 39 20 7b 0a 20 20 23 20 54 68  re8-3.9 {.  # Th
1a80: 65 20 22 4f 52 20 63 20 3d 20 27 49 58 27 22 20  e "OR c = 'IX'" 
1a90: 74 65 72 6d 20 66 6f 72 63 65 73 20 61 20 6c 69  term forces a li
1aa0: 6e 65 61 72 20 73 63 61 6e 2e 0a 20 20 65 78 65  near scan..  exe
1ab0: 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20  csql_status {.  
1ac0: 20 20 53 45 4c 45 43 54 20 61 2c 20 64 20 0a 20    SELECT a, d . 
1ad0: 20 20 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 0a     FROM t1, t2 .
1ae0: 20 20 20 20 57 48 45 52 45 20 28 61 20 3d 20 32      WHERE (a = 2
1af0: 20 4f 52 20 62 20 3d 20 27 74 68 72 65 65 27 20   OR b = 'three' 
1b00: 4f 52 20 63 20 3d 20 27 49 58 27 29 20 41 4e 44  OR c = 'IX') AND
1b10: 20 28 64 20 3d 20 61 20 4f 52 20 65 20 3d 20 27   (d = a OR e = '
1b20: 73 69 78 74 65 65 6e 27 29 0a 20 20 20 20 4f 52  sixteen').    OR
1b30: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
1b40: 20 20 7d 0a 7d 20 7b 32 20 32 20 32 20 34 20 33    }.} {2 2 2 4 3
1b50: 20 33 20 33 20 34 20 39 20 39 20 39 20 34 20 39   3 3 4 9 9 9 4 9
1b60: 20 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65   0}..do_test whe
1b70: 72 65 38 2d 33 2e 31 30 20 7b 0a 20 20 65 78 65  re8-3.10 {.  exe
1b80: 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20  csql_status {.  
1b90: 20 20 53 45 4c 45 43 54 20 64 20 46 52 4f 4d 20    SELECT d FROM 
1ba0: 74 32 20 57 48 45 52 45 20 65 20 49 53 20 4e 55  t2 WHERE e IS NU
1bb0: 4c 4c 20 4f 52 20 65 20 3d 20 27 66 6f 75 72 27  LL OR e = 'four'
1bc0: 0a 20 20 7d 0a 7d 20 7b 31 20 33 20 35 20 31 30  .  }.} {1 3 5 10
1bd0: 20 32 20 30 20 30 7d 0a 0a 64 6f 5f 74 65 73 74   2 0 0}..do_test
1be0: 20 77 68 65 72 65 38 2d 33 2e 31 31 20 7b 0a 20   where8-3.11 {. 
1bf0: 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 20   execsql_status 
1c00: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20  {.    SELECT a, 
1c10: 64 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48  d FROM t1, t2 WH
1c20: 45 52 45 20 28 61 3d 64 20 4f 52 20 62 3d 65 29  ERE (a=d OR b=e)
1c30: 20 41 4e 44 20 61 3c 35 20 4f 52 44 45 52 20 42   AND a<5 ORDER B
1c40: 59 20 61 0a 20 20 7d 0a 7d 20 7b 31 20 31 20 32  Y a.  }.} {1 1 2
1c50: 20 32 20 33 20 33 20 34 20 32 20 34 20 34 20 30   2 3 3 4 2 4 4 0
1c60: 20 30 7d 0a 64 6f 5f 74 65 73 74 20 77 68 65 72   0}.do_test wher
1c70: 65 38 2d 33 2e 31 32 20 7b 0a 20 20 65 78 65 63  e8-3.12 {.  exec
1c80: 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20  sql_status {.   
1c90: 20 53 45 4c 45 43 54 20 61 2c 20 64 20 46 52 4f   SELECT a, d FRO
1ca0: 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 28  M t1, t2 WHERE (
1cb0: 61 3d 64 20 4f 52 20 62 3d 65 29 20 41 4e 44 20  a=d OR b=e) AND 
1cc0: 2b 61 3c 35 20 4f 52 44 45 52 20 42 59 20 61 0a  +a<5 ORDER BY a.
1cd0: 20 20 7d 0a 7d 20 7b 31 20 31 20 32 20 32 20 33    }.} {1 1 2 2 3
1ce0: 20 33 20 34 20 32 20 34 20 34 20 39 20 30 7d 0a   3 4 2 4 4 9 0}.
1cf0: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33  do_test where8-3
1d00: 2e 31 33 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f  .13 {.  execsql_
1d10: 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c  status {.    SEL
1d20: 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74 31  ECT a, d FROM t1
1d30: 2c 20 74 32 20 57 48 45 52 45 20 28 61 3d 64 20  , t2 WHERE (a=d 
1d40: 4f 52 20 62 3d 65 29 20 41 4e 44 20 2b 61 3c 35  OR b=e) AND +a<5
1d50: 0a 20 20 7d 0a 7d 20 7b 31 20 31 20 32 20 32 20  .  }.} {1 1 2 2 
1d60: 33 20 33 20 34 20 32 20 34 20 34 20 39 20 30 7d  3 3 4 2 4 4 9 0}
1d70: 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38  ..do_test where8
1d80: 2d 33 2e 31 34 20 7b 0a 20 20 65 78 65 63 73 71  -3.14 {.  execsq
1d90: 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53  l_status {.    S
1da0: 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20  ELECT c FROM t1 
1db0: 57 48 45 52 45 20 61 20 3e 20 28 53 45 4c 45 43  WHERE a > (SELEC
1dc0: 54 20 64 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T d FROM t2 WHER
1dd0: 45 20 65 20 3d 20 62 29 20 4f 52 20 61 20 3d 20  E e = b) OR a = 
1de0: 35 0a 20 20 7d 0a 7d 20 7b 49 56 20 56 20 39 20  5.  }.} {IV V 9 
1df0: 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72  0}..do_test wher
1e00: 65 38 2d 33 2e 31 35 20 7b 0a 20 20 65 78 65 63  e8-3.15 {.  exec
1e10: 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20  sql_status {.   
1e20: 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74   SELECT c FROM t
1e30: 31 2c 20 74 32 20 57 48 45 52 45 20 61 20 42 45  1, t2 WHERE a BE
1e40: 54 57 45 45 4e 20 31 20 41 4e 44 20 32 20 4f 52  TWEEN 1 AND 2 OR
1e50: 20 61 20 3d 20 28 0a 20 20 20 20 20 20 53 45 4c   a = (.      SEL
1e60: 45 43 54 20 73 75 6d 28 65 20 49 53 20 4e 55 4c  ECT sum(e IS NUL
1e70: 4c 29 20 46 52 4f 4d 20 74 32 20 41 53 20 69 6e  L) FROM t2 AS in
1e80: 6e 65 72 20 57 48 45 52 45 20 74 32 2e 64 3e 69  ner WHERE t2.d>i
1e90: 6e 6e 65 72 2e 64 0a 20 20 20 20 29 0a 20 20 20  nner.d.    ).   
1ea0: 20 4f 52 44 45 52 20 42 59 20 63 0a 20 20 7d 0a   ORDER BY c.  }.
1eb0: 7d 20 7b 49 20 49 20 49 20 49 20 49 20 49 20 49  } {I I I I I I I
1ec0: 20 49 20 49 20 49 20 49 49 20 49 49 20 49 49 20   I I I II II II 
1ed0: 49 49 20 49 49 20 49 49 20 49 49 20 49 49 20 49  II II II II II I
1ee0: 49 20 49 49 20 49 49 49 20 49 49 49 20 49 49 49  I II III III III
1ef0: 20 49 49 49 20 49 49 49 20 39 20 31 7d 0a 0a 0a   III III 9 1}...
1f00: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33  do_test where8-3
1f10: 2e 32 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f  .21 {.  execsql_
1f20: 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c  status {.    SEL
1f30: 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74 31  ECT a, d FROM t1
1f40: 2c 20 28 74 32 29 20 57 48 45 52 45 20 28 61 3d  , (t2) WHERE (a=
1f50: 64 20 4f 52 20 62 3d 65 29 20 41 4e 44 20 61 3c  d OR b=e) AND a<
1f60: 35 20 4f 52 44 45 52 20 42 59 20 61 0a 20 20 7d  5 ORDER BY a.  }
1f70: 0a 7d 20 7b 31 20 31 20 32 20 32 20 33 20 33 20  .} {1 1 2 2 3 3 
1f80: 34 20 32 20 34 20 34 20 30 20 30 7d 0a 64 6f 5f  4 2 4 4 0 0}.do_
1f90: 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e 32 31  test where8-3.21
1fa0: 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73  .1 {.  execsql_s
1fb0: 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45  tatus {.    SELE
1fc0: 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74 31 2c  CT a, d FROM t1,
1fd0: 20 28 28 74 32 29 29 20 41 53 20 74 33 20 57 48   ((t2)) AS t3 WH
1fe0: 45 52 45 20 28 61 3d 64 20 4f 52 20 62 3d 65 29  ERE (a=d OR b=e)
1ff0: 20 41 4e 44 20 61 3c 35 20 4f 52 44 45 52 20 42   AND a<5 ORDER B
2000: 59 20 61 0a 20 20 7d 0a 7d 20 7b 31 20 31 20 32  Y a.  }.} {1 1 2
2010: 20 32 20 33 20 33 20 34 20 32 20 34 20 34 20 30   2 3 3 4 2 4 4 0
2020: 20 30 7d 0a 69 66 20 7b 5b 70 65 72 6d 75 74 61   0}.if {[permuta
2030: 74 69 6f 6e 5d 20 21 3d 20 22 6e 6f 5f 6f 70 74  tion] != "no_opt
2040: 69 6d 69 7a 61 74 69 6f 6e 22 7d 20 7b 0a 64 6f  imization"} {.do
2050: 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e 32  _test where8-3.2
2060: 31 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f  1.2 {.  execsql_
2070: 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c  status {.    SEL
2080: 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74 31  ECT a, d FROM t1
2090: 2c 20 28 28 53 45 4c 45 43 54 20 2a 20 46 52 4f  , ((SELECT * FRO
20a0: 4d 20 74 32 29 29 20 41 53 20 74 33 20 57 48 45  M t2)) AS t3 WHE
20b0: 52 45 20 28 61 3d 64 20 4f 52 20 62 3d 65 29 20  RE (a=d OR b=e) 
20c0: 41 4e 44 20 61 3c 35 20 4f 52 44 45 52 20 42 59  AND a<5 ORDER BY
20d0: 20 61 0a 20 20 7d 0a 7d 20 7b 31 20 31 20 32 20   a.  }.} {1 1 2 
20e0: 32 20 33 20 33 20 34 20 32 20 34 20 34 20 30 20  2 3 3 4 2 4 4 0 
20f0: 30 7d 0a 7d 0a 64 6f 5f 74 65 73 74 20 77 68 65  0}.}.do_test whe
2100: 72 65 38 2d 33 2e 32 32 20 7b 0a 20 20 65 78 65  re8-3.22 {.  exe
2110: 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20  csql_status {.  
2120: 20 20 53 45 4c 45 43 54 20 61 2c 20 64 20 46 52    SELECT a, d FR
2130: 4f 4d 20 28 28 28 28 28 28 74 31 29 29 29 2c 20  OM ((((((t1))), 
2140: 28 28 28 74 32 29 29 29 29 29 29 0a 20 20 20 20  (((t2)))))).    
2150: 20 57 48 45 52 45 20 28 61 3d 64 20 4f 52 20 62   WHERE (a=d OR b
2160: 3d 65 29 20 41 4e 44 20 61 3c 35 20 4f 52 44 45  =e) AND a<5 ORDE
2170: 52 20 42 59 20 61 0a 20 20 7d 0a 7d 20 7b 31 20  R BY a.  }.} {1 
2180: 31 20 32 20 32 20 33 20 33 20 34 20 32 20 34 20  1 2 2 3 3 4 2 4 
2190: 34 20 30 20 30 7d 0a 69 66 20 7b 5b 70 65 72 6d  4 0 0}.if {[perm
21a0: 75 74 61 74 69 6f 6e 5d 20 21 3d 20 22 6e 6f 5f  utation] != "no_
21b0: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 22 7d 20 7b  optimization"} {
21c0: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
21d0: 33 2e 32 33 20 7b 0a 20 20 65 78 65 63 73 71 6c  3.23 {.  execsql
21e0: 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45  _status {.    SE
21f0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 28 28 53 45  LECT * FROM ((SE
2200: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32 29 29  LECT * FROM t2))
2210: 20 41 53 20 74 33 3b 0a 20 20 7d 0a 7d 20 7b 31   AS t3;.  }.} {1
2220: 20 7b 7d 20 49 20 32 20 66 6f 75 72 20 49 56 20   {} I 2 four IV 
2230: 33 20 7b 7d 20 49 58 20 34 20 73 69 78 74 65 65  3 {} IX 4 sixtee
2240: 6e 20 58 56 49 20 35 20 7b 7d 20 58 58 56 20 36  n XVI 5 {} XXV 6
2250: 20 74 68 69 72 74 79 73 69 78 20 58 58 58 56 49   thirtysix XXXVI
2260: 20 37 20 66 6f 72 74 79 6e 69 6e 65 20 58 4c 49   7 fortynine XLI
2270: 58 20 38 20 73 69 78 74 79 65 69 67 68 74 20 4c  X 8 sixtyeight L
2280: 58 49 56 20 39 20 65 69 67 68 74 79 6f 6e 65 20  XIV 9 eightyone 
2290: 4c 58 58 58 49 58 20 31 30 20 7b 7d 20 43 20 39  LXXXIX 10 {} C 9
22a0: 20 30 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d   0}.}..#--------
22b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a  ---------------.
22f0: 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  # The following 
2300: 74 65 73 74 73 20 2d 20 77 68 65 72 65 38 2d 34  tests - where8-4
2310: 2e 2a 20 2d 20 76 65 72 69 66 79 20 74 68 61 74  .* - verify that
2320: 20 61 64 64 69 6e 67 20 6f 72 20 72 65 6d 6f 76   adding or remov
2330: 69 6e 67 20 0a 23 20 69 6e 64 65 78 65 73 20 64  ing .# indexes d
2340: 6f 65 73 20 6e 6f 74 20 63 68 61 6e 67 65 20 74  oes not change t
2350: 68 65 20 72 65 73 75 6c 74 73 20 72 65 74 75 72  he results retur
2360: 6e 65 64 20 62 79 20 76 61 72 69 6f 75 73 20 71  ned by various q
2370: 75 65 72 69 65 73 2e 0a 23 0a 64 6f 5f 74 65 73  ueries..#.do_tes
2380: 74 20 77 68 65 72 65 38 2d 34 2e 31 20 7b 0a 20  t where8-4.1 {. 
2390: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 42   execsql {.    B
23a0: 45 47 49 4e 3b 0a 20 20 20 20 43 52 45 41 54 45  EGIN;.    CREATE
23b0: 20 54 41 42 4c 45 20 74 33 28 61 20 49 4e 54 45   TABLE t3(a INTE
23c0: 47 45 52 2c 20 62 20 52 45 41 4c 2c 20 63 20 54  GER, b REAL, c T
23d0: 45 58 54 29 3b 0a 20 20 20 20 43 52 45 41 54 45  EXT);.    CREATE
23e0: 20 54 41 42 4c 45 20 74 34 28 66 20 49 4e 54 45   TABLE t4(f INTE
23f0: 47 45 52 2c 20 67 20 52 45 41 4c 2c 20 68 20 54  GER, g REAL, h T
2400: 45 58 54 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  EXT);.    INSERT
2410: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2420: 27 68 69 6c 6c 73 27 2c 20 4e 55 4c 4c 2c 20 31  'hills', NULL, 1
2430: 34 31 35 39 32 36 35 33 35 29 3b 0a 20 20 20 20  415926535);.    
2440: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2450: 41 4c 55 45 53 28 27 61 6e 64 27 2c 20 27 6f 66  ALUES('and', 'of
2460: 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 20 49 4e  ', NULL);.    IN
2470: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
2480: 55 45 53 28 27 68 61 76 65 27 2c 20 27 74 6f 77  UES('have', 'tow
2490: 65 72 69 6e 67 27 2c 20 35 33 35 39 34 2e 30 38  ering', 53594.08
24a0: 31 32 38 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  128);.    INSERT
24b0: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
24c0: 4e 55 4c 4c 2c 20 34 35 2e 36 34 38 35 36 36 39  NULL, 45.6485669
24d0: 32 2c 20 27 4e 6f 74 27 29 3b 0a 20 20 20 20 49  2, 'Not');.    I
24e0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
24f0: 4c 55 45 53 28 27 73 61 6d 65 27 2c 20 35 30 32  LUES('same', 502
2500: 38 38 34 31 39 37 31 2c 20 4e 55 4c 4c 29 3b 0a  8841971, NULL);.
2510: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
2520: 74 33 20 56 41 4c 55 45 53 28 27 6f 6e 6c 6f 6f  t3 VALUES('onloo
2530: 6b 65 72 73 27 2c 20 27 69 6e 27 2c 20 38 32 31  kers', 'in', 821
2540: 34 38 30 38 36 35 31 29 3b 0a 20 20 20 20 49 4e  4808651);.    IN
2550: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
2560: 55 45 53 28 33 34 36 2e 30 33 34 38 36 31 30 2c  UES(346.0348610,
2570: 20 32 36 34 33 33 38 33 32 37 39 2c 20 4e 55 4c   2643383279, NUL
2580: 4c 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  L);.    INSERT I
2590: 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 31 34  NTO t3 VALUES(14
25a0: 31 35 39 32 36 35 33 35 2c 20 27 6f 66 27 2c 20  15926535, 'of', 
25b0: 27 61 72 65 27 29 3b 0a 20 20 20 20 49 4e 53 45  'are');.    INSE
25c0: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
25d0: 53 28 4e 55 4c 4c 2c 20 30 2e 34 38 31 31 31 37  S(NULL, 0.481117
25e0: 34 35 30 32 2c 20 27 73 6e 61 70 73 68 6f 74 73  4502, 'snapshots
25f0: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
2600: 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 6f  NTO t3 VALUES('o
2610: 76 65 72 27 2c 20 27 74 68 65 27 2c 20 38 36 32  ver', 'the', 862
2620: 38 30 33 34 38 32 35 29 3b 0a 20 20 20 20 49 4e  8034825);.    IN
2630: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
2640: 55 45 53 28 38 36 32 38 30 33 34 38 32 35 2c 20  UES(8628034825, 
2650: 36 36 2e 35 39 33 33 34 34 36 31 2c 20 32 38 34  66.59334461, 284
2660: 37 35 36 34 2e 38 32 33 29 3b 0a 20 20 20 20 49  7564.823);.    I
2670: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2680: 4c 55 45 53 28 27 6f 6e 6c 6f 6f 6b 65 72 73 27  LUES('onlookers'
2690: 2c 20 27 73 61 6d 65 27 2c 20 27 61 6e 64 27 29  , 'same', 'and')
26a0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
26b0: 4f 20 74 33 20 56 41 4c 55 45 53 28 4e 55 4c 4c  O t3 VALUES(NULL
26c0: 2c 20 27 6c 69 67 68 74 27 2c 20 36 39 33 39 39  , 'light', 69399
26d0: 33 37 35 31 30 29 3b 0a 20 20 20 20 49 4e 53 45  37510);.    INSE
26e0: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
26f0: 53 28 27 66 72 6f 6d 27 2c 20 27 74 68 65 69 72  S('from', 'their
2700: 27 2c 20 27 76 69 65 77 65 64 27 29 3b 0a 20 20  ', 'viewed');.  
2710: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
2720: 20 56 41 4c 55 45 53 28 27 66 72 6f 6d 27 2c 20   VALUES('from', 
2730: 27 41 6c 70 69 6e 65 27 2c 20 27 73 6e 61 70 73  'Alpine', 'snaps
2740: 68 6f 74 73 27 29 3b 0a 20 20 20 20 49 4e 53 45  hots');.    INSE
2750: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
2760: 53 28 27 66 72 6f 6d 27 2c 20 27 73 6f 6d 65 74  S('from', 'somet
2770: 69 6d 65 73 27 2c 20 27 75 6e 61 6c 69 6b 65 27  imes', 'unalike'
2780: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
2790: 54 4f 20 74 33 20 56 41 4c 55 45 53 28 31 33 33  TO t3 VALUES(133
27a0: 39 2e 33 36 30 37 32 36 2c 20 27 6c 69 67 68 74  9.360726, 'light
27b0: 27 2c 20 27 68 61 76 65 27 29 3b 0a 20 20 20 20  ', 'have');.    
27c0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
27d0: 41 4c 55 45 53 28 36 39 33 39 39 33 37 35 31 30  ALUES(6939937510
27e0: 2c 20 33 32 38 32 33 30 36 36 34 37 2c 20 27 6f  , 3282306647, 'o
27f0: 74 68 65 72 27 29 3b 0a 20 20 20 20 49 4e 53 45  ther');.    INSE
2800: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
2810: 53 28 27 70 61 69 6e 74 69 6e 67 73 27 2c 20 38  S('paintings', 8
2820: 36 32 38 30 33 34 38 32 35 2c 20 27 61 6c 6c 27  628034825, 'all'
2830: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
2840: 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 70 61  TO t3 VALUES('pa
2850: 69 6e 74 69 6e 67 73 27 2c 20 4e 55 4c 4c 2c 20  intings', NULL, 
2860: 27 73 61 6d 65 27 29 3b 0a 20 20 20 20 49 4e 53  'same');.    INS
2870: 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55  ERT INTO t3 VALU
2880: 45 53 28 27 41 6c 70 69 6e 65 27 2c 20 33 37 38  ES('Alpine', 378
2890: 36 37 38 33 31 36 2e 35 2c 20 27 75 6e 61 6c 69  678316.5, 'unali
28a0: 6b 65 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ke');.    INSERT
28b0: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
28c0: 27 41 6c 70 69 6e 65 27 2c 20 4e 55 4c 4c 2c 20  'Alpine', NULL, 
28d0: 27 73 61 6d 65 27 29 3b 0a 20 20 20 20 49 4e 53  'same');.    INS
28e0: 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55  ERT INTO t3 VALU
28f0: 45 53 28 31 33 33 39 2e 33 36 30 37 32 36 2c 20  ES(1339.360726, 
2900: 32 38 34 37 35 36 34 2e 38 32 33 2c 20 27 6f 76  2847564.823, 'ov
2910: 65 72 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  er');.    INSERT
2920: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2930: 27 76 69 6c 6c 61 67 65 73 27 2c 20 27 74 68 65  'villages', 'the
2940: 69 72 27 2c 20 27 68 61 76 65 27 29 3b 0a 20 20  ir', 'have');.  
2950: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
2960: 20 56 41 4c 55 45 53 28 27 75 6e 61 6c 69 6b 65   VALUES('unalike
2970: 27 2c 20 27 72 65 6d 61 72 6b 61 62 6c 79 27 2c  ', 'remarkably',
2980: 20 27 69 6e 27 29 3b 0a 20 20 20 20 49 4e 53 45   'in');.    INSE
2990: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
29a0: 53 28 27 61 6e 64 27 2c 20 38 39 37 39 33 32 33  S('and', 8979323
29b0: 38 34 36 2c 20 27 61 6e 64 27 29 3b 0a 20 20 20  846, 'and');.   
29c0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
29d0: 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 20 31 34 31  VALUES(NULL, 141
29e0: 35 39 32 36 35 33 35 2c 20 27 61 6e 27 29 3b 0a  5926535, 'an');.
29f0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
2a00: 74 33 20 56 41 4c 55 45 53 28 32 37 31 2e 32 30  t3 VALUES(271.20
2a10: 31 39 30 39 31 2c 20 38 36 32 38 30 33 34 38 32  19091, 862803482
2a20: 35 2c 20 30 2e 34 38 31 31 31 37 34 35 30 32 29  5, 0.4811174502)
2a30: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
2a40: 4f 20 74 33 20 56 41 4c 55 45 53 28 27 61 6c 6c  O t3 VALUES('all
2a50: 27 2c 20 33 34 32 31 31 37 30 36 37 39 2c 20 27  ', 3421170679, '
2a60: 74 68 65 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  the');.    INSER
2a70: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
2a80: 28 27 4e 6f 74 27 2c 20 27 61 6e 64 27 2c 20 31  ('Not', 'and', 1
2a90: 34 31 35 39 32 36 35 33 35 29 3b 0a 20 20 20 20  415926535);.    
2aa0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2ab0: 41 4c 55 45 53 28 27 6f 66 27 2c 20 27 6f 74 68  ALUES('of', 'oth
2ac0: 65 72 27 2c 20 27 6c 69 67 68 74 27 29 3b 0a 20  er', 'light');. 
2ad0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2ae0: 33 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 20 27  3 VALUES(NULL, '
2af0: 74 6f 77 65 72 69 6e 67 27 2c 20 27 4e 6f 74 27  towering', 'Not'
2b00: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
2b10: 54 4f 20 74 33 20 56 41 4c 55 45 53 28 33 34 36  TO t3 VALUES(346
2b20: 2e 30 33 34 38 36 31 30 2c 20 4e 55 4c 4c 2c 20  .0348610, NULL, 
2b30: 27 6f 74 68 65 72 27 29 3b 0a 20 20 20 20 49 4e  'other');.    IN
2b40: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
2b50: 55 45 53 28 27 4e 6f 74 27 2c 20 33 37 38 36 37  UES('Not', 37867
2b60: 38 33 31 36 2e 35 2c 20 4e 55 4c 4c 29 3b 0a 20  8316.5, NULL);. 
2b70: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2b80: 33 20 56 41 4c 55 45 53 28 27 73 6e 61 70 73 68  3 VALUES('snapsh
2b90: 6f 74 73 27 2c 20 38 36 32 38 30 33 34 38 32 35  ots', 8628034825
2ba0: 2c 20 27 6f 66 27 29 3b 0a 20 20 20 20 49 4e 53  , 'of');.    INS
2bb0: 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55  ERT INTO t3 VALU
2bc0: 45 53 28 33 32 38 32 33 30 36 36 34 37 2c 20 32  ES(3282306647, 2
2bd0: 37 31 2e 32 30 31 39 30 39 31 2c 20 27 61 6e 64  71.2019091, 'and
2be0: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
2bf0: 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 35 30  NTO t3 VALUES(50
2c00: 2e 35 38 32 32 33 31 37 32 2c 20 33 37 38 36 37  .58223172, 37867
2c10: 38 33 31 36 2e 35 2c 20 35 30 32 38 38 34 31 39  8316.5, 50288419
2c20: 37 31 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  71);.    INSERT 
2c30: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 35  INTO t3 VALUES(5
2c40: 30 2e 35 38 32 32 33 31 37 32 2c 20 32 36 34 33  0.58223172, 2643
2c50: 33 38 33 32 37 39 2c 20 27 73 6e 61 70 73 68 6f  383279, 'snapsho
2c60: 74 73 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ts');.    INSERT
2c70: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2c80: 27 77 72 69 74 69 6e 67 73 27 2c 20 38 39 37 39  'writings', 8979
2c90: 33 32 33 38 34 36 2c 20 38 39 37 39 33 32 33 38  323846, 89793238
2ca0: 34 36 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  46);.    INSERT 
2cb0: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27  INTO t3 VALUES('
2cc0: 6f 6e 6c 6f 6f 6b 65 72 73 27 2c 20 27 68 69 73  onlookers', 'his
2cd0: 27 2c 20 27 69 6e 27 29 3b 0a 20 20 20 20 49 4e  ', 'in');.    IN
2ce0: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
2cf0: 55 45 53 28 27 75 6e 61 6c 69 6b 65 27 2c 20 38  UES('unalike', 8
2d00: 36 32 38 30 33 34 38 32 35 2c 20 31 33 33 39 2e  628034825, 1339.
2d10: 33 36 30 37 32 36 29 3b 0a 20 20 20 20 49 4e 53  360726);.    INS
2d20: 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55  ERT INTO t3 VALU
2d30: 45 53 28 27 6f 66 27 2c 20 27 41 6c 70 69 6e 65  ES('of', 'Alpine
2d40: 27 2c 20 27 61 6e 64 27 29 3b 0a 20 20 20 20 49  ', 'and');.    I
2d50: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2d60: 4c 55 45 53 28 27 6f 6e 6c 6f 6f 6b 65 72 73 27  LUES('onlookers'
2d70: 2c 20 4e 55 4c 4c 2c 20 27 66 72 6f 6d 27 29 3b  , NULL, 'from');
2d80: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2d90: 20 74 33 20 56 41 4c 55 45 53 28 27 77 72 69 74   t3 VALUES('writ
2da0: 69 6e 67 73 27 2c 20 27 69 74 27 2c 20 31 33 33  ings', 'it', 133
2db0: 39 2e 33 36 30 37 32 36 29 3b 0a 20 20 20 20 49  9.360726);.    I
2dc0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2dd0: 4c 55 45 53 28 27 69 74 27 2c 20 27 61 6e 64 27  LUES('it', 'and'
2de0: 2c 20 27 76 69 6c 6c 61 67 65 73 27 29 3b 0a 20  , 'villages');. 
2df0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2e00: 33 20 56 41 4c 55 45 53 28 27 61 6e 27 2c 20 27  3 VALUES('an', '
2e10: 74 68 65 27 2c 20 27 76 69 6c 6c 61 67 65 73 27  the', 'villages'
2e20: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
2e30: 54 4f 20 74 33 20 56 41 4c 55 45 53 28 38 32 31  TO t3 VALUES(821
2e40: 34 38 30 38 36 35 31 2c 20 38 32 31 34 38 30 38  4808651, 8214808
2e50: 36 35 31 2c 20 27 73 61 6d 65 27 29 3b 0a 20 20  651, 'same');.  
2e60: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
2e70: 20 56 41 4c 55 45 53 28 33 34 36 2e 30 33 34 38   VALUES(346.0348
2e80: 36 31 30 2c 20 27 6c 69 67 68 74 27 2c 20 31 34  610, 'light', 14
2e90: 31 35 39 32 36 35 33 35 29 3b 0a 20 20 20 20 49  15926535);.    I
2ea0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2eb0: 4c 55 45 53 28 4e 55 4c 4c 2c 20 38 39 37 39 33  LUES(NULL, 89793
2ec0: 32 33 38 34 36 2c 20 27 61 6e 64 27 29 3b 0a 20  23846, 'and');. 
2ed0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2ee0: 33 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 20 27  3 VALUES(NULL, '
2ef0: 73 61 6d 65 27 2c 20 31 33 33 39 2e 33 36 30 37  same', 1339.3607
2f00: 32 36 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  26);.    INSERT 
2f10: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
2f20: 68 69 73 27 2c 20 27 66 72 6f 6d 27 2c 20 27 61  his', 'from', 'a
2f30: 6e 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  n');.    INSERT 
2f40: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
2f50: 73 6e 61 70 73 68 6f 74 73 27 2c 20 27 6f 72 27  snapshots', 'or'
2f60: 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 20 49 4e 53  , NULL);.    INS
2f70: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
2f80: 45 53 28 27 41 6c 70 69 6e 65 27 2c 20 27 68 61  ES('Alpine', 'ha
2f90: 76 65 27 2c 20 27 69 74 27 29 3b 0a 20 20 20 20  ve', 'it');.    
2fa0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56  INSERT INTO t4 V
2fb0: 41 4c 55 45 53 28 27 68 61 76 65 27 2c 20 27 70  ALUES('have', 'p
2fc0: 65 61 6b 27 2c 20 27 72 65 6d 61 72 6b 61 62 6c  eak', 'remarkabl
2fd0: 79 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  y');.    INSERT 
2fe0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
2ff0: 68 69 6c 6c 73 27 2c 20 4e 55 4c 4c 2c 20 27 4e  hills', NULL, 'N
3000: 6f 74 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ot');.    INSERT
3010: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
3020: 27 73 61 6d 65 27 2c 20 27 66 72 6f 6d 27 2c 20  'same', 'from', 
3030: 32 36 34 33 33 38 33 32 37 39 29 3b 0a 20 20 20  2643383279);.   
3040: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20   INSERT INTO t4 
3050: 56 41 4c 55 45 53 28 27 68 61 76 65 27 2c 20 27  VALUES('have', '
3060: 61 6e 67 6c 65 27 2c 20 38 36 32 38 30 33 34 38  angle', 86280348
3070: 32 35 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  25);.    INSERT 
3080: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
3090: 73 6f 6d 65 74 69 6d 65 73 27 2c 20 27 69 74 27  sometimes', 'it'
30a0: 2c 20 32 38 34 37 35 36 34 2e 38 32 33 29 3b 0a  , 2847564.823);.
30b0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
30c0: 74 34 20 56 41 4c 55 45 53 28 30 39 33 38 34 34  t4 VALUES(093844
30d0: 36 30 39 35 2c 20 27 70 65 61 6b 27 2c 20 27 6f  6095, 'peak', 'o
30e0: 66 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  f');.    INSERT 
30f0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 38  INTO t4 VALUES(8
3100: 36 32 38 30 33 34 38 32 35 2c 20 27 61 6e 64 27  628034825, 'and'
3110: 2c 20 27 73 61 6d 65 27 29 3b 0a 20 20 20 20 49  , 'same');.    I
3120: 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41  NSERT INTO t4 VA
3130: 4c 55 45 53 28 27 61 6e 64 27 2c 20 32 37 31 2e  LUES('and', 271.
3140: 32 30 31 39 30 39 31 2c 20 27 74 68 65 69 72 27  2019091, 'their'
3150: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
3160: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 74 68  TO t4 VALUES('th
3170: 65 27 2c 20 27 6f 66 27 2c 20 27 72 65 6d 61 72  e', 'of', 'remar
3180: 6b 61 62 6c 79 27 29 3b 0a 20 20 20 20 49 4e 53  kably');.    INS
3190: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
31a0: 45 53 28 27 61 6e 64 27 2c 20 33 34 32 31 31 37  ES('and', 342117
31b0: 30 36 37 39 2c 20 31 34 31 35 39 32 36 35 33 35  0679, 1415926535
31c0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
31d0: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 61 6e  TO t4 VALUES('an
31e0: 64 27 2c 20 27 69 6e 27 2c 20 27 61 6c 6c 27 29  d', 'in', 'all')
31f0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
3200: 4f 20 74 34 20 56 41 4c 55 45 53 28 33 37 38 36  O t4 VALUES(3786
3210: 37 38 33 31 36 2e 35 2c 20 30 2e 34 38 31 31 31  78316.5, 0.48111
3220: 37 34 35 30 32 2c 20 27 73 6e 61 70 73 68 6f 74  74502, 'snapshot
3230: 73 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  s');.    INSERT 
3240: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
3250: 69 74 27 2c 20 27 61 72 65 27 2c 20 27 68 61 76  it', 'are', 'hav
3260: 65 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  e');.    INSERT 
3270: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
3280: 61 6e 67 6c 65 27 2c 20 27 73 6e 61 70 73 68 6f  angle', 'snapsho
3290: 74 73 27 2c 20 33 37 38 36 37 38 33 31 36 2e 35  ts', 378678316.5
32a0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
32b0: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 66 72  TO t4 VALUES('fr
32c0: 6f 6d 27 2c 20 31 34 31 35 39 32 36 35 33 35 2c  om', 1415926535,
32d0: 20 38 36 32 38 30 33 34 38 32 35 29 3b 0a 20 20   8628034825);.  
32e0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
32f0: 20 56 41 4c 55 45 53 28 27 73 6e 61 70 73 68 6f   VALUES('snapsho
3300: 74 73 27 2c 20 27 61 6e 67 6c 65 27 2c 20 27 68  ts', 'angle', 'h
3310: 61 76 65 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  ave');.    INSER
3320: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
3330: 28 33 34 32 31 31 37 30 36 37 39 2c 20 30 39 33  (3421170679, 093
3340: 38 34 34 36 30 39 35 2c 20 27 4e 6f 74 27 29 3b  8446095, 'Not');
3350: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3360: 20 74 34 20 56 41 4c 55 45 53 28 27 70 65 61 6b   t4 VALUES('peak
3370: 27 2c 20 4e 55 4c 4c 2c 20 30 2e 34 38 31 31 31  ', NULL, 0.48111
3380: 37 34 35 30 32 29 3b 0a 20 20 20 20 49 4e 53 45  74502);.    INSE
3390: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
33a0: 53 28 27 73 61 6d 65 27 2c 20 27 68 61 76 65 27  S('same', 'have'
33b0: 2c 20 27 41 6c 70 69 6e 65 27 29 3b 0a 20 20 20  , 'Alpine');.   
33c0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20   INSERT INTO t4 
33d0: 56 41 4c 55 45 53 28 32 37 31 2e 32 30 31 39 30  VALUES(271.20190
33e0: 39 31 2c 20 36 36 2e 35 39 33 33 34 34 36 31 2c  91, 66.59334461,
33f0: 20 30 39 33 38 34 34 36 30 39 35 29 3b 0a 20 20   0938446095);.  
3400: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
3410: 20 56 41 4c 55 45 53 28 38 39 37 39 33 32 33 38   VALUES(89793238
3420: 34 36 2c 20 27 68 69 73 27 2c 20 27 61 6e 27 29  46, 'his', 'an')
3430: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
3440: 4f 20 74 34 20 56 41 4c 55 45 53 28 4e 55 4c 4c  O t4 VALUES(NULL
3450: 2c 20 27 61 6e 64 27 2c 20 33 32 38 32 33 30 36  , 'and', 3282306
3460: 36 34 37 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  647);.    INSERT
3470: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
3480: 27 72 65 6d 61 72 6b 61 62 6c 79 27 2c 20 4e 55  'remarkably', NU
3490: 4c 4c 2c 20 27 4e 6f 74 27 29 3b 0a 20 20 20 20  LL, 'Not');.    
34a0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56  INSERT INTO t4 V
34b0: 41 4c 55 45 53 28 27 76 69 6c 6c 61 67 65 73 27  ALUES('villages'
34c0: 2c 20 34 35 34 33 2e 32 36 36 34 38 32 2c 20 27  , 4543.266482, '
34d0: 68 69 73 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  his');.    INSER
34e0: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
34f0: 28 32 36 34 33 33 38 33 32 37 39 2c 20 27 70 61  (2643383279, 'pa
3500: 69 6e 74 69 6e 67 73 27 2c 20 27 6f 6e 6c 6f 6f  intings', 'onloo
3510: 6b 65 72 73 27 29 3b 0a 20 20 20 20 49 4e 53 45  kers');.    INSE
3520: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
3530: 53 28 31 33 33 39 2e 33 36 30 37 32 36 2c 20 27  S(1339.360726, '
3540: 6f 66 27 2c 20 27 74 68 65 27 29 3b 0a 20 20 20  of', 'the');.   
3550: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20   INSERT INTO t4 
3560: 56 41 4c 55 45 53 28 27 70 65 61 6b 27 2c 20 27  VALUES('peak', '
3570: 6f 74 68 65 72 27 2c 20 27 70 65 61 6b 27 29 3b  other', 'peak');
3580: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3590: 20 74 34 20 56 41 4c 55 45 53 28 27 69 74 27 2c   t4 VALUES('it',
35a0: 20 27 6f 72 27 2c 20 38 39 37 39 33 32 33 38 34   'or', 897932384
35b0: 36 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  6);.    INSERT I
35c0: 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 6f  NTO t4 VALUES('o
35d0: 6e 6c 6f 6f 6b 65 72 73 27 2c 20 27 4e 6f 74 27  nlookers', 'Not'
35e0: 2c 20 27 74 6f 77 65 72 69 6e 67 27 29 3b 0a 20  , 'towering');. 
35f0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3600: 34 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 20 27  4 VALUES(NULL, '
3610: 70 65 61 6b 27 2c 20 27 4e 6f 74 27 29 3b 0a 20  peak', 'Not');. 
3620: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3630: 34 20 56 41 4c 55 45 53 28 27 6f 66 27 2c 20 27  4 VALUES('of', '
3640: 68 61 76 65 27 2c 20 36 39 33 39 39 33 37 35 31  have', 693993751
3650: 30 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  0);.    INSERT I
3660: 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 6c  NTO t4 VALUES('l
3670: 69 67 68 74 27 2c 20 27 68 69 6c 6c 73 27 2c 20  ight', 'hills', 
3680: 30 2e 34 38 31 31 31 37 34 35 30 32 29 3b 0a 20  0.4811174502);. 
3690: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
36a0: 34 20 56 41 4c 55 45 53 28 35 30 32 38 38 34 31  4 VALUES(5028841
36b0: 39 37 31 2c 20 27 4e 6f 74 27 2c 20 27 69 74 27  971, 'Not', 'it'
36c0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
36d0: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 61 6e  TO t4 VALUES('an
36e0: 64 27 2c 20 27 4e 6f 74 27 2c 20 4e 55 4c 4c 29  d', 'Not', NULL)
36f0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
3700: 4f 20 74 34 20 56 41 4c 55 45 53 28 33 34 36 2e  O t4 VALUES(346.
3710: 30 33 34 38 36 31 30 2c 20 27 76 69 6c 6c 61 67  0348610, 'villag
3720: 65 73 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 20  es', NULL);.    
3730: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56  INSERT INTO t4 V
3740: 41 4c 55 45 53 28 38 39 37 39 33 32 33 38 34 36  ALUES(8979323846
3750: 2c 20 4e 55 4c 4c 2c 20 36 39 33 39 39 33 37 35  , NULL, 69399375
3760: 31 30 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  10);.    INSERT 
3770: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
3780: 61 6e 27 2c 20 27 6c 69 67 68 74 27 2c 20 27 70  an', 'light', 'p
3790: 65 61 6b 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  eak');.    INSER
37a0: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
37b0: 28 35 30 32 38 38 34 31 39 37 31 2c 20 36 39 33  (5028841971, 693
37c0: 39 39 33 37 35 31 30 2c 20 27 6c 69 67 68 74 27  9937510, 'light'
37d0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
37e0: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 73 6f  TO t4 VALUES('so
37f0: 6d 65 74 69 6d 65 73 27 2c 20 27 70 65 61 6b 27  metimes', 'peak'
3800: 2c 20 27 70 65 61 6b 27 29 3b 0a 20 20 20 20 49  , 'peak');.    I
3810: 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41  NSERT INTO t4 VA
3820: 4c 55 45 53 28 33 37 38 36 37 38 33 31 36 2e 35  LUES(378678316.5
3830: 2c 20 35 30 32 38 38 34 31 39 37 31 2c 20 27 61  , 5028841971, 'a
3840: 6e 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  n');.    INSERT 
3850: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 33  INTO t4 VALUES(3
3860: 37 38 36 37 38 33 31 36 2e 35 2c 20 27 68 69 73  78678316.5, 'his
3870: 27 2c 20 27 41 6c 70 69 6e 65 27 29 3b 0a 20 20  ', 'Alpine');.  
3880: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
3890: 20 56 41 4c 55 45 53 28 27 66 72 6f 6d 27 2c 20   VALUES('from', 
38a0: 27 6f 66 27 2c 20 27 61 6c 6c 27 29 3b 0a 20 20  'of', 'all');.  
38b0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
38c0: 20 56 41 4c 55 45 53 28 30 39 33 38 34 34 36 30   VALUES(09384460
38d0: 39 35 2c 20 27 73 61 6d 65 27 2c 20 4e 55 4c 4c  95, 'same', NULL
38e0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
38f0: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 30 39 33  TO t4 VALUES(093
3900: 38 34 34 36 30 39 35 2c 20 27 41 6c 70 69 6e 65  8446095, 'Alpine
3910: 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 20 49 4e  ', NULL);.    IN
3920: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
3930: 55 45 53 28 27 68 69 73 27 2c 20 27 6f 66 27 2c  UES('his', 'of',
3940: 20 33 37 38 36 37 38 33 31 36 2e 35 29 3b 0a 20   378678316.5);. 
3950: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3960: 34 20 56 41 4c 55 45 53 28 32 37 31 2e 32 30 31  4 VALUES(271.201
3970: 39 30 39 31 2c 20 27 76 69 65 77 65 64 27 2c 20  9091, 'viewed', 
3980: 33 32 38 32 33 30 36 36 34 37 29 3b 0a 20 20 20  3282306647);.   
3990: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20   INSERT INTO t4 
39a0: 56 41 4c 55 45 53 28 27 68 69 6c 6c 73 27 2c 20  VALUES('hills', 
39b0: 27 61 6c 6c 27 2c 20 27 70 65 61 6b 27 29 3b 0a  'all', 'peak');.
39c0: 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45      CREATE TABLE
39d0: 20 74 35 28 73 29 3b 0a 20 20 20 20 49 4e 53 45   t5(s);.    INSE
39e0: 52 54 20 49 4e 54 4f 20 74 35 20 56 41 4c 55 45  RT INTO t5 VALUE
39f0: 53 28 27 74 61 62 2d 74 35 27 29 3b 0a 20 20 20  S('tab-t5');.   
3a00: 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 36   CREATE TABLE t6
3a10: 28 74 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  (t);.    INSERT 
3a20: 49 4e 54 4f 20 74 36 20 56 41 4c 55 45 53 28 31  INTO t6 VALUES(1
3a30: 32 33 34 35 36 29 3b 0a 20 20 20 20 43 4f 4d 4d  23456);.    COMM
3a40: 49 54 3b 0a 20 20 7d 0a 7d 20 7b 7d 0a 0a 63 61  IT;.  }.} {}..ca
3a50: 74 63 68 20 7b 75 6e 73 65 74 20 72 65 73 75 6c  tch {unset resul
3a60: 74 73 7d 0a 63 61 74 63 68 20 7b 75 6e 73 65 74  ts}.catch {unset
3a70: 20 41 7d 0a 63 61 74 63 68 20 7b 75 6e 73 65 74   A}.catch {unset
3a80: 20 42 7d 0a 0a 73 65 74 20 41 20 32 0a 66 6f 72   B}..set A 2.for
3a90: 65 61 63 68 20 69 64 78 73 71 6c 20 7b 0a 20 20  each idxsql {.  
3aa0: 7b 20 0a 20 20 20 20 2f 2a 20 4e 6f 20 69 6e 64  { .    /* No ind
3ab0: 65 78 65 73 20 2a 2f 20 0a 20 20 7d 20 7b 0a 20  exes */ .  } {. 
3ac0: 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20     CREATE INDEX 
3ad0: 69 35 20 4f 4e 20 74 33 28 61 29 3b 0a 20 20 7d  i5 ON t3(a);.  }
3ae0: 20 7b 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e   {.    CREATE IN
3af0: 44 45 58 20 69 35 20 4f 4e 20 74 33 28 61 2c 20  DEX i5 ON t3(a, 
3b00: 62 29 3b 0a 20 20 20 20 43 52 45 41 54 45 20 49  b);.    CREATE I
3b10: 4e 44 45 58 20 69 36 20 4f 4e 20 74 34 28 66 29  NDEX i6 ON t4(f)
3b20: 3b 0a 20 20 7d 20 7b 0a 20 20 20 20 43 52 45 41  ;.  } {.    CREA
3b30: 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58 20  TE UNIQUE INDEX 
3b40: 69 35 20 4f 4e 20 74 33 28 61 2c 20 62 29 3b 0a  i5 ON t3(a, b);.
3b50: 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58      CREATE INDEX
3b60: 20 69 37 20 4f 4e 20 74 33 28 63 29 3b 0a 20 20   i7 ON t3(c);.  
3b70: 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20 69    CREATE INDEX i
3b80: 36 20 4f 4e 20 74 34 28 66 29 3b 0a 20 20 20 20  6 ON t4(f);.    
3b90: 43 52 45 41 54 45 20 49 4e 44 45 58 20 69 38 20  CREATE INDEX i8 
3ba0: 4f 4e 20 74 34 28 68 29 3b 0a 20 20 7d 20 7b 0a  ON t4(h);.  } {.
3bb0: 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58      CREATE INDEX
3bc0: 20 69 35 20 4f 4e 20 74 33 28 61 2c 20 62 2c 20   i5 ON t3(a, b, 
3bd0: 63 29 3b 0a 20 20 20 20 43 52 45 41 54 45 20 49  c);.    CREATE I
3be0: 4e 44 45 58 20 69 36 20 4f 4e 20 74 34 28 66 2c  NDEX i6 ON t4(f,
3bf0: 20 67 2c 20 68 29 3b 0a 20 20 20 20 43 52 45 41   g, h);.    CREA
3c00: 54 45 20 49 4e 44 45 58 20 69 37 20 4f 4e 20 74  TE INDEX i7 ON t
3c10: 33 28 63 2c 20 62 2c 20 61 29 3b 0a 20 20 20 20  3(c, b, a);.    
3c20: 43 52 45 41 54 45 20 49 4e 44 45 58 20 69 38 20  CREATE INDEX i8 
3c30: 4f 4e 20 74 34 28 68 2c 20 67 2c 20 66 29 3b 0a  ON t4(h, g, f);.
3c40: 20 20 7d 0a 7d 20 7b 0a 0a 20 20 65 78 65 63 73    }.} {..  execs
3c50: 71 6c 20 7b 0a 20 20 20 20 44 52 4f 50 20 49 4e  ql {.    DROP IN
3c60: 44 45 58 20 49 46 20 45 58 49 53 54 53 20 69 35  DEX IF EXISTS i5
3c70: 3b 0a 20 20 20 20 44 52 4f 50 20 49 4e 44 45 58  ;.    DROP INDEX
3c80: 20 49 46 20 45 58 49 53 54 53 20 69 36 3b 0a 20   IF EXISTS i6;. 
3c90: 20 20 20 44 52 4f 50 20 49 4e 44 45 58 20 49 46     DROP INDEX IF
3ca0: 20 45 58 49 53 54 53 20 69 37 3b 0a 20 20 20 20   EXISTS i7;.    
3cb0: 44 52 4f 50 20 49 4e 44 45 58 20 49 46 20 45 58  DROP INDEX IF EX
3cc0: 49 53 54 53 20 69 38 3b 0a 20 20 7d 0a 20 20 65  ISTS i8;.  }.  e
3cd0: 78 65 63 73 71 6c 20 24 69 64 78 73 71 6c 0a 0a  xecsql $idxsql..
3ce0: 20 20 66 6f 72 65 61 63 68 20 7b 42 20 73 71 6c    foreach {B sql
3cf0: 7d 20 7b 0a 20 31 20 20 7b 20 53 45 4c 45 43 54  } {. 1  { SELECT
3d00: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
3d10: 20 63 20 4c 49 4b 45 20 62 20 7d 0a 20 32 20 20   c LIKE b }. 2  
3d20: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
3d30: 74 33 20 57 48 45 52 45 20 63 7c 7c 27 27 20 4c  t3 WHERE c||'' L
3d40: 49 4b 45 20 27 74 68 65 25 27 20 7d 0a 20 33 20  IKE 'the%' }. 3 
3d50: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
3d60: 20 74 33 20 57 48 45 52 45 20 72 6f 77 69 64 20   t3 WHERE rowid 
3d70: 4c 49 4b 45 20 27 31 32 25 27 20 7d 0a 20 34 20  LIKE '12%' }. 4 
3d80: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
3d90: 20 74 33 20 57 48 45 52 45 20 2b 63 20 4c 49 4b   t3 WHERE +c LIK
3da0: 45 20 27 74 68 65 25 27 20 7d 0a 20 35 20 20 7b  E 'the%' }. 5  {
3db0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
3dc0: 33 20 57 48 45 52 45 20 63 20 4c 49 4b 45 20 27  3 WHERE c LIKE '
3dd0: 74 68 65 25 27 20 7d 0a 20 36 20 20 7b 20 53 45  the%' }. 6  { SE
3de0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
3df0: 48 45 52 45 20 63 20 47 4c 4f 42 20 27 2a 6c 6c  HERE c GLOB '*ll
3e00: 6f 27 20 7d 0a 0a 20 37 20 20 7b 20 53 45 4c 45  o' }.. 7  { SELE
3e10: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
3e20: 52 45 20 61 20 3d 20 27 61 6e 67 6c 65 27 20 7d  RE a = 'angle' }
3e30: 0a 20 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  . 8  { SELECT * 
3e40: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20  FROM t3 WHERE a 
3e50: 3d 20 27 69 74 27 20 4f 52 20 62 20 3d 20 36 39  = 'it' OR b = 69
3e60: 33 39 39 33 37 35 31 30 20 7d 0a 20 39 20 20 7b  39937510 }. 9  {
3e70: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
3e80: 33 2c 20 74 34 20 57 48 45 52 45 20 61 20 3d 20  3, t4 WHERE a = 
3e90: 27 70 61 69 6e 74 69 6e 67 27 20 4f 52 20 61 20  'painting' OR a 
3ea0: 3d 20 27 61 72 65 27 20 4f 52 20 61 20 3d 20 66  = 'are' OR a = f
3eb0: 20 7d 0a 31 30 20 20 7b 20 53 45 4c 45 43 54 20   }.10  { SELECT 
3ec0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
3ed0: 45 52 45 20 61 20 3d 20 27 61 6c 6c 27 20 4f 52  ERE a = 'all' OR
3ee0: 20 61 20 3d 20 27 61 6e 64 27 20 4f 52 20 61 20   a = 'and' OR a 
3ef0: 3d 20 68 20 7d 0a 31 31 20 20 7b 20 53 45 4c 45  = h }.11  { SELE
3f00: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
3f10: 20 57 48 45 52 45 20 61 20 3c 20 27 6f 66 27 20   WHERE a < 'of' 
3f20: 4f 52 20 62 20 3e 20 33 34 36 20 41 4e 44 20 63  OR b > 346 AND c
3f30: 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 32 20 20 7b   IS NULL }.12  {
3f40: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
3f50: 33 2c 20 74 34 20 57 48 45 52 45 20 27 74 68 65  3, t4 WHERE 'the
3f60: 27 20 3e 20 61 20 4f 52 20 62 20 3e 20 27 68 61  ' > a OR b > 'ha
3f70: 76 65 27 20 41 4e 44 20 63 20 3d 20 31 34 31 35  ve' AND c = 1415
3f80: 39 32 36 35 33 35 20 7d 0a 0a 31 33 20 20 7b 20  926535 }..13  { 
3f90: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
3fa0: 20 57 48 45 52 45 20 61 20 42 45 54 57 45 45 4e   WHERE a BETWEEN
3fb0: 20 27 6f 6e 65 27 20 41 4e 44 20 27 74 77 6f 27   'one' AND 'two'
3fc0: 20 4f 52 20 61 20 3d 20 33 34 32 31 31 37 30 36   OR a = 34211706
3fd0: 37 39 20 7d 0a 31 34 20 20 7b 20 53 45 4c 45 43  79 }.14  { SELEC
3fe0: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
3ff0: 45 20 61 20 42 45 54 57 45 45 4e 20 27 6f 6e 65  E a BETWEEN 'one
4000: 27 20 41 4e 44 20 27 74 77 6f 27 20 4f 52 20 61  ' AND 'two' OR a
4010: 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 35 20 20 7b   IS NULL }.15  {
4020: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4030: 33 20 57 48 45 52 45 20 63 20 3e 20 27 6f 6e 65  3 WHERE c > 'one
4040: 27 20 4f 52 20 63 20 3e 3d 20 27 6f 6e 65 27 20  ' OR c >= 'one' 
4050: 4f 52 20 63 20 4c 49 4b 45 20 27 6f 6e 65 25 27  OR c LIKE 'one%'
4060: 20 7d 0a 31 36 20 20 7b 20 53 45 4c 45 43 54 20   }.16  { SELECT 
4070: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4080: 63 20 3e 20 27 6f 6e 65 27 20 4f 52 20 63 20 3d  c > 'one' OR c =
4090: 20 63 20 4f 52 20 63 20 3d 20 61 20 7d 0a 31 37   c OR c = a }.17
40a0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
40b0: 4d 20 74 33 20 57 48 45 52 45 20 63 20 49 53 20  M t3 WHERE c IS 
40c0: 4e 55 4c 4c 20 4f 52 20 61 20 3e 3d 20 27 70 65  NULL OR a >= 'pe
40d0: 61 6b 27 20 7d 0a 31 38 20 20 7b 20 53 45 4c 45  ak' }.18  { SELE
40e0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
40f0: 52 45 20 63 20 49 4e 20 28 27 6f 74 68 65 72 27  RE c IN ('other'
4100: 2c 20 27 61 6c 6c 27 2c 20 27 73 6e 61 70 73 68  , 'all', 'snapsh
4110: 6f 74 73 27 29 20 4f 52 20 61 3e 31 20 7d 0a 31  ots') OR a>1 }.1
4120: 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  9  { SELECT * FR
4130: 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 49 4e  OM t3 WHERE c IN
4140: 20 28 27 6f 74 68 65 72 27 2c 20 27 61 6c 6c 27   ('other', 'all'
4150: 2c 20 27 73 6e 61 70 73 68 6f 74 73 27 29 20 41  , 'snapshots') A
4160: 4e 44 20 61 3e 31 20 7d 0a 32 30 20 20 7b 20 53  ND a>1 }.20  { S
4170: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4180: 57 48 45 52 45 20 63 20 49 53 20 4e 55 4c 4c 20  WHERE c IS NULL 
4190: 41 4e 44 20 61 3e 27 6f 6e 65 27 20 7d 0a 32 31  AND a>'one' }.21
41a0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
41b0: 4d 20 74 33 20 57 48 45 52 45 20 63 20 49 53 20  M t3 WHERE c IS 
41c0: 4e 55 4c 4c 20 4f 52 20 61 3e 27 6f 6e 65 27 20  NULL OR a>'one' 
41d0: 7d 0a 32 32 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.22  { SELECT *
41e0: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62   FROM t3 WHERE b
41f0: 20 3d 20 62 20 41 4e 44 20 61 20 3e 20 27 61 72   = b AND a > 'ar
4200: 65 27 20 7d 0a 32 33 20 20 7b 20 53 45 4c 45 43  e' }.23  { SELEC
4210: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
4220: 45 20 63 20 3c 3d 20 62 20 4f 52 20 62 20 3c 20  E c <= b OR b < 
4230: 27 73 6e 61 70 73 68 6f 74 73 27 20 7d 0a 32 34  'snapshots' }.24
4240: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4250: 4d 20 74 33 20 57 48 45 52 45 20 27 6f 6e 6c 6f  M t3 WHERE 'onlo
4260: 6f 6b 65 72 73 27 20 3e 3d 20 63 20 41 4e 44 20  okers' >= c AND 
4270: 61 20 3c 3d 20 62 20 4f 52 20 62 20 3d 20 27 61  a <= b OR b = 'a
4280: 6e 67 6c 65 27 20 7d 0a 32 35 20 20 7b 20 53 45  ngle' }.25  { SE
4290: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
42a0: 48 45 52 45 20 62 20 3d 20 27 66 72 6f 6d 27 20  HERE b = 'from' 
42b0: 7d 0a 32 36 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.26  { SELECT *
42c0: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62   FROM t3 WHERE b
42d0: 20 3d 20 34 35 34 33 2e 32 36 36 34 38 32 20 7d   = 4543.266482 }
42e0: 0a 32 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .27  { SELECT * 
42f0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
4300: 3c 20 33 32 38 32 33 30 36 36 34 37 20 7d 0a 32  < 3282306647 }.2
4310: 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  8  { SELECT * FR
4320: 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 49 53  OM t3 WHERE c IS
4330: 20 4e 55 4c 4c 20 41 4e 44 20 62 20 3e 3d 20 63   NULL AND b >= c
4340: 20 7d 0a 32 39 20 20 7b 20 53 45 4c 45 43 54 20   }.29  { SELECT 
4350: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4360: 62 20 3e 20 30 2e 34 38 31 31 31 37 34 35 30 32  b > 0.4811174502
4370: 20 41 4e 44 20 63 20 3d 20 27 6f 74 68 65 72 27   AND c = 'other'
4380: 20 41 4e 44 20 27 76 69 65 77 65 64 27 20 3e 20   AND 'viewed' > 
4390: 61 20 7d 0a 33 30 20 20 7b 20 53 45 4c 45 43 54  a }.30  { SELECT
43a0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
43b0: 20 63 20 3d 20 27 70 65 61 6b 27 20 7d 0a 33 31   c = 'peak' }.31
43c0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
43d0: 4d 20 74 33 20 57 48 45 52 45 20 63 20 3c 20 35  M t3 WHERE c < 5
43e0: 33 35 39 34 2e 30 38 31 32 38 20 4f 52 20 63 20  3594.08128 OR c 
43f0: 3c 3d 20 62 20 7d 0a 33 32 20 20 7b 20 53 45 4c  <= b }.32  { SEL
4400: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4410: 45 52 45 20 27 77 72 69 74 69 6e 67 73 27 20 3c  ERE 'writings' <
4420: 3d 20 62 20 7d 0a 33 33 20 20 7b 20 53 45 4c 45  = b }.33  { SELE
4430: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4440: 52 45 20 32 36 34 33 33 38 33 32 37 39 20 3d 20  RE 2643383279 = 
4450: 62 20 4f 52 20 63 20 3c 20 62 20 41 4e 44 20 62  b OR c < b AND b
4460: 20 3c 3d 20 33 32 38 32 33 30 36 36 34 37 20 7d   <= 3282306647 }
4470: 0a 33 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .34  { SELECT * 
4480: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20  FROM t3 WHERE a 
4490: 49 53 20 4e 55 4c 4c 20 7d 0a 33 35 20 20 7b 20  IS NULL }.35  { 
44a0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
44b0: 20 57 48 45 52 45 20 27 77 72 69 74 69 6e 67 73   WHERE 'writings
44c0: 27 20 3d 20 61 20 4f 52 20 62 20 3d 20 33 37 38  ' = a OR b = 378
44d0: 36 37 38 33 31 36 2e 35 20 7d 0a 33 36 20 20 7b  678316.5 }.36  {
44e0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
44f0: 33 20 57 48 45 52 45 20 27 61 6e 64 27 20 3e 3d  3 WHERE 'and' >=
4500: 20 63 20 7d 0a 33 37 20 20 7b 20 53 45 4c 45 43   c }.37  { SELEC
4510: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
4520: 45 20 63 20 3c 20 27 66 72 6f 6d 27 20 7d 0a 33  E c < 'from' }.3
4530: 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  8  { SELECT * FR
4540: 4f 4d 20 74 33 20 57 48 45 52 45 20 27 68 69 73  OM t3 WHERE 'his
4550: 27 20 3c 20 63 20 4f 52 20 62 20 3c 20 62 20 7d  ' < c OR b < b }
4560: 0a 33 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .39  { SELECT * 
4570: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 35 33  FROM t3 WHERE 53
4580: 35 39 34 2e 30 38 31 32 38 20 3d 20 62 20 41 4e  594.08128 = b AN
4590: 44 20 63 20 3e 3d 20 62 20 7d 0a 34 30 20 20 7b  D c >= b }.40  {
45a0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
45b0: 33 20 57 48 45 52 45 20 27 75 6e 61 6c 69 6b 65  3 WHERE 'unalike
45c0: 27 20 3c 20 63 20 41 4e 44 20 27 61 72 65 27 20  ' < c AND 'are' 
45d0: 3e 3d 20 63 20 41 4e 44 20 61 20 3c 3d 20 62 20  >= c AND a <= b 
45e0: 7d 0a 34 31 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.41  { SELECT *
45f0: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62   FROM t3 WHERE b
4600: 20 3e 3d 20 34 35 34 33 2e 32 36 36 34 38 32 20   >= 4543.266482 
4610: 4f 52 20 27 41 6c 70 69 6e 65 27 20 3e 20 61 20  OR 'Alpine' > a 
4620: 4f 52 20 32 37 31 2e 32 30 31 39 30 39 31 20 3c  OR 271.2019091 <
4630: 3d 20 61 20 7d 0a 34 32 20 20 7b 20 53 45 4c 45  = a }.42  { SELE
4640: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4650: 52 45 20 62 20 3d 20 63 20 7d 0a 34 33 20 20 7b  RE b = c }.43  {
4660: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4670: 33 20 57 48 45 52 45 20 63 20 3e 20 61 20 41 4e  3 WHERE c > a AN
4680: 44 20 62 20 3c 20 27 61 6c 6c 27 20 7d 0a 34 34  D b < 'all' }.44
4690: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
46a0: 4d 20 74 33 20 57 48 45 52 45 20 63 20 42 45 54  M t3 WHERE c BET
46b0: 57 45 45 4e 20 27 68 69 6c 6c 73 27 20 41 4e 44  WEEN 'hills' AND
46c0: 20 27 73 6e 61 70 73 68 6f 74 73 27 20 41 4e 44   'snapshots' AND
46d0: 20 63 20 3c 3d 20 27 74 68 65 27 20 4f 52 20 63   c <= 'the' OR c
46e0: 20 3d 20 61 20 7d 0a 34 35 20 20 7b 20 53 45 4c   = a }.45  { SEL
46f0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4700: 45 52 45 20 62 20 3e 20 63 20 41 4e 44 20 63 20  ERE b > c AND c 
4710: 3e 3d 20 27 68 69 6c 6c 73 27 20 7d 0a 34 36 20  >= 'hills' }.46 
4720: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4730: 20 74 33 20 57 48 45 52 45 20 62 20 3e 20 27 6f   t3 WHERE b > 'o
4740: 72 27 20 4f 52 20 61 20 3c 3d 20 27 68 69 6c 6c  r' OR a <= 'hill
4750: 73 27 20 4f 52 20 63 20 49 53 20 4e 55 4c 4c 20  s' OR c IS NULL 
4760: 7d 0a 34 37 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.47  { SELECT *
4770: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63   FROM t3 WHERE c
4780: 20 3e 20 62 20 4f 52 20 62 20 42 45 54 57 45 45   > b OR b BETWEE
4790: 4e 20 31 33 33 39 2e 33 36 30 37 32 36 20 41 4e  N 1339.360726 AN
47a0: 44 20 27 6f 6e 6c 6f 6f 6b 65 72 73 27 20 4f 52  D 'onlookers' OR
47b0: 20 31 34 31 35 39 32 36 35 33 35 20 3e 3d 20 62   1415926535 >= b
47c0: 20 7d 0a 34 38 20 20 7b 20 53 45 4c 45 43 54 20   }.48  { SELECT 
47d0: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
47e0: 61 20 49 53 20 4e 55 4c 4c 20 7d 0a 34 39 20 20  a IS NULL }.49  
47f0: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4800: 74 33 20 57 48 45 52 45 20 61 20 3e 20 27 6f 74  t3 WHERE a > 'ot
4810: 68 65 72 27 20 7d 0a 35 30 20 20 7b 20 53 45 4c  her' }.50  { SEL
4820: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4830: 45 52 45 20 27 74 68 65 27 20 3c 3d 20 63 20 41  ERE 'the' <= c A
4840: 4e 44 20 61 20 3c 3d 20 63 20 7d 0a 35 31 20 20  ND a <= c }.51  
4850: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4860: 74 33 20 57 48 45 52 45 20 33 34 36 2e 30 33 34  t3 WHERE 346.034
4870: 38 36 31 30 20 3d 20 61 20 41 4e 44 20 63 20 3d  8610 = a AND c =
4880: 20 62 20 7d 0a 35 32 20 20 7b 20 53 45 4c 45 43   b }.52  { SELEC
4890: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
48a0: 45 20 63 20 42 45 54 57 45 45 4e 20 35 30 2e 35  E c BETWEEN 50.5
48b0: 38 32 32 33 31 37 32 20 41 4e 44 20 27 73 61 6d  8223172 AND 'sam
48c0: 65 27 20 41 4e 44 20 61 20 3c 20 62 20 7d 0a 35  e' AND a < b }.5
48d0: 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  3  { SELECT * FR
48e0: 4f 4d 20 74 33 20 57 48 45 52 45 20 27 41 6c 70  OM t3 WHERE 'Alp
48f0: 69 6e 65 27 20 3c 3d 20 62 20 41 4e 44 20 63 20  ine' <= b AND c 
4900: 3e 3d 20 27 61 6e 67 6c 65 27 20 4f 52 20 62 20  >= 'angle' OR b 
4910: 3c 3d 20 32 37 31 2e 32 30 31 39 30 39 31 20 7d  <= 271.2019091 }
4920: 0a 35 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .54  { SELECT * 
4930: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20  FROM t3 WHERE a 
4940: 3c 20 61 20 41 4e 44 20 31 34 31 35 39 32 36 35  < a AND 14159265
4950: 33 35 20 3e 20 62 20 7d 0a 35 35 20 20 7b 20 53  35 > b }.55  { S
4960: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4970: 57 48 45 52 45 20 63 20 3e 20 61 20 41 4e 44 20  WHERE c > a AND 
4980: 27 68 61 76 65 27 20 3e 3d 20 63 20 7d 0a 35 36  'have' >= c }.56
4990: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
49a0: 4d 20 74 33 20 57 48 45 52 45 20 62 20 3c 3d 20  M t3 WHERE b <= 
49b0: 62 20 41 4e 44 20 63 20 3e 20 62 20 7d 0a 35 37  b AND c > b }.57
49c0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
49d0: 4d 20 74 33 20 57 48 45 52 45 20 61 20 49 53 20  M t3 WHERE a IS 
49e0: 4e 55 4c 4c 20 41 4e 44 20 63 20 3c 3d 20 63 20  NULL AND c <= c 
49f0: 7d 0a 35 38 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.58  { SELECT *
4a00: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62   FROM t3 WHERE b
4a10: 20 3c 20 63 20 4f 52 20 62 20 3d 20 63 20 7d 0a   < c OR b = c }.
4a20: 35 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  59  { SELECT * F
4a30: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 3c  ROM t3 WHERE c <
4a40: 20 62 20 41 4e 44 20 62 20 3e 3d 20 27 69 74 27   b AND b >= 'it'
4a50: 20 7d 0a 36 30 20 20 7b 20 53 45 4c 45 43 54 20   }.60  { SELECT 
4a60: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4a70: 61 20 3d 20 62 20 41 4e 44 20 61 20 3c 3d 20 62  a = b AND a <= b
4a80: 20 4f 52 20 62 20 3e 3d 20 61 20 7d 0a 36 31 20   OR b >= a }.61 
4a90: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4aa0: 20 74 33 20 57 48 45 52 45 20 62 20 3d 20 63 20   t3 WHERE b = c 
4ab0: 7d 0a 36 32 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.62  { SELECT *
4ac0: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63   FROM t3 WHERE c
4ad0: 20 42 45 54 57 45 45 4e 20 27 74 68 65 27 20 41   BETWEEN 'the' A
4ae0: 4e 44 20 32 37 31 2e 32 30 31 39 30 39 31 20 4f  ND 271.2019091 O
4af0: 52 20 63 20 3c 3d 20 33 32 38 32 33 30 36 36 34  R c <= 328230664
4b00: 37 20 41 4e 44 20 63 20 3e 3d 20 62 20 7d 0a 36  7 AND c >= b }.6
4b10: 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  3  { SELECT * FR
4b20: 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 3e 3d  OM t3 WHERE c >=
4b30: 20 63 20 41 4e 44 20 63 20 3c 20 27 77 72 69 74   c AND c < 'writ
4b40: 69 6e 67 73 27 20 7d 0a 36 34 20 20 7b 20 53 45  ings' }.64  { SE
4b50: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4b60: 48 45 52 45 20 63 20 3c 3d 20 33 32 38 32 33 30  HERE c <= 328230
4b70: 36 36 34 37 20 41 4e 44 20 62 20 3e 20 61 20 4f  6647 AND b > a O
4b80: 52 20 27 75 6e 61 6c 69 6b 65 27 20 3c 3d 20 61  R 'unalike' <= a
4b90: 20 7d 0a 36 35 20 20 7b 20 53 45 4c 45 43 54 20   }.65  { SELECT 
4ba0: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4bb0: 61 20 3e 20 63 20 7d 0a 36 36 20 20 7b 20 53 45  a > c }.66  { SE
4bc0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4bd0: 48 45 52 45 20 63 20 3d 20 27 69 74 27 20 4f 52  HERE c = 'it' OR
4be0: 20 62 20 3e 3d 20 62 20 7d 0a 36 37 20 20 7b 20   b >= b }.67  { 
4bf0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4c00: 20 57 48 45 52 45 20 63 20 3d 20 61 20 4f 52 20   WHERE c = a OR 
4c10: 62 20 3c 20 63 20 7d 0a 36 38 20 20 7b 20 53 45  b < c }.68  { SE
4c20: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4c30: 48 45 52 45 20 62 20 3e 20 61 20 7d 0a 36 39 20  HERE b > a }.69 
4c40: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4c50: 20 74 33 20 57 48 45 52 45 20 61 20 3c 20 62 20   t3 WHERE a < b 
4c60: 4f 52 20 61 20 3e 20 34 35 34 33 2e 32 36 36 34  OR a > 4543.2664
4c70: 38 32 20 4f 52 20 27 73 61 6d 65 27 20 3d 20 62  82 OR 'same' = b
4c80: 20 7d 0a 37 30 20 20 7b 20 53 45 4c 45 43 54 20   }.70  { SELECT 
4c90: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4ca0: 63 20 3c 20 63 20 4f 52 20 62 20 3c 3d 20 63 20  c < c OR b <= c 
4cb0: 4f 52 20 61 20 3c 3d 20 62 20 7d 0a 37 31 20 20  OR a <= b }.71  
4cc0: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4cd0: 74 33 20 57 48 45 52 45 20 63 20 3e 20 61 20 7d  t3 WHERE c > a }
4ce0: 0a 37 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .72  { SELECT * 
4cf0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
4d00: 3e 20 62 20 7d 0a 37 33 20 20 7b 20 53 45 4c 45  > b }.73  { SELE
4d10: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4d20: 52 45 20 62 20 3c 3d 20 61 20 7d 0a 37 34 20 20  RE b <= a }.74  
4d30: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4d40: 74 33 20 57 48 45 52 45 20 33 32 38 32 33 30 36  t3 WHERE 3282306
4d50: 36 34 37 20 3c 20 62 20 41 4e 44 20 61 20 3e 3d  647 < b AND a >=
4d60: 20 27 6f 72 27 20 4f 52 20 61 20 3e 3d 20 33 37   'or' OR a >= 37
4d70: 38 36 37 38 33 31 36 2e 35 20 7d 0a 37 35 20 20  8678316.5 }.75  
4d80: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4d90: 74 33 20 57 48 45 52 45 20 35 30 2e 35 38 32 32  t3 WHERE 50.5822
4da0: 33 31 37 32 20 3c 3d 20 63 20 4f 52 20 63 20 3d  3172 <= c OR c =
4db0: 20 63 20 41 4e 44 20 62 20 3c 20 62 20 7d 0a 37   c AND b < b }.7
4dc0: 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  6  { SELECT * FR
4dd0: 4f 4d 20 74 33 20 57 48 45 52 45 20 27 61 6e 64  OM t3 WHERE 'and
4de0: 27 20 3c 20 62 20 4f 52 20 62 20 3c 20 63 20 4f  ' < b OR b < c O
4df0: 52 20 63 20 3e 20 31 33 33 39 2e 33 36 30 37 32  R c > 1339.36072
4e00: 36 20 7d 0a 37 37 20 20 7b 20 53 45 4c 45 43 54  6 }.77  { SELECT
4e10: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
4e20: 20 62 20 3c 3d 20 63 20 7d 0a 37 38 20 20 7b 20   b <= c }.78  { 
4e30: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4e40: 20 57 48 45 52 45 20 27 69 6e 27 20 3c 3d 20 63   WHERE 'in' <= c
4e50: 20 7d 0a 37 39 20 20 7b 20 53 45 4c 45 43 54 20   }.79  { SELECT 
4e60: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4e70: 63 20 3c 3d 20 62 20 41 4e 44 20 61 20 3e 20 61  c <= b AND a > a
4e80: 20 41 4e 44 20 63 20 3c 20 62 20 7d 0a 38 30 20   AND c < b }.80 
4e90: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4ea0: 20 74 33 20 57 48 45 52 45 20 27 6f 76 65 72 27   t3 WHERE 'over'
4eb0: 20 3c 20 62 20 7d 0a 38 31 20 20 7b 20 53 45 4c   < b }.81  { SEL
4ec0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4ed0: 45 52 45 20 62 20 3e 3d 20 62 20 4f 52 20 62 20  ERE b >= b OR b 
4ee0: 3c 20 63 20 4f 52 20 61 20 3c 20 62 20 7d 0a 38  < c OR a < b }.8
4ef0: 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  2  { SELECT * FR
4f00: 4f 4d 20 74 33 20 57 48 45 52 45 20 27 74 6f 77  OM t3 WHERE 'tow
4f10: 65 72 69 6e 67 27 20 3c 3d 20 62 20 4f 52 20 27  ering' <= b OR '
4f20: 74 6f 77 65 72 69 6e 67 27 20 3d 20 61 20 41 4e  towering' = a AN
4f30: 44 20 63 20 3e 20 62 20 7d 0a 38 33 20 20 7b 20  D c > b }.83  { 
4f40: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4f50: 20 57 48 45 52 45 20 27 70 65 61 6b 27 20 3d 20   WHERE 'peak' = 
4f60: 61 20 4f 52 20 62 20 42 45 54 57 45 45 4e 20 32  a OR b BETWEEN 2
4f70: 36 34 33 33 38 33 32 37 39 20 41 4e 44 20 27 74  643383279 AND 't
4f80: 68 65 27 20 7d 0a 38 34 20 20 7b 20 53 45 4c 45  he' }.84  { SELE
4f90: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4fa0: 52 45 20 27 61 6e 27 20 3c 20 63 20 41 4e 44 20  RE 'an' < c AND 
4fb0: 63 20 3e 20 27 74 68 65 27 20 41 4e 44 20 63 20  c > 'the' AND c 
4fc0: 49 53 20 4e 55 4c 4c 20 7d 0a 38 35 20 20 7b 20  IS NULL }.85  { 
4fd0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4fe0: 20 57 48 45 52 45 20 61 20 3c 3d 20 27 73 6f 6d   WHERE a <= 'som
4ff0: 65 74 69 6d 65 73 27 20 41 4e 44 20 61 20 42 45  etimes' AND a BE
5000: 54 57 45 45 4e 20 27 75 6e 61 6c 69 6b 65 27 20  TWEEN 'unalike' 
5010: 41 4e 44 20 31 33 33 39 2e 33 36 30 37 32 36 20  AND 1339.360726 
5020: 7d 0a 38 36 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.86  { SELECT *
5030: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 31   FROM t3 WHERE 1
5040: 33 33 39 2e 33 36 30 37 32 36 20 3c 20 63 20 41  339.360726 < c A
5050: 4e 44 20 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 38  ND c IS NULL }.8
5060: 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  7  { SELECT * FR
5070: 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20 3e 20  OM t3 WHERE b > 
5080: 27 74 68 65 27 20 7d 0a 38 38 20 20 7b 20 53 45  'the' }.88  { SE
5090: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
50a0: 48 45 52 45 20 27 61 6e 64 27 20 3d 20 61 20 7d  HERE 'and' = a }
50b0: 0a 38 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .89  { SELECT * 
50c0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20  FROM t3 WHERE b 
50d0: 3e 3d 20 62 20 7d 0a 39 30 20 20 7b 20 53 45 4c  >= b }.90  { SEL
50e0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
50f0: 45 52 45 20 62 20 3e 3d 20 38 39 37 39 33 32 33  ERE b >= 8979323
5100: 38 34 36 20 7d 0a 39 31 20 20 7b 20 53 45 4c 45  846 }.91  { SELE
5110: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
5120: 52 45 20 63 20 3c 3d 20 61 20 7d 0a 39 32 20 20  RE c <= a }.92  
5130: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
5140: 74 33 20 57 48 45 52 45 20 61 20 42 45 54 57 45  t3 WHERE a BETWE
5150: 45 4e 20 27 68 61 76 65 27 20 41 4e 44 20 27 6c  EN 'have' AND 'l
5160: 69 67 68 74 27 20 4f 52 20 61 20 3e 20 62 20 4f  ight' OR a > b O
5170: 52 20 61 20 3e 3d 20 33 37 38 36 37 38 33 31 36  R a >= 378678316
5180: 2e 35 20 7d 0a 39 33 20 20 7b 20 53 45 4c 45 43  .5 }.93  { SELEC
5190: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
51a0: 45 20 63 20 3e 20 33 32 38 32 33 30 36 36 34 37  E c > 3282306647
51b0: 20 7d 0a 39 34 20 20 7b 20 53 45 4c 45 43 54 20   }.94  { SELECT 
51c0: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
51d0: 62 20 3e 20 63 20 7d 0a 39 35 20 20 7b 20 53 45  b > c }.95  { SE
51e0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
51f0: 48 45 52 45 20 62 20 3e 3d 20 61 20 41 4e 44 20  HERE b >= a AND 
5200: 27 76 69 6c 6c 61 67 65 73 27 20 3e 20 61 20 41  'villages' > a A
5210: 4e 44 20 62 20 3e 3d 20 63 20 7d 0a 39 36 20 20  ND b >= c }.96  
5220: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
5230: 74 33 20 57 48 45 52 45 20 27 61 6e 67 6c 65 27  t3 WHERE 'angle'
5240: 20 3e 20 61 20 7d 0a 39 37 20 20 7b 20 53 45 4c   > a }.97  { SEL
5250: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
5260: 45 52 45 20 27 70 61 69 6e 74 69 6e 67 73 27 20  ERE 'paintings' 
5270: 3e 3d 20 61 20 7d 0a 39 38 20 20 7b 20 53 45 4c  >= a }.98  { SEL
5280: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
5290: 45 52 45 20 27 6f 72 27 20 3e 3d 20 63 20 7d 0a  ERE 'or' >= c }.
52a0: 39 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  99  { SELECT * F
52b0: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 3c  ROM t3 WHERE c <
52c0: 20 62 20 7d 0a 0a 0a 31 30 31 20 20 7b 20 53 45   b }...101  { SE
52d0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
52e0: 74 34 20 57 48 45 52 45 20 66 20 3c 20 27 73 6f  t4 WHERE f < 'so
52f0: 6d 65 74 69 6d 65 73 27 20 4f 52 20 27 6f 76 65  metimes' OR 'ove
5300: 72 27 20 3c 3d 20 67 20 41 4e 44 20 68 20 3c 20  r' <= g AND h < 
5310: 31 34 31 35 39 32 36 35 33 35 20 7d 0a 31 30 32  1415926535 }.102
5320: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
5330: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 68  M t3, t4 WHERE h
5340: 20 3e 3d 20 27 66 72 6f 6d 27 20 41 4e 44 20 68   >= 'from' AND h
5350: 20 3c 20 36 39 33 39 39 33 37 35 31 30 20 4f 52   < 6939937510 OR
5360: 20 67 20 3e 20 68 20 7d 0a 31 30 33 20 20 7b 20   g > h }.103  { 
5370: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5380: 2c 20 74 34 20 57 48 45 52 45 20 63 20 3c 3d 20  , t4 WHERE c <= 
5390: 68 20 41 4e 44 20 67 20 3d 20 68 20 41 4e 44 20  h AND g = h AND 
53a0: 63 20 3e 3d 20 27 61 6c 6c 27 20 7d 0a 31 30 34  c >= 'all' }.104
53b0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
53c0: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 63  M t3, t4 WHERE c
53d0: 20 3d 20 61 20 7d 0a 31 30 35 20 20 7b 20 53 45   = a }.105  { SE
53e0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
53f0: 74 34 20 57 48 45 52 45 20 27 6f 66 27 20 3e 3d  t4 WHERE 'of' >=
5400: 20 68 20 7d 0a 31 30 36 20 20 7b 20 53 45 4c 45   h }.106  { SELE
5410: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5420: 20 57 48 45 52 45 20 66 20 3e 3d 20 62 20 41 4e   WHERE f >= b AN
5430: 44 20 61 20 3c 20 67 20 41 4e 44 20 68 20 3c 20  D a < g AND h < 
5440: 27 61 6e 64 27 20 7d 0a 31 30 37 20 20 7b 20 53  'and' }.107  { S
5450: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5460: 20 74 34 20 57 48 45 52 45 20 66 20 3c 3d 20 38   t4 WHERE f <= 8
5470: 36 32 38 30 33 34 38 32 35 20 41 4e 44 20 30 39  628034825 AND 09
5480: 33 38 34 34 36 30 39 35 20 3e 3d 20 62 20 7d 0a  38446095 >= b }.
5490: 31 30 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  108  { SELECT * 
54a0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
54b0: 45 20 61 20 3c 20 27 74 68 65 27 20 7d 0a 31 30  E a < 'the' }.10
54c0: 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  9  { SELECT * FR
54d0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
54e0: 66 20 3d 20 27 73 6f 6d 65 74 69 6d 65 73 27 20  f = 'sometimes' 
54f0: 4f 52 20 62 20 3c 20 27 6f 66 27 20 7d 0a 31 31  OR b < 'of' }.11
5500: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
5510: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5520: 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 31 31 20  c IS NULL }.111 
5530: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5540: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 27 68   t3, t4 WHERE 'h
5550: 61 76 65 27 20 3d 20 62 20 4f 52 20 67 20 3c 3d  ave' = b OR g <=
5560: 20 33 34 36 2e 30 33 34 38 36 31 30 20 7d 0a 31   346.0348610 }.1
5570: 31 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  12  { SELECT * F
5580: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5590: 20 66 20 3e 20 62 20 41 4e 44 20 62 20 3c 3d 20   f > b AND b <= 
55a0: 68 20 7d 0a 31 31 33 20 20 7b 20 53 45 4c 45 43  h }.113  { SELEC
55b0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
55c0: 57 48 45 52 45 20 66 20 3e 20 63 20 4f 52 20 27  WHERE f > c OR '
55d0: 74 68 65 27 20 3d 20 61 20 4f 52 20 35 30 2e 35  the' = a OR 50.5
55e0: 38 32 32 33 31 37 32 20 3d 20 61 20 7d 0a 31 31  8223172 = a }.11
55f0: 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  4  { SELECT * FR
5600: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5610: 32 36 34 33 33 38 33 32 37 39 20 3c 3d 20 61 20  2643383279 <= a 
5620: 41 4e 44 20 63 20 3d 20 61 20 7d 0a 31 31 35 20  AND c = a }.115 
5630: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5640: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 68 20   t3, t4 WHERE h 
5650: 3e 3d 20 62 20 41 4e 44 20 27 69 74 27 20 3c 3d  >= b AND 'it' <=
5660: 20 62 20 7d 0a 31 31 36 20 20 7b 20 53 45 4c 45   b }.116  { SELE
5670: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5680: 20 57 48 45 52 45 20 67 20 42 45 54 57 45 45 4e   WHERE g BETWEEN
5690: 20 27 66 72 6f 6d 27 20 41 4e 44 20 27 70 65 61   'from' AND 'pea
56a0: 6b 27 20 7d 0a 31 31 37 20 20 7b 20 53 45 4c 45  k' }.117  { SELE
56b0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
56c0: 20 57 48 45 52 45 20 27 74 68 65 69 72 27 20 3e   WHERE 'their' >
56d0: 20 61 20 41 4e 44 20 67 20 3e 20 62 20 41 4e 44   a AND g > b AND
56e0: 20 66 20 3c 3d 20 63 20 7d 0a 31 31 38 20 20 7b   f <= c }.118  {
56f0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5700: 33 2c 20 74 34 20 57 48 45 52 45 20 68 20 3d 20  3, t4 WHERE h = 
5710: 35 30 32 38 38 34 31 39 37 31 20 41 4e 44 20 27  5028841971 AND '
5720: 75 6e 61 6c 69 6b 65 27 20 3c 3d 20 66 20 7d 0a  unalike' <= f }.
5730: 31 31 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  119  { SELECT * 
5740: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5750: 45 20 63 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20  E c IS NULL AND 
5760: 61 20 3d 20 33 32 38 32 33 30 36 36 34 37 20 4f  a = 3282306647 O
5770: 52 20 61 20 3c 3d 20 27 41 6c 70 69 6e 65 27 20  R a <= 'Alpine' 
5780: 7d 0a 31 32 30 20 20 7b 20 53 45 4c 45 43 54 20  }.120  { SELECT 
5790: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
57a0: 45 52 45 20 27 73 6f 6d 65 74 69 6d 65 73 27 20  ERE 'sometimes' 
57b0: 3c 3d 20 66 20 4f 52 20 38 32 31 34 38 30 38 36  <= f OR 82148086
57c0: 35 31 20 3e 3d 20 61 20 41 4e 44 20 62 20 3c 3d  51 >= a AND b <=
57d0: 20 35 33 35 39 34 2e 30 38 31 32 38 20 7d 0a 31   53594.08128 }.1
57e0: 32 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  21  { SELECT * F
57f0: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5800: 20 36 39 33 39 39 33 37 35 31 30 20 3c 3d 20 66   6939937510 <= f
5810: 20 4f 52 20 63 20 3c 20 66 20 4f 52 20 27 73 6f   OR c < f OR 'so
5820: 6d 65 74 69 6d 65 73 27 20 3d 20 63 20 7d 0a 31  metimes' = c }.1
5830: 32 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  22  { SELECT * F
5840: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5850: 20 62 20 3c 20 27 6f 6e 6c 6f 6f 6b 65 72 73 27   b < 'onlookers'
5860: 20 41 4e 44 20 27 70 61 69 6e 74 69 6e 67 73 27   AND 'paintings'
5870: 20 3d 20 67 20 41 4e 44 20 63 20 3c 3d 20 68 20   = g AND c <= h 
5880: 7d 0a 31 32 33 20 20 7b 20 53 45 4c 45 43 54 20  }.123  { SELECT 
5890: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
58a0: 45 52 45 20 61 20 42 45 54 57 45 45 4e 20 27 61  ERE a BETWEEN 'a
58b0: 6c 6c 27 20 41 4e 44 20 27 66 72 6f 6d 27 20 4f  ll' AND 'from' O
58c0: 52 20 63 20 3e 20 33 34 36 2e 30 33 34 38 36 31  R c > 346.034861
58d0: 30 20 7d 0a 31 32 34 20 20 7b 20 53 45 4c 45 43  0 }.124  { SELEC
58e0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
58f0: 57 48 45 52 45 20 27 66 72 6f 6d 27 20 3c 3d 20  WHERE 'from' <= 
5900: 62 20 4f 52 20 61 20 42 45 54 57 45 45 4e 20 35  b OR a BETWEEN 5
5910: 33 35 39 34 2e 30 38 31 32 38 20 41 4e 44 20 27  3594.08128 AND '
5920: 74 68 65 69 72 27 20 41 4e 44 20 63 20 3e 20 61  their' AND c > a
5930: 20 7d 0a 31 32 35 20 20 7b 20 53 45 4c 45 43 54   }.125  { SELECT
5940: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
5950: 48 45 52 45 20 68 20 3d 20 32 36 34 33 33 38 33  HERE h = 2643383
5960: 32 37 39 20 7d 0a 31 32 36 20 20 7b 20 53 45 4c  279 }.126  { SEL
5970: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
5980: 34 20 57 48 45 52 45 20 61 20 3c 3d 20 27 74 68  4 WHERE a <= 'th
5990: 65 27 20 7d 0a 31 32 37 20 20 7b 20 53 45 4c 45  e' }.127  { SELE
59a0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
59b0: 20 57 48 45 52 45 20 68 20 3c 3d 20 63 20 7d 0a   WHERE h <= c }.
59c0: 31 32 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  128  { SELECT * 
59d0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
59e0: 45 20 67 20 3c 3d 20 33 34 36 2e 30 33 34 38 36  E g <= 346.03486
59f0: 31 30 20 41 4e 44 20 36 36 2e 35 39 33 33 34 34  10 AND 66.593344
5a00: 36 31 20 3e 3d 20 66 20 41 4e 44 20 66 20 3c 3d  61 >= f AND f <=
5a10: 20 66 20 7d 0a 31 32 39 20 20 7b 20 53 45 4c 45   f }.129  { SELE
5a20: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5a30: 20 57 48 45 52 45 20 67 20 3e 3d 20 63 20 4f 52   WHERE g >= c OR
5a40: 20 27 69 6e 27 20 3c 20 62 20 4f 52 20 62 20 3e   'in' < b OR b >
5a50: 20 67 20 7d 0a 31 33 30 20 20 7b 20 53 45 4c 45   g }.130  { SELE
5a60: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5a70: 20 57 48 45 52 45 20 27 6f 76 65 72 27 20 3e 20   WHERE 'over' > 
5a80: 67 20 41 4e 44 20 62 20 42 45 54 57 45 45 4e 20  g AND b BETWEEN 
5a90: 27 75 6e 61 6c 69 6b 65 27 20 41 4e 44 20 27 72  'unalike' AND 'r
5aa0: 65 6d 61 72 6b 61 62 6c 79 27 20 7d 0a 31 33 31  emarkably' }.131
5ab0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
5ac0: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 68  M t3, t4 WHERE h
5ad0: 20 3c 3d 20 32 38 34 37 35 36 34 2e 38 32 33 20   <= 2847564.823 
5ae0: 7d 0a 31 33 32 20 20 7b 20 53 45 4c 45 43 54 20  }.132  { SELECT 
5af0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5b00: 45 52 45 20 68 20 3c 3d 20 27 72 65 6d 61 72 6b  ERE h <= 'remark
5b10: 61 62 6c 79 27 20 41 4e 44 20 34 35 34 33 2e 32  ably' AND 4543.2
5b20: 36 36 34 38 32 20 3e 20 68 20 7d 0a 31 33 33 20  66482 > h }.133 
5b30: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5b40: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61 20   t3, t4 WHERE a 
5b50: 3e 3d 20 63 20 41 4e 44 20 27 69 74 27 20 3e 20  >= c AND 'it' > 
5b60: 67 20 41 4e 44 20 63 20 3c 20 63 20 7d 0a 31 33  g AND c < c }.13
5b70: 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  4  { SELECT * FR
5b80: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5b90: 68 20 3c 3d 20 36 36 2e 35 39 33 33 34 34 36 31  h <= 66.59334461
5ba0: 20 41 4e 44 20 62 20 3e 20 33 34 32 31 31 37 30   AND b > 3421170
5bb0: 36 37 39 20 7d 0a 31 33 35 20 20 7b 20 53 45 4c  679 }.135  { SEL
5bc0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
5bd0: 34 20 57 48 45 52 45 20 68 20 3c 20 27 61 72 65  4 WHERE h < 'are
5be0: 27 20 4f 52 20 66 20 42 45 54 57 45 45 4e 20 30  ' OR f BETWEEN 0
5bf0: 39 33 38 34 34 36 30 39 35 20 41 4e 44 20 27 61  938446095 AND 'a
5c00: 72 65 27 20 4f 52 20 62 20 3d 20 62 20 7d 0a 31  re' OR b = b }.1
5c10: 33 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  36  { SELECT * F
5c20: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5c30: 20 68 20 3d 20 61 20 4f 52 20 36 36 2e 35 39 33   h = a OR 66.593
5c40: 33 34 34 36 31 20 3c 3d 20 66 20 7d 0a 31 33 37  34461 <= f }.137
5c50: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
5c60: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 66  M t3, t4 WHERE f
5c70: 20 3e 20 27 6f 66 27 20 4f 52 20 68 20 3c 3d 20   > 'of' OR h <= 
5c80: 68 20 4f 52 20 61 20 3d 20 66 20 7d 0a 31 33 38  h OR a = f }.138
5c90: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
5ca0: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 27  M t3, t4 WHERE '
5cb0: 6f 74 68 65 72 27 20 3e 3d 20 67 20 7d 0a 31 33  other' >= g }.13
5cc0: 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  9  { SELECT * FR
5cd0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5ce0: 62 20 3c 3d 20 33 34 32 31 31 37 30 36 37 39 20  b <= 3421170679 
5cf0: 7d 0a 31 34 30 20 20 7b 20 53 45 4c 45 43 54 20  }.140  { SELECT 
5d00: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5d10: 45 52 45 20 27 61 6c 6c 27 20 3d 20 66 20 41 4e  ERE 'all' = f AN
5d20: 44 20 34 35 34 33 2e 32 36 36 34 38 32 20 3d 20  D 4543.266482 = 
5d30: 62 20 4f 52 20 66 20 42 45 54 57 45 45 4e 20 27  b OR f BETWEEN '
5d40: 61 6e 64 27 20 41 4e 44 20 27 61 6e 67 6c 65 27  and' AND 'angle'
5d50: 20 7d 0a 31 34 31 20 20 7b 20 53 45 4c 45 43 54   }.141  { SELECT
5d60: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
5d70: 48 45 52 45 20 27 6c 69 67 68 74 27 20 3d 20 66  HERE 'light' = f
5d80: 20 4f 52 20 68 20 42 45 54 57 45 45 4e 20 27 72   OR h BETWEEN 'r
5d90: 65 6d 61 72 6b 61 62 6c 79 27 20 41 4e 44 20 31  emarkably' AND 1
5da0: 34 31 35 39 32 36 35 33 35 20 7d 0a 31 34 32 20  415926535 }.142 
5db0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5dc0: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 27 68   t3, t4 WHERE 'h
5dd0: 69 6c 6c 73 27 20 3d 20 66 20 4f 52 20 27 74 68  ills' = f OR 'th
5de0: 65 27 20 3e 3d 20 66 20 7d 0a 31 34 33 20 20 7b  e' >= f }.143  {
5df0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5e00: 33 2c 20 74 34 20 57 48 45 52 45 20 61 20 3e 20  3, t4 WHERE a > 
5e10: 33 34 36 2e 30 33 34 38 36 31 30 20 7d 0a 31 34  346.0348610 }.14
5e20: 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  4  { SELECT * FR
5e30: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5e40: 35 30 32 38 38 34 31 39 37 31 20 3d 20 68 20 7d  5028841971 = h }
5e50: 0a 31 34 35 20 20 7b 20 53 45 4c 45 43 54 20 2a  .145  { SELECT *
5e60: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5e70: 52 45 20 62 20 3e 3d 20 63 20 41 4e 44 20 27 74  RE b >= c AND 't
5e80: 68 65 27 20 3e 3d 20 67 20 4f 52 20 34 35 2e 36  he' >= g OR 45.6
5e90: 34 38 35 36 36 39 32 20 3c 3d 20 67 20 7d 0a 31  4856692 <= g }.1
5ea0: 34 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  46  { SELECT * F
5eb0: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5ec0: 20 63 20 3c 20 35 30 32 38 38 34 31 39 37 31 20   c < 5028841971 
5ed0: 7d 0a 31 34 37 20 20 7b 20 53 45 4c 45 43 54 20  }.147  { SELECT 
5ee0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5ef0: 45 52 45 20 61 20 3e 20 61 20 7d 0a 31 34 38 20  ERE a > a }.148 
5f00: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5f10: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 63 20   t3, t4 WHERE c 
5f20: 3d 20 27 73 6e 61 70 73 68 6f 74 73 27 20 7d 0a  = 'snapshots' }.
5f30: 31 34 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  149  { SELECT * 
5f40: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5f50: 45 20 68 20 3e 20 31 33 33 39 2e 33 36 30 37 32  E h > 1339.36072
5f60: 36 20 41 4e 44 20 27 61 6e 64 27 20 3e 20 63 20  6 AND 'and' > c 
5f70: 7d 0a 31 35 30 20 20 7b 20 53 45 4c 45 43 54 20  }.150  { SELECT 
5f80: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5f90: 45 52 45 20 27 61 6e 64 27 20 3e 20 67 20 4f 52  ERE 'and' > g OR
5fa0: 20 27 73 6f 6d 65 74 69 6d 65 73 27 20 3d 20 63   'sometimes' = c
5fb0: 20 7d 0a 31 35 31 20 20 7b 20 53 45 4c 45 43 54   }.151  { SELECT
5fc0: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
5fd0: 48 45 52 45 20 67 20 3e 3d 20 27 74 68 65 27 20  HERE g >= 'the' 
5fe0: 41 4e 44 20 62 20 3e 3d 20 27 6f 6e 6c 6f 6f 6b  AND b >= 'onlook
5ff0: 65 72 73 27 20 7d 0a 31 35 32 20 20 7b 20 53 45  ers' }.152  { SE
6000: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
6010: 74 34 20 57 48 45 52 45 20 68 20 42 45 54 57 45  t4 WHERE h BETWE
6020: 45 4e 20 27 6f 74 68 65 72 27 20 41 4e 44 20 32  EN 'other' AND 2
6030: 36 34 33 33 38 33 32 37 39 20 7d 0a 31 35 33 20  643383279 }.153 
6040: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
6050: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 27 69   t3, t4 WHERE 'i
6060: 74 27 20 3d 20 62 20 7d 0a 31 35 34 20 20 7b 20  t' = b }.154  { 
6070: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6080: 2c 20 74 34 20 57 48 45 52 45 20 66 20 3d 20 63  , t4 WHERE f = c
6090: 20 4f 52 20 63 20 42 45 54 57 45 45 4e 20 27 61   OR c BETWEEN 'a
60a0: 6e 64 27 20 41 4e 44 20 30 2e 34 38 31 31 31 37  nd' AND 0.481117
60b0: 34 35 30 32 20 7d 0a 31 35 35 20 20 7b 20 53 45  4502 }.155  { SE
60c0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
60d0: 74 34 20 57 48 45 52 45 20 62 20 3c 3d 20 27 73  t4 WHERE b <= 's
60e0: 6f 6d 65 74 69 6d 65 73 27 20 4f 52 20 63 20 3c  ometimes' OR c <
60f0: 3d 20 30 39 33 38 34 34 36 30 39 35 20 7d 0a 31  = 0938446095 }.1
6100: 35 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  56  { SELECT * F
6110: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
6120: 20 27 61 6e 64 27 20 3c 3d 20 62 20 7d 0a 31 35   'and' <= b }.15
6130: 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  7  { SELECT * FR
6140: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6150: 67 20 3e 20 61 20 41 4e 44 20 66 20 3d 20 27 74  g > a AND f = 't
6160: 68 65 27 20 41 4e 44 20 62 20 3c 20 61 20 7d 0a  he' AND b < a }.
6170: 31 35 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  158  { SELECT * 
6180: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
6190: 45 20 61 20 3c 20 27 61 6e 27 20 7d 0a 31 35 39  E a < 'an' }.159
61a0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
61b0: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61  M t3, t4 WHERE a
61c0: 20 42 45 54 57 45 45 4e 20 27 68 69 73 27 20 41   BETWEEN 'his' A
61d0: 4e 44 20 27 73 61 6d 65 27 20 4f 52 20 38 36 32  ND 'same' OR 862
61e0: 38 30 33 34 38 32 35 20 3e 20 66 20 7d 0a 31 36  8034825 > f }.16
61f0: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
6200: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6210: 62 20 3d 20 27 70 65 61 6b 27 20 7d 0a 31 36 31  b = 'peak' }.161
6220: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
6230: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 66  M t3, t4 WHERE f
6240: 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20 61 20 3e   IS NULL AND a >
6250: 3d 20 68 20 7d 0a 31 36 32 20 20 7b 20 53 45 4c  = h }.162  { SEL
6260: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
6270: 34 20 57 48 45 52 45 20 61 20 49 53 20 4e 55 4c  4 WHERE a IS NUL
6280: 4c 20 4f 52 20 32 36 34 33 33 38 33 32 37 39 20  L OR 2643383279 
6290: 3d 20 63 20 7d 0a 31 36 33 20 20 7b 20 53 45 4c  = c }.163  { SEL
62a0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
62b0: 34 20 57 48 45 52 45 20 62 20 3e 3d 20 35 30 32  4 WHERE b >= 502
62c0: 38 38 34 31 39 37 31 20 41 4e 44 20 66 20 3c 20  8841971 AND f < 
62d0: 63 20 41 4e 44 20 61 20 49 53 20 4e 55 4c 4c 20  c AND a IS NULL 
62e0: 7d 0a 31 36 34 20 20 7b 20 53 45 4c 45 43 54 20  }.164  { SELECT 
62f0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
6300: 45 52 45 20 61 20 3e 3d 20 67 20 7d 0a 31 36 35  ERE a >= g }.165
6310: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
6320: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 63  M t3, t4 WHERE c
6330: 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 36 36 20 20   IS NULL }.166  
6340: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6350: 74 33 2c 20 74 34 20 57 48 45 52 45 20 68 20 3e  t3, t4 WHERE h >
6360: 3d 20 68 20 7d 0a 31 36 37 20 20 7b 20 53 45 4c  = h }.167  { SEL
6370: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
6380: 34 20 57 48 45 52 45 20 27 6f 76 65 72 27 20 3c  4 WHERE 'over' <
6390: 3d 20 68 20 7d 0a 31 36 38 20 20 7b 20 53 45 4c  = h }.168  { SEL
63a0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
63b0: 34 20 57 48 45 52 45 20 62 20 3c 20 34 35 34 33  4 WHERE b < 4543
63c0: 2e 32 36 36 34 38 32 20 4f 52 20 62 20 3d 20 32  .266482 OR b = 2
63d0: 36 34 33 33 38 33 32 37 39 20 4f 52 20 38 36 32  643383279 OR 862
63e0: 38 30 33 34 38 32 35 20 3c 20 62 20 7d 0a 31 36  8034825 < b }.16
63f0: 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  9  { SELECT * FR
6400: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6410: 67 20 3e 3d 20 36 39 33 39 39 33 37 35 31 30 20  g >= 6939937510 
6420: 7d 0a 31 37 30 20 20 7b 20 53 45 4c 45 43 54 20  }.170  { SELECT 
6430: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
6440: 45 52 45 20 27 6f 72 27 20 3c 20 61 20 4f 52 20  ERE 'or' < a OR 
6450: 62 20 3c 20 67 20 7d 0a 31 37 31 20 20 7b 20 53  b < g }.171  { S
6460: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
6470: 20 74 34 20 57 48 45 52 45 20 68 20 3c 20 27 68   t4 WHERE h < 'h
6480: 69 6c 6c 73 27 20 4f 52 20 27 61 6e 64 27 20 3e  ills' OR 'and' >
6490: 20 67 20 7d 0a 31 37 32 20 20 7b 20 53 45 4c 45   g }.172  { SELE
64a0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
64b0: 20 57 48 45 52 45 20 27 66 72 6f 6d 27 20 3e 20   WHERE 'from' > 
64c0: 66 20 4f 52 20 66 20 3c 3d 20 66 20 7d 0a 31 37  f OR f <= f }.17
64d0: 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  3  { SELECT * FR
64e0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
64f0: 27 76 69 65 77 65 64 27 20 3e 20 62 20 41 4e 44  'viewed' > b AND
6500: 20 66 20 3c 20 63 20 7d 0a 31 37 34 20 20 7b 20   f < c }.174  { 
6510: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6520: 2c 20 74 34 20 57 48 45 52 45 20 27 6f 66 27 20  , t4 WHERE 'of' 
6530: 3c 3d 20 61 20 7d 0a 31 37 35 20 20 7b 20 53 45  <= a }.175  { SE
6540: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
6550: 74 34 20 57 48 45 52 45 20 66 20 3e 20 30 39 33  t4 WHERE f > 093
6560: 38 34 34 36 30 39 35 20 7d 0a 31 37 36 20 20 7b  8446095 }.176  {
6570: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6580: 33 2c 20 74 34 20 57 48 45 52 45 20 61 20 3d 20  3, t4 WHERE a = 
6590: 67 20 7d 0a 31 37 37 20 20 7b 20 53 45 4c 45 43  g }.177  { SELEC
65a0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
65b0: 57 48 45 52 45 20 67 20 3e 3d 20 62 20 41 4e 44  WHERE g >= b AND
65c0: 20 66 20 42 45 54 57 45 45 4e 20 27 70 65 61 6b   f BETWEEN 'peak
65d0: 27 20 41 4e 44 20 27 61 6e 64 27 20 7d 0a 31 37  ' AND 'and' }.17
65e0: 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  8  { SELECT * FR
65f0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6600: 67 20 3d 20 61 20 41 4e 44 20 27 69 74 27 20 3e  g = a AND 'it' >
6610: 20 66 20 7d 0a 31 37 39 20 20 7b 20 53 45 4c 45   f }.179  { SELE
6620: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
6630: 20 57 48 45 52 45 20 61 20 3c 3d 20 62 20 4f 52   WHERE a <= b OR
6640: 20 27 66 72 6f 6d 27 20 3e 20 66 20 7d 0a 31 38   'from' > f }.18
6650: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
6660: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6670: 66 20 3c 20 27 61 6e 64 27 20 7d 0a 31 38 31 20  f < 'and' }.181 
6680: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
6690: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 36 39   t3, t4 WHERE 69
66a0: 33 39 39 33 37 35 31 30 20 3c 20 62 20 4f 52 20  39937510 < b OR 
66b0: 27 73 6f 6d 65 74 69 6d 65 73 27 20 3c 20 68 20  'sometimes' < h 
66c0: 7d 0a 31 38 32 20 20 7b 20 53 45 4c 45 43 54 20  }.182  { SELECT 
66d0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
66e0: 45 52 45 20 66 20 3e 20 67 20 41 4e 44 20 66 20  ERE f > g AND f 
66f0: 3c 20 27 70 65 61 6b 27 20 7d 0a 31 38 33 20 20  < 'peak' }.183  
6700: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6710: 74 33 2c 20 74 34 20 57 48 45 52 45 20 61 20 3c  t3, t4 WHERE a <
6720: 3d 20 35 33 35 39 34 2e 30 38 31 32 38 20 41 4e  = 53594.08128 AN
6730: 44 20 63 20 3c 3d 20 66 20 41 4e 44 20 66 20 3e  D c <= f AND f >
6740: 3d 20 63 20 7d 0a 31 38 34 20 20 7b 20 53 45 4c  = c }.184  { SEL
6750: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
6760: 34 20 57 48 45 52 45 20 66 20 3d 20 63 20 4f 52  4 WHERE f = c OR
6770: 20 27 69 74 27 20 3e 20 62 20 4f 52 20 67 20 42   'it' > b OR g B
6780: 45 54 57 45 45 4e 20 27 74 68 65 27 20 41 4e 44  ETWEEN 'the' AND
6790: 20 27 61 6c 6c 27 20 7d 0a 31 38 35 20 20 7b 20   'all' }.185  { 
67a0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
67b0: 2c 20 74 34 20 57 48 45 52 45 20 63 20 3c 3d 20  , t4 WHERE c <= 
67c0: 67 20 4f 52 20 61 20 3d 20 68 20 7d 0a 31 38 36  g OR a = h }.186
67d0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
67e0: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 27  M t3, t4 WHERE '
67f0: 73 61 6d 65 27 20 3d 20 62 20 4f 52 20 63 20 3e  same' = b OR c >
6800: 3d 20 32 36 34 33 33 38 33 32 37 39 20 7d 0a 31  = 2643383279 }.1
6810: 38 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  87  { SELECT * F
6820: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
6830: 20 68 20 3c 3d 20 67 20 4f 52 20 63 20 3e 20 36   h <= g OR c > 6
6840: 36 2e 35 39 33 33 34 34 36 31 20 4f 52 20 61 20  6.59334461 OR a 
6850: 3c 3d 20 66 20 7d 0a 31 38 38 20 20 7b 20 53 45  <= f }.188  { SE
6860: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
6870: 74 34 20 57 48 45 52 45 20 62 20 3c 20 63 20 41  t4 WHERE b < c A
6880: 4e 44 20 66 20 3d 20 27 77 72 69 74 69 6e 67 73  ND f = 'writings
6890: 27 20 7d 0a 31 38 39 20 20 7b 20 53 45 4c 45 43  ' }.189  { SELEC
68a0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
68b0: 57 48 45 52 45 20 62 20 3c 20 61 20 7d 0a 31 39  WHERE b < a }.19
68c0: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
68d0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
68e0: 63 20 3e 3d 20 66 20 4f 52 20 63 20 3d 20 27 61  c >= f OR c = 'a
68f0: 6e 64 27 20 7d 0a 31 39 31 20 20 7b 20 53 45 4c  nd' }.191  { SEL
6900: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
6910: 34 20 57 48 45 52 45 20 66 20 3e 3d 20 27 70 65  4 WHERE f >= 'pe
6920: 61 6b 27 20 41 4e 44 20 67 20 3e 20 66 20 41 4e  ak' AND g > f AN
6930: 44 20 68 20 3e 20 67 20 7d 0a 31 39 32 20 20 7b  D h > g }.192  {
6940: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6950: 33 2c 20 74 34 20 57 48 45 52 45 20 61 20 3e 3d  3, t4 WHERE a >=
6960: 20 38 39 37 39 33 32 33 38 34 36 20 41 4e 44 20   8979323846 AND 
6970: 27 73 61 6d 65 27 20 3e 20 62 20 4f 52 20 63 20  'same' > b OR c 
6980: 3d 20 27 61 6e 64 27 20 7d 0a 31 39 33 20 20 7b  = 'and' }.193  {
6990: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
69a0: 33 2c 20 74 34 20 57 48 45 52 45 20 63 20 3e 3d  3, t4 WHERE c >=
69b0: 20 67 20 4f 52 20 27 77 72 69 74 69 6e 67 73 27   g OR 'writings'
69c0: 20 3e 3d 20 63 20 41 4e 44 20 62 20 3d 20 27 61   >= c AND b = 'a
69d0: 6c 6c 27 20 7d 0a 31 39 34 20 20 7b 20 53 45 4c  ll' }.194  { SEL
69e0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
69f0: 34 20 57 48 45 52 45 20 27 72 65 6d 61 72 6b 61  4 WHERE 'remarka
6a00: 62 6c 79 27 20 3c 20 67 20 7d 0a 31 39 35 20 20  bly' < g }.195  
6a10: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6a20: 74 33 2c 20 74 34 20 57 48 45 52 45 20 61 20 42  t3, t4 WHERE a B
6a30: 45 54 57 45 45 4e 20 27 6f 72 27 20 41 4e 44 20  ETWEEN 'or' AND 
6a40: 27 70 61 69 6e 74 69 6e 67 73 27 20 41 4e 44 20  'paintings' AND 
6a50: 67 20 3c 3d 20 66 20 7d 0a 31 39 36 20 20 7b 20  g <= f }.196  { 
6a60: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6a70: 2c 20 74 34 20 57 48 45 52 45 20 30 39 33 38 34  , t4 WHERE 09384
6a80: 34 36 30 39 35 20 3e 20 62 20 4f 52 20 67 20 3c  46095 > b OR g <
6a90: 3d 20 61 20 4f 52 20 68 20 3e 20 62 20 7d 0a 31  = a OR h > b }.1
6aa0: 39 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  97  { SELECT * F
6ab0: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
6ac0: 20 67 20 3d 20 32 36 34 33 33 38 33 32 37 39 20   g = 2643383279 
6ad0: 41 4e 44 20 66 20 3d 20 67 20 7d 0a 31 39 38 20  AND f = g }.198 
6ae0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
6af0: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 67 20   t3, t4 WHERE g 
6b00: 3c 20 38 39 37 39 33 32 33 38 34 36 20 7d 0a 31  < 8979323846 }.1
6b10: 39 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  99  { SELECT * F
6b20: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
6b30: 20 27 61 72 65 27 20 3c 3d 20 62 20 7d 0a 32 30   'are' <= b }.20
6b40: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
6b50: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6b60: 28 61 3d 31 34 31 35 39 32 36 35 33 35 20 41 4e  (a=1415926535 AN
6b70: 44 20 66 3d 38 36 32 38 30 33 34 38 32 35 29 0a  D f=8628034825).
6b80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6b90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f                 O
6ba0: 52 20 28 61 3d 36 39 33 39 39 33 37 35 31 30 20  R (a=6939937510 
6bb0: 41 4e 44 20 66 3d 32 36 34 33 33 38 33 32 37 39  AND f=2643383279
6bc0: 29 20 7d 0a 32 30 31 20 20 7b 20 53 45 4c 45 43  ) }.201  { SELEC
6bd0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 2c  T * FROM t3, t4,
6be0: 20 74 35 2c 20 74 36 0a 20 20 20 20 20 20 20 20   t5, t6.        
6bf0: 57 48 45 52 45 20 28 61 3d 31 34 31 35 39 32 36  WHERE (a=1415926
6c00: 35 33 35 20 41 4e 44 20 66 3d 38 36 32 38 30 33  535 AND f=862803
6c10: 34 38 32 35 20 41 4e 44 20 73 21 3d 27 68 65 6c  4825 AND s!='hel
6c20: 6c 6f 27 20 41 4e 44 20 74 21 3d 35 29 0a 20 20  lo' AND t!=5).  
6c30: 20 20 20 20 20 20 20 20 20 4f 52 20 28 61 3d 36           OR (a=6
6c40: 39 33 39 39 33 37 35 31 30 20 41 4e 44 20 66 3d  939937510 AND f=
6c50: 32 36 34 33 33 38 33 32 37 39 20 41 4e 44 20 73  2643383279 AND s
6c60: 3d 27 74 61 62 2d 74 35 27 20 41 4e 44 20 74 3d  ='tab-t5' AND t=
6c70: 31 32 33 34 35 36 29 20 7d 0a 32 30 32 20 20 7b  123456) }.202  {
6c80: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6c90: 33 2c 20 74 34 2c 20 74 35 2c 20 74 36 0a 20 20  3, t4, t5, t6.  
6ca0: 20 20 20 20 20 20 57 48 45 52 45 20 28 61 3d 31        WHERE (a=1
6cb0: 34 31 35 39 32 36 35 33 35 20 41 4e 44 20 66 3d  415926535 AND f=
6cc0: 38 36 32 38 30 33 34 38 32 35 20 41 4e 44 20 73  8628034825 AND s
6cd0: 21 3d 27 68 65 6c 6c 6f 27 20 41 4e 44 20 74 3d  !='hello' AND t=
6ce0: 3d 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 4f  =5).           O
6cf0: 52 20 28 61 3d 36 39 33 39 39 33 37 35 31 30 20  R (a=6939937510 
6d00: 41 4e 44 20 66 3d 32 36 34 33 33 38 33 32 37 39  AND f=2643383279
6d10: 20 41 4e 44 20 73 3d 27 74 61 62 2d 74 35 27 20   AND s='tab-t5' 
6d20: 41 4e 44 20 74 21 3d 31 32 33 34 35 36 29 20 7d  AND t!=123456) }
6d30: 0a 0a 20 20 7d 20 7b 0a 20 20 20 20 64 6f 5f 74  ..  } {.    do_t
6d40: 65 73 74 20 77 68 65 72 65 38 2d 34 2e 24 41 2e  est where8-4.$A.
6d50: 24 42 2e 31 20 7b 0a 20 20 20 20 20 20 75 6e 73  $B.1 {.      uns
6d60: 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 52  et -nocomplain R
6d70: 0a 20 20 20 20 20 20 73 65 74 20 52 20 5b 65 78  .      set R [ex
6d80: 65 63 73 71 6c 20 24 73 71 6c 5d 0a 20 20 20 20  ecsql $sql].    
6d90: 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69    if {![info exi
6da0: 73 74 73 20 72 65 73 75 6c 74 73 28 24 42 29 5d  sts results($B)]
6db0: 7d 20 7b 0a 20 20 20 20 20 20 20 20 73 65 74 20  } {.        set 
6dc0: 72 65 73 75 6c 74 73 28 24 42 29 20 24 52 0a 20  results($B) $R. 
6dd0: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 6c 69 73       }.      lis
6de0: 74 0a 20 20 20 20 7d 20 7b 7d 0a 0a 20 20 20 20  t.    } {}..    
6df0: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 34  do_test where8-4
6e00: 2e 24 41 2e 24 42 2e 32 20 7b 20 6c 73 6f 72 74  .$A.$B.2 { lsort
6e10: 20 24 52 20 7d 20 5b 6c 73 6f 72 74 20 24 72 65   $R } [lsort $re
6e20: 73 75 6c 74 73 28 24 42 29 5d 0a 20 20 7d 0a 20  sults($B)].  }. 
6e30: 20 69 6e 63 72 20 41 0a 7d 0a 63 61 74 63 68 20   incr A.}.catch 
6e40: 7b 75 6e 73 65 74 20 72 65 73 75 6c 74 73 7d 0a  {unset results}.
6e50: 63 61 74 63 68 20 7b 75 6e 73 65 74 20 41 7d 0a  catch {unset A}.
6e60: 63 61 74 63 68 20 7b 75 6e 73 65 74 20 42 7d 0a  catch {unset B}.
6e70: 0a 23 20 41 74 20 6f 6e 65 20 70 6f 69 6e 74 20  .# At one point 
6e80: 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65  the following te
6e90: 73 74 73 20 70 72 6f 76 6f 6b 65 64 20 61 6e 20  sts provoked an 
6ea0: 69 6e 76 61 6c 69 64 20 77 72 69 74 65 20 65 72  invalid write er
6eb0: 72 6f 72 20 28 77 72 69 74 69 6e 67 0a 23 20 74  ror (writing.# t
6ec0: 6f 20 6d 65 6d 6f 72 79 20 74 68 61 74 20 68 61  o memory that ha
6ed0: 64 20 61 6c 72 65 61 64 79 20 62 65 65 6e 20 66  d already been f
6ee0: 72 65 65 64 29 2e 20 49 74 20 77 61 73 20 6e 6f  reed). It was no
6ef0: 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 64 65  t possible to de
6f00: 6d 6f 6e 73 74 72 61 74 65 0a 23 20 74 68 61 74  monstrate.# that
6f10: 20 74 68 69 73 20 62 75 67 20 63 6f 75 6c 64 20   this bug could 
6f20: 63 61 75 73 65 20 61 20 71 75 65 72 79 20 74 6f  cause a query to
6f30: 20 72 65 74 75 72 6e 20 62 61 64 20 64 61 74 61   return bad data
6f40: 2e 0a 23 20 0a 64 6f 5f 74 65 73 74 20 77 68 65  ..# .do_test whe
6f50: 72 65 38 2d 35 2e 31 20 7b 0a 20 20 64 62 20 63  re8-5.1 {.  db c
6f60: 6c 6f 73 65 0a 20 20 73 71 6c 69 74 65 33 20 64  lose.  sqlite3 d
6f70: 62 20 74 65 73 74 2e 64 62 0a 20 20 73 71 6c 69  b test.db.  sqli
6f80: 74 65 33 5f 64 62 5f 63 6f 6e 66 69 67 5f 6c 6f  te3_db_config_lo
6f90: 6f 6b 61 73 69 64 65 20 64 62 20 30 20 30 20 30  okaside db 0 0 0
6fa0: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
6fb0: 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 41   CREATE TABLE tA
6fc0: 28 0a 20 20 20 20 20 20 61 2c 20 62 2c 20 63 2c  (.      a, b, c,
6fd0: 20 64 2c 20 65 2c 20 66 2c 20 67 2c 20 68 2c 20   d, e, f, g, h, 
6fe0: 0a 20 20 20 20 20 20 69 2c 20 6a 2c 20 6b 2c 20  .      i, j, k, 
6ff0: 6c 2c 20 6d 2c 20 6e 2c 20 6f 2c 20 70 0a 20 20  l, m, n, o, p.  
7000: 20 20 29 3b 0a 20 20 7d 0a 20 20 65 78 65 63 73    );.  }.  execs
7010: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
7020: 2a 20 46 52 4f 4d 20 74 41 20 57 48 45 52 45 0a  * FROM tA WHERE.
7030: 20 20 20 20 20 20 61 3d 31 20 41 4e 44 20 62 3d        a=1 AND b=
7040: 32 20 41 4e 44 20 63 3d 33 20 41 4e 44 20 64 3d  2 AND c=3 AND d=
7050: 34 20 41 4e 44 20 65 3d 35 20 41 4e 44 20 66 3d  4 AND e=5 AND f=
7060: 36 20 41 4e 44 20 67 3d 37 20 41 4e 44 20 68 3d  6 AND g=7 AND h=
7070: 38 20 41 4e 44 0a 20 20 20 20 20 20 69 3d 31 20  8 AND.      i=1 
7080: 41 4e 44 20 6a 3d 32 20 41 4e 44 20 6b 3d 33 20  AND j=2 AND k=3 
7090: 41 4e 44 20 6c 3d 34 20 41 4e 44 20 6d 3d 35 20  AND l=4 AND m=5 
70a0: 41 4e 44 20 6e 3d 36 20 41 4e 44 20 6f 3d 37 20  AND n=6 AND o=7 
70b0: 41 4e 44 0a 20 20 20 20 20 20 28 70 20 3d 20 31  AND.      (p = 1
70c0: 20 4f 52 20 70 20 3d 20 32 20 4f 52 20 70 20 3d   OR p = 2 OR p =
70d0: 20 33 29 0a 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f   3).  }.} {}.do_
70e0: 74 65 73 74 20 77 68 65 72 65 38 2d 35 2e 32 20  test where8-5.2 
70f0: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
7100: 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20    SELECT * FROM 
7110: 74 41 20 57 48 45 52 45 0a 20 20 20 20 20 20 61  tA WHERE.      a
7120: 3d 31 20 41 4e 44 20 62 3d 32 20 41 4e 44 20 63  =1 AND b=2 AND c
7130: 3d 33 20 41 4e 44 20 64 3d 34 20 41 4e 44 20 65  =3 AND d=4 AND e
7140: 3d 35 20 41 4e 44 20 66 3d 36 20 41 4e 44 20 67  =5 AND f=6 AND g
7150: 3d 37 20 41 4e 44 20 68 3d 38 20 41 4e 44 0a 20  =7 AND h=8 AND. 
7160: 20 20 20 20 20 69 3d 31 20 41 4e 44 20 6a 3d 32       i=1 AND j=2
7170: 20 41 4e 44 20 6b 3d 33 20 41 4e 44 20 6c 3d 34   AND k=3 AND l=4
7180: 20 41 4e 44 20 6d 3d 35 20 41 4e 44 0a 20 20 20   AND m=5 AND.   
7190: 20 20 20 28 70 20 3d 20 31 20 4f 52 20 70 20 3d     (p = 1 OR p =
71a0: 20 32 20 4f 52 20 70 20 3d 20 33 29 20 41 4e 44   2 OR p = 3) AND
71b0: 20 6e 3d 36 20 41 4e 44 20 6f 3d 37 0a 20 20 7d   n=6 AND o=7.  }
71c0: 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 77 68  .} {}.do_test wh
71d0: 65 72 65 38 2d 35 2e 33 20 7b 0a 20 20 65 78 65  ere8-5.3 {.  exe
71e0: 63 73 71 6c 20 7b 0a 20 20 20 20 49 4e 53 45 52  csql {.    INSER
71f0: 54 20 49 4e 54 4f 20 74 41 20 56 41 4c 55 45 53  T INTO tA VALUES
7200: 28 31 2c 20 32 2c 20 33 2c 20 34 2c 20 35 2c 20  (1, 2, 3, 4, 5, 
7210: 36 2c 20 37 2c 20 38 2c 20 31 2c 20 32 2c 20 33  6, 7, 8, 1, 2, 3
7220: 2c 20 34 2c 20 35 2c 20 36 2c 20 37 2c 20 38 29  , 4, 5, 6, 7, 8)
7230: 3b 20 0a 20 20 20 20 43 52 45 41 54 45 20 55 4e  ; .    CREATE UN
7240: 49 51 55 45 20 49 4e 44 45 58 20 74 41 49 20 4f  IQUE INDEX tAI O
7250: 4e 20 74 41 28 70 29 3b 0a 20 20 20 20 43 52 45  N tA(p);.    CRE
7260: 41 54 45 20 54 41 42 4c 45 20 74 42 28 78 29 3b  ATE TABLE tB(x);
7270: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
7280: 20 74 42 20 56 41 4c 55 45 53 28 27 78 27 29 3b   tB VALUES('x');
7290: 0a 20 20 7d 0a 20 20 65 78 65 63 73 71 6c 20 7b  .  }.  execsql {
72a0: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 78  .    SELECT a, x
72b0: 20 46 52 4f 4d 20 74 41 20 4c 45 46 54 20 4a 4f   FROM tA LEFT JO
72c0: 49 4e 20 74 42 20 4f 4e 20 28 0a 20 20 20 20 20  IN tB ON (.     
72d0: 20 61 3d 31 20 41 4e 44 20 62 3d 32 20 41 4e 44   a=1 AND b=2 AND
72e0: 20 63 3d 33 20 41 4e 44 20 64 3d 34 20 41 4e 44   c=3 AND d=4 AND
72f0: 20 65 3d 35 20 41 4e 44 20 66 3d 36 20 41 4e 44   e=5 AND f=6 AND
7300: 20 67 3d 37 20 41 4e 44 20 68 3d 38 20 41 4e 44   g=7 AND h=8 AND
7310: 0a 20 20 20 20 20 20 69 3d 31 20 41 4e 44 20 6a  .      i=1 AND j
7320: 3d 32 20 41 4e 44 20 6b 3d 33 20 41 4e 44 20 6c  =2 AND k=3 AND l
7330: 3d 34 20 41 4e 44 20 6d 3d 35 20 41 4e 44 20 6e  =4 AND m=5 AND n
7340: 3d 36 20 41 4e 44 20 6f 3d 37 20 41 4e 44 0a 20  =6 AND o=7 AND. 
7350: 20 20 20 20 20 28 70 20 3d 20 31 20 4f 52 20 70       (p = 1 OR p
7360: 20 3d 20 32 20 4f 52 20 70 20 3d 20 33 29 0a 20   = 2 OR p = 3). 
7370: 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 31 20 7b 7d     ).  }.} {1 {}
7380: 7d 0a 0a 23 20 54 68 65 20 4f 52 20 6f 70 74 69  }..# The OR opti
7390: 6d 69 7a 61 74 69 6f 6e 20 61 6e 64 20 57 49 54  mization and WIT
73a0: 48 4f 55 54 20 52 4f 57 49 44 0a 23 0a 64 6f 5f  HOUT ROWID.#.do_
73b0: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 77 68 65  execsql_test whe
73c0: 72 65 38 2d 36 2e 31 20 7b 0a 20 20 43 52 45 41  re8-6.1 {.  CREA
73d0: 54 45 20 54 41 42 4c 45 20 74 36 30 30 28 61 20  TE TABLE t600(a 
73e0: 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 62 29 20  PRIMARY KEY, b) 
73f0: 57 49 54 48 4f 55 54 20 72 6f 77 69 64 3b 0a 20  WITHOUT rowid;. 
7400: 20 43 52 45 41 54 45 20 49 4e 44 45 58 20 74 36   CREATE INDEX t6
7410: 30 30 62 20 4f 4e 20 74 36 30 30 28 62 29 3b 0a  00b ON t600(b);.
7420: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 36    INSERT INTO t6
7430: 30 30 20 56 41 4c 55 45 53 28 27 73 74 61 74 65  00 VALUES('state
7440: 27 2c 27 73 63 72 65 65 6e 27 29 2c 28 27 65 78  ','screen'),('ex
7450: 61 63 74 27 2c 27 64 6f 6c 70 68 69 6e 27 29 2c  act','dolphin'),
7460: 28 27 67 72 65 65 6e 27 2c 27 6d 65 72 63 75 72  ('green','mercur
7470: 79 27 29 3b 0a 20 20 53 45 4c 45 43 54 20 61 2c  y');.  SELECT a,
7480: 20 62 2c 20 27 7c 27 20 46 52 4f 4d 20 74 36 30   b, '|' FROM t60
7490: 30 20 57 48 45 52 45 20 61 3d 3d 27 73 74 61 74  0 WHERE a=='stat
74a0: 65 27 20 4f 52 20 62 3d 27 6d 65 72 63 75 72 79  e' OR b='mercury
74b0: 27 20 4f 52 44 45 52 20 42 59 20 2b 61 3b 0a 7d  ' ORDER BY +a;.}
74c0: 20 7b 67 72 65 65 6e 20 6d 65 72 63 75 72 79 20   {green mercury 
74d0: 7c 20 73 74 61 74 65 20 73 63 72 65 65 6e 20 7c  | state screen |
74e0: 7d 0a 0a 66 69 6e 69 73 68 5f 74 65 73 74 0a     }..finish_test.