/ Hex Artifact Content
Login

Artifact 461ca40265ed996a6305da99bb024b0e41602bb586acf544c08f95922358e49f:


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 69 66 20 7b 5b  ester.tcl..if {[
0270: 70 65 72 6d 75 74 61 74 69 6f 6e 5d 3d 3d 22 73  permutation]=="s
0280: 6f 72 74 65 72 72 65 66 22 7d 20 7b 0a 20 20 66  orterref"} {.  f
0290: 69 6e 69 73 68 5f 74 65 73 74 0a 20 20 72 65 74  inish_test.  ret
02a0: 75 72 6e 0a 7d 0a 0a 23 20 54 65 73 74 20 6f 72  urn.}..# Test or
02b0: 67 61 6e 69 7a 61 74 69 6f 6e 3a 0a 23 0a 23 20  ganization:.#.# 
02c0: 20 20 77 68 65 72 65 38 2d 31 2e 2a 3a 20 54 65    where8-1.*: Te
02d0: 73 74 73 20 74 6f 20 64 65 6d 6f 6e 73 74 72 61  sts to demonstra
02e0: 74 65 20 73 69 6d 70 6c 65 20 63 61 73 65 73 20  te simple cases 
02f0: 77 6f 72 6b 20 77 69 74 68 20 61 20 73 69 6e 67  work with a sing
0300: 6c 65 20 74 61 62 6c 65 0a 23 20 20 20 20 20 20  le table.#      
0310: 20 20 20 20 20 20 20 20 20 69 6e 20 74 68 65 20           in the 
0320: 46 52 4f 4d 20 63 6c 61 75 73 65 2e 0a 23 0a 23  FROM clause..#.#
0330: 20 20 20 77 68 65 72 65 38 2d 32 2e 2a 3a 20 54     where8-2.*: T
0340: 65 73 74 73 20 73 75 72 72 6f 75 6e 64 69 6e 67  ests surrounding
0350: 20 76 69 72 74 75 61 6c 20 74 61 62 6c 65 73 20   virtual tables 
0360: 61 6e 64 20 74 68 65 20 4f 52 20 6f 70 74 69 6d  and the OR optim
0370: 69 7a 61 74 69 6f 6e 2e 0a 23 0a 23 20 20 20 77  ization..#.#   w
0380: 68 65 72 65 38 2d 33 2e 2a 3a 20 54 65 73 74 73  here8-3.*: Tests
0390: 20 77 69 74 68 20 6d 6f 72 65 20 74 68 61 6e 20   with more than 
03a0: 6f 6e 65 20 74 61 62 6c 65 20 69 6e 20 74 68 65  one table in the
03b0: 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e 0a 23 20   FROM clause..# 
03c0: 0a 0a 70 72 6f 63 20 65 78 65 63 73 71 6c 5f 73  ..proc execsql_s
03d0: 74 61 74 75 73 20 7b 73 71 6c 20 7b 64 62 20 64  tatus {sql {db d
03e0: 62 7d 7d 20 7b 0a 20 20 73 65 74 20 72 65 73 75  b}} {.  set resu
03f0: 6c 74 20 5b 75 70 6c 65 76 65 6c 20 24 64 62 20  lt [uplevel $db 
0400: 65 76 61 6c 20 5b 6c 69 73 74 20 24 73 71 6c 5d  eval [list $sql]
0410: 5d 0a 20 20 63 6f 6e 63 61 74 20 24 72 65 73 75  ].  concat $resu
0420: 6c 74 20 5b 64 62 20 73 74 61 74 75 73 20 73 74  lt [db status st
0430: 65 70 5d 20 5b 64 62 20 73 74 61 74 75 73 20 73  ep] [db status s
0440: 6f 72 74 5d 0a 7d 0a 0a 70 72 6f 63 20 65 78 65  ort].}..proc exe
0450: 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 73 71  csql_status2 {sq
0460: 6c 20 7b 64 62 20 64 62 7d 7d 20 7b 0a 20 20 73  l {db db}} {.  s
0470: 65 74 20 3a 3a 73 71 6c 69 74 65 5f 73 65 61 72  et ::sqlite_sear
0480: 63 68 5f 63 6f 75 6e 74 20 30 0a 20 20 73 65 74  ch_count 0.  set
0490: 20 72 65 73 75 6c 74 20 5b 75 70 6c 65 76 65 6c   result [uplevel
04a0: 20 5b 6c 69 73 74 20 65 78 65 63 73 71 6c 5f 73   [list execsql_s
04b0: 74 61 74 75 73 20 24 73 71 6c 20 24 64 62 5d 5d  tatus $sql $db]]
04c0: 0a 20 20 63 6f 6e 63 61 74 20 24 72 65 73 75 6c  .  concat $resul
04d0: 74 20 24 3a 3a 73 71 6c 69 74 65 5f 73 65 61 72  t $::sqlite_sear
04e0: 63 68 5f 63 6f 75 6e 74 0a 7d 0a 0a 64 6f 5f 74  ch_count.}..do_t
04f0: 65 73 74 20 77 68 65 72 65 38 2d 31 2e 31 20 7b  est where8-1.1 {
0500: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
0510: 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 31   CREATE TABLE t1
0520: 28 61 2c 20 62 20 54 45 58 54 2c 20 63 29 3b 0a  (a, b TEXT, c);.
0530: 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58      CREATE INDEX
0540: 20 69 31 20 4f 4e 20 74 31 28 61 29 3b 0a 20 20   i1 ON t1(a);.  
0550: 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20 69    CREATE INDEX i
0560: 32 20 4f 4e 20 74 31 28 62 29 3b 0a 0a 20 20 20  2 ON t1(b);..   
0570: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20   INSERT INTO t1 
0580: 56 41 4c 55 45 53 28 31 2c 20 20 27 6f 6e 65 27  VALUES(1,  'one'
0590: 2c 20 20 20 27 49 27 29 3b 0a 20 20 20 20 49 4e  ,   'I');.    IN
05a0: 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c  SERT INTO t1 VAL
05b0: 55 45 53 28 32 2c 20 20 27 74 77 6f 27 2c 20 20  UES(2,  'two',  
05c0: 20 27 49 49 27 29 3b 0a 20 20 20 20 49 4e 53 45   'II');.    INSE
05d0: 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45  RT INTO t1 VALUE
05e0: 53 28 33 2c 20 20 27 74 68 72 65 65 27 2c 20 27  S(3,  'three', '
05f0: 49 49 49 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  III');.    INSER
0600: 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53  T INTO t1 VALUES
0610: 28 34 2c 20 20 27 66 6f 75 72 27 2c 20 20 27 49  (4,  'four',  'I
0620: 56 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  V');.    INSERT 
0630: 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28 35  INTO t1 VALUES(5
0640: 2c 20 20 27 66 69 76 65 27 2c 20 20 27 56 27 29  ,  'five',  'V')
0650: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
0660: 4f 20 74 31 20 56 41 4c 55 45 53 28 36 2c 20 20  O t1 VALUES(6,  
0670: 27 73 69 78 27 2c 20 20 20 27 56 49 27 29 3b 0a  'six',   'VI');.
0680: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
0690: 74 31 20 56 41 4c 55 45 53 28 37 2c 20 20 27 73  t1 VALUES(7,  's
06a0: 65 76 65 6e 27 2c 20 27 56 49 49 27 29 3b 0a 20  even', 'VII');. 
06b0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
06c0: 31 20 56 41 4c 55 45 53 28 38 2c 20 20 27 65 69  1 VALUES(8,  'ei
06d0: 67 68 74 27 2c 20 27 56 49 49 49 27 29 3b 0a 20  ght', 'VIII');. 
06e0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
06f0: 31 20 56 41 4c 55 45 53 28 39 2c 20 20 27 6e 69  1 VALUES(9,  'ni
0700: 6e 65 27 2c 20 20 27 49 58 27 29 3b 0a 20 20 20  ne',  'IX');.   
0710: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20   INSERT INTO t1 
0720: 56 41 4c 55 45 53 28 31 30 2c 20 27 74 65 6e 27  VALUES(10, 'ten'
0730: 2c 20 20 20 27 58 27 29 3b 0a 20 20 7d 0a 7d 20  ,   'X');.  }.} 
0740: 7b 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72  {}..do_test wher
0750: 65 38 2d 31 2e 32 20 7b 20 0a 20 20 65 78 65 63  e8-1.2 { .  exec
0760: 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 20 53 45  sql_status2 { SE
0770: 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20 57  LECT c FROM t1 W
0780: 48 45 52 45 20 61 20 3d 20 31 20 4f 52 20 62 20  HERE a = 1 OR b 
0790: 3d 20 27 6e 69 6e 65 27 20 7d 0a 7d 20 7b 49 20  = 'nine' }.} {I 
07a0: 49 58 20 30 20 30 20 36 7d 0a 0a 64 6f 5f 74 65  IX 0 0 6}..do_te
07b0: 73 74 20 77 68 65 72 65 38 2d 31 2e 33 20 7b 20  st where8-1.3 { 
07c0: 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75  .  execsql_statu
07d0: 73 32 20 7b 20 53 45 4c 45 43 54 20 63 20 46 52  s2 { SELECT c FR
07e0: 4f 4d 20 74 31 20 57 48 45 52 45 20 61 20 3e 20  OM t1 WHERE a > 
07f0: 38 20 4f 52 20 62 20 3d 20 27 74 77 6f 27 20 7d  8 OR b = 'two' }
0800: 0a 7d 20 7b 49 58 20 58 20 49 49 20 30 20 30 20  .} {IX X II 0 0 
0810: 36 7d 0a 0a 69 66 63 61 70 61 62 6c 65 20 6c 69  6}..ifcapable li
0820: 6b 65 5f 6d 61 74 63 68 5f 62 6c 6f 62 73 20 7b  ke_match_blobs {
0830: 0a 20 20 64 6f 5f 74 65 73 74 20 77 68 65 72 65  .  do_test where
0840: 38 2d 31 2e 34 61 20 7b 20 0a 20 20 20 20 65 78  8-1.4a { .    ex
0850: 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 20  ecsql_status2 { 
0860: 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31  SELECT c FROM t1
0870: 20 57 48 45 52 45 20 61 20 3e 20 38 20 4f 52 20   WHERE a > 8 OR 
0880: 62 20 47 4c 4f 42 20 27 74 2a 27 20 7d 0a 20 20  b GLOB 't*' }.  
0890: 7d 20 7b 49 58 20 58 20 49 49 49 20 49 49 20 30  } {IX X III II 0
08a0: 20 30 20 31 30 7d 0a 20 20 64 6f 5f 74 65 73 74   0 10}.  do_test
08b0: 20 77 68 65 72 65 38 2d 31 2e 35 61 20 7b 20 0a   where8-1.5a { .
08c0: 20 20 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74      execsql_stat
08d0: 75 73 32 20 7b 20 53 45 4c 45 43 54 20 63 20 46  us2 { SELECT c F
08e0: 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 20 3e  ROM t1 WHERE a >
08f0: 20 38 20 4f 52 20 62 20 47 4c 4f 42 20 27 66 2a   8 OR b GLOB 'f*
0900: 27 20 7d 0a 20 20 7d 20 7b 49 58 20 58 20 56 20  ' }.  } {IX X V 
0910: 49 56 20 30 20 30 20 31 30 7d 0a 7d 20 65 6c 73  IV 0 0 10}.} els
0920: 65 20 7b 0a 20 20 64 6f 5f 74 65 73 74 20 77 68  e {.  do_test wh
0930: 65 72 65 38 2d 31 2e 34 62 20 7b 20 0a 20 20 20  ere8-1.4b { .   
0940: 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32   execsql_status2
0950: 20 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d   { SELECT c FROM
0960: 20 74 31 20 57 48 45 52 45 20 61 20 3e 20 38 20   t1 WHERE a > 8 
0970: 4f 52 20 62 20 47 4c 4f 42 20 27 74 2a 27 20 7d  OR b GLOB 't*' }
0980: 0a 20 20 7d 20 7b 49 58 20 58 20 49 49 49 20 49  .  } {IX X III I
0990: 49 20 30 20 30 20 39 7d 0a 20 20 64 6f 5f 74 65  I 0 0 9}.  do_te
09a0: 73 74 20 77 68 65 72 65 38 2d 31 2e 35 20 7b 20  st where8-1.5 { 
09b0: 0a 20 20 20 20 65 78 65 63 73 71 6c 5f 73 74 61  .    execsql_sta
09c0: 74 75 73 32 20 7b 20 53 45 4c 45 43 54 20 63 20  tus2 { SELECT c 
09d0: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 20  FROM t1 WHERE a 
09e0: 3e 20 38 20 4f 52 20 62 20 47 4c 4f 42 20 27 66  > 8 OR b GLOB 'f
09f0: 2a 27 20 7d 0a 20 20 7d 20 7b 49 58 20 58 20 56  *' }.  } {IX X V
0a00: 20 49 56 20 30 20 30 20 39 7d 0a 7d 0a 0a 64 6f   IV 0 0 9}.}..do
0a10: 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e 36  _test where8-1.6
0a20: 20 7b 20 0a 20 20 65 78 65 63 73 71 6c 5f 73 74   { .  execsql_st
0a30: 61 74 75 73 20 7b 20 53 45 4c 45 43 54 20 63 20  atus { SELECT c 
0a40: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 20  FROM t1 WHERE a 
0a50: 3d 20 31 20 4f 52 20 62 20 3d 20 27 74 68 72 65  = 1 OR b = 'thre
0a60: 65 27 20 4f 52 44 45 52 20 42 59 20 72 6f 77 69  e' ORDER BY rowi
0a70: 64 20 7d 0a 7d 20 7b 49 20 49 49 49 20 30 20 31  d }.} {I III 0 1
0a80: 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65  }..do_test where
0a90: 38 2d 31 2e 37 20 7b 20 0a 20 20 65 78 65 63 73  8-1.7 { .  execs
0aa0: 71 6c 5f 73 74 61 74 75 73 20 7b 20 53 45 4c 45  ql_status { SELE
0ab0: 43 54 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45  CT c FROM t1 WHE
0ac0: 52 45 20 61 20 3d 20 31 20 4f 52 20 62 20 3d 20  RE a = 1 OR b = 
0ad0: 27 74 68 72 65 65 27 20 4f 52 44 45 52 20 42 59  'three' ORDER BY
0ae0: 20 61 20 7d 0a 7d 20 7b 49 20 49 49 49 20 30 20   a }.} {I III 0 
0af0: 31 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72  1}..do_test wher
0b00: 65 38 2d 31 2e 38 20 7b 0a 20 20 23 20 31 38 20  e8-1.8 {.  # 18 
0b10: 73 65 61 72 63 68 65 73 2e 20 39 20 6f 6e 20 74  searches. 9 on t
0b20: 68 65 20 69 6e 64 65 78 20 63 75 72 73 6f 72 20  he index cursor 
0b30: 61 6e 64 20 39 20 6f 6e 20 74 68 65 20 74 61 62  and 9 on the tab
0b40: 6c 65 20 63 75 72 73 6f 72 2e 0a 20 20 65 78 65  le cursor..  exe
0b50: 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 20 53  csql_status2 { S
0b60: 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20  ELECT c FROM t1 
0b70: 57 48 45 52 45 20 61 20 3e 20 31 20 41 4e 44 20  WHERE a > 1 AND 
0b80: 63 20 4c 49 4b 45 20 27 49 25 27 20 7d 0a 7d 20  c LIKE 'I%' }.} 
0b90: 7b 49 49 20 49 49 49 20 49 56 20 49 58 20 30 20  {II III IV IX 0 
0ba0: 30 20 31 38 7d 0a 0a 64 6f 5f 74 65 73 74 20 77  0 18}..do_test w
0bb0: 68 65 72 65 38 2d 31 2e 39 20 7b 0a 20 20 65 78  here8-1.9 {.  ex
0bc0: 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 20  ecsql_status2 { 
0bd0: 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31  SELECT c FROM t1
0be0: 20 57 48 45 52 45 20 61 20 3e 3d 20 39 20 4f 52   WHERE a >= 9 OR
0bf0: 20 62 20 3c 3d 20 27 65 69 67 68 74 27 20 7d 0a   b <= 'eight' }.
0c00: 7d 20 7b 49 58 20 58 20 56 49 49 49 20 30 20 30  } {IX X VIII 0 0
0c10: 20 37 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65   7}..do_test whe
0c20: 72 65 38 2d 31 2e 31 30 20 7b 0a 20 20 65 78 65  re8-1.10 {.  exe
0c30: 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 20 0a  csql_status2 { .
0c40: 20 20 20 20 53 45 4c 45 43 54 20 63 20 46 52 4f      SELECT c FRO
0c50: 4d 20 74 31 20 57 48 45 52 45 20 28 61 20 3e 3d  M t1 WHERE (a >=
0c60: 20 39 20 41 4e 44 20 63 20 21 3d 20 27 58 27 29   9 AND c != 'X')
0c70: 20 4f 52 20 62 20 3c 3d 20 27 65 69 67 68 74 27   OR b <= 'eight'
0c80: 20 0a 20 20 7d 0a 7d 20 7b 49 58 20 56 49 49 49   .  }.} {IX VIII
0c90: 20 30 20 30 20 37 7d 0a 0a 64 6f 5f 74 65 73 74   0 0 7}..do_test
0ca0: 20 77 68 65 72 65 38 2d 31 2e 31 31 20 7b 0a 20   where8-1.11 {. 
0cb0: 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32   execsql_status2
0cc0: 20 7b 20 0a 20 20 20 20 53 45 4c 45 43 54 20 63   { .    SELECT c
0cd0: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 28   FROM t1 WHERE (
0ce0: 61 20 3e 3d 20 34 20 41 4e 44 20 61 20 3c 3d 20  a >= 4 AND a <= 
0cf0: 36 29 20 4f 52 20 62 20 3d 20 27 6e 69 6e 65 27  6) OR b = 'nine'
0d00: 20 0a 20 20 7d 0a 7d 20 7b 49 56 20 56 20 56 49   .  }.} {IV V VI
0d10: 20 49 58 20 30 20 30 20 31 30 7d 0a 0a 64 6f 5f   IX 0 0 10}..do_
0d20: 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e 31 32  test where8-1.12
0d30: 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73  .1 {.  execsql_s
0d40: 74 61 74 75 73 32 20 7b 20 0a 20 20 20 20 53 45  tatus2 { .    SE
0d50: 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20 57  LECT c FROM t1 W
0d60: 48 45 52 45 20 61 20 49 4e 28 31 2c 20 32 2c 20  HERE a IN(1, 2, 
0d70: 33 29 20 4f 52 20 61 20 3d 20 35 0a 20 20 7d 0a  3) OR a = 5.  }.
0d80: 7d 20 7b 49 20 49 49 20 49 49 49 20 56 20 30 20  } {I II III V 0 
0d90: 30 20 31 34 7d 0a 0a 64 6f 5f 74 65 73 74 20 77  0 14}..do_test w
0da0: 68 65 72 65 38 2d 31 2e 31 32 2e 32 20 7b 0a 20  here8-1.12.2 {. 
0db0: 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32   execsql_status2
0dc0: 20 7b 20 0a 20 20 20 20 53 45 4c 45 43 54 20 63   { .    SELECT c
0dd0: 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 2b   FROM t1 WHERE +
0de0: 61 20 49 4e 28 31 2c 20 32 2c 20 33 29 20 4f 52  a IN(1, 2, 3) OR
0df0: 20 2b 61 20 3d 20 35 0a 20 20 7d 0a 7d 20 7b 49   +a = 5.  }.} {I
0e00: 20 49 49 20 49 49 49 20 56 20 39 20 30 20 39 7d   II III V 9 0 9}
0e10: 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38  ..do_test where8
0e20: 2d 31 2e 31 33 20 7b 0a 20 20 65 78 65 63 73 71  -1.13 {.  execsq
0e30: 6c 5f 73 74 61 74 75 73 32 20 7b 0a 20 20 20 20  l_status2 {.    
0e40: 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31  SELECT c FROM t1
0e50: 0a 20 20 20 20 57 48 45 52 45 20 61 20 3d 20 32  .    WHERE a = 2
0e60: 20 4f 52 20 62 20 3d 20 27 74 68 72 65 65 27 20   OR b = 'three' 
0e70: 4f 52 20 61 20 3d 20 34 20 4f 52 20 62 20 3d 20  OR a = 4 OR b = 
0e80: 27 66 69 76 65 27 20 4f 52 20 61 20 3d 20 36 0a  'five' OR a = 6.
0e90: 20 20 20 20 4f 52 44 45 52 20 42 59 20 72 6f 77      ORDER BY row
0ea0: 69 64 0a 20 20 7d 0a 7d 20 7b 49 49 20 49 49 49  id.  }.} {II III
0eb0: 20 49 56 20 56 20 56 49 20 30 20 31 20 31 38 7d   IV V VI 0 1 18}
0ec0: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
0ed0: 31 2e 31 34 20 7b 0a 20 20 65 78 65 63 73 71 6c  1.14 {.  execsql
0ee0: 5f 73 74 61 74 75 73 32 20 7b 0a 20 20 20 20 53  _status2 {.    S
0ef0: 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 0a  ELECT c FROM t1.
0f00: 20 20 20 20 57 48 45 52 45 20 0a 20 20 20 20 20      WHERE .     
0f10: 20 61 20 3d 20 32 20 4f 52 20 62 20 3d 20 27 74   a = 2 OR b = 't
0f20: 68 72 65 65 27 20 4f 52 20 61 20 3d 20 34 20 4f  hree' OR a = 4 O
0f30: 52 20 62 20 3d 20 27 66 69 76 65 27 20 4f 52 20  R b = 'five' OR 
0f40: 61 20 3d 20 36 20 4f 52 0a 20 20 20 20 20 20 62  a = 6 OR.      b
0f50: 20 3d 20 27 73 65 76 65 6e 27 20 4f 52 20 61 20   = 'seven' OR a 
0f60: 3d 20 38 20 4f 52 20 62 20 3d 20 27 6e 69 6e 65  = 8 OR b = 'nine
0f70: 27 20 4f 52 20 61 20 3d 20 31 30 0a 20 20 20 20  ' OR a = 10.    
0f80: 4f 52 44 45 52 20 42 59 20 72 6f 77 69 64 0a 20  ORDER BY rowid. 
0f90: 20 7d 0a 7d 20 7b 49 49 20 49 49 49 20 49 56 20   }.} {II III IV 
0fa0: 56 20 56 49 20 56 49 49 20 56 49 49 49 20 49 58  V VI VII VIII IX
0fb0: 20 58 20 30 20 31 20 33 33 7d 0a 0a 64 6f 5f 74   X 0 1 33}..do_t
0fc0: 65 73 74 20 77 68 65 72 65 38 2d 31 2e 31 35 20  est where8-1.15 
0fd0: 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74  {.  execsql_stat
0fe0: 75 73 32 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  us2 {.    SELECT
0ff0: 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45   c FROM t1 WHERE
1000: 20 0a 20 20 20 20 20 20 61 20 42 45 54 57 45 45   .      a BETWEE
1010: 4e 20 32 20 41 4e 44 20 34 20 4f 52 20 62 20 3d  N 2 AND 4 OR b =
1020: 20 27 6e 69 6e 65 27 0a 20 20 20 20 4f 52 44 45   'nine'.    ORDE
1030: 52 20 42 59 20 72 6f 77 69 64 0a 20 20 7d 0a 7d  R BY rowid.  }.}
1040: 20 7b 49 49 20 49 49 49 20 49 56 20 49 58 20 30   {II III IV IX 0
1050: 20 31 20 31 32 7d 0a 0a 0a 23 2d 2d 2d 2d 2d 2d   1 12}...#------
1060: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1070: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1080: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10a0: 2d 2d 2d 2d 0a 23 20 54 65 73 74 73 20 77 68 65  ----.# Tests whe
10b0: 72 65 38 2d 32 2e 2a 3a 20 56 69 72 74 75 61 6c  re8-2.*: Virtual
10c0: 20 74 61 62 6c 65 73 0a 23 20 0a 0a 69 66 20 30   tables.# ..if 0
10d0: 20 7b 0a 69 66 63 61 70 61 62 6c 65 20 76 74 61   {.ifcapable vta
10e0: 62 20 7b 0a 20 20 23 20 52 65 67 69 73 74 65 72  b {.  # Register
10f0: 20 74 68 65 20 27 65 63 68 6f 27 20 6d 6f 64 75   the 'echo' modu
1100: 6c 65 20 75 73 65 64 20 66 6f 72 20 74 65 73 74  le used for test
1110: 69 6e 67 20 76 69 72 74 75 61 6c 20 74 61 62 6c  ing virtual tabl
1120: 65 73 2e 0a 20 20 23 0a 20 20 72 65 67 69 73 74  es..  #.  regist
1130: 65 72 5f 65 63 68 6f 5f 6d 6f 64 75 6c 65 20 5b  er_echo_module [
1140: 73 71 6c 69 74 65 33 5f 63 6f 6e 6e 65 63 74 69  sqlite3_connecti
1150: 6f 6e 5f 70 6f 69 6e 74 65 72 20 64 62 5d 0a 0a  on_pointer db]..
1160: 20 20 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38    do_test where8
1170: 2d 32 2e 31 20 7b 0a 20 20 20 20 65 78 65 63 73  -2.1 {.    execs
1180: 71 6c 20 7b 0a 20 20 20 20 20 20 43 52 45 41 54  ql {.      CREAT
1190: 45 20 56 49 52 54 55 41 4c 20 54 41 42 4c 45 20  E VIRTUAL TABLE 
11a0: 65 31 20 55 53 49 4e 47 20 65 63 68 6f 28 74 31  e1 USING echo(t1
11b0: 29 3b 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20  );.      SELECT 
11c0: 62 20 46 52 4f 4d 20 65 31 3b 0a 20 20 20 20 7d  b FROM e1;.    }
11d0: 0a 20 20 7d 20 7b 6f 6e 65 20 74 77 6f 20 74 68  .  } {one two th
11e0: 72 65 65 20 66 6f 75 72 20 66 69 76 65 20 73 69  ree four five si
11f0: 78 20 73 65 76 65 6e 20 65 69 67 68 74 20 6e 69  x seven eight ni
1200: 6e 65 20 74 65 6e 7d 0a 0a 20 20 64 6f 5f 74 65  ne ten}..  do_te
1210: 73 74 20 77 68 65 72 65 38 2d 32 2e 32 2e 31 20  st where8-2.2.1 
1220: 7b 0a 20 20 20 20 73 65 74 20 65 63 68 6f 5f 6d  {.    set echo_m
1230: 6f 64 75 6c 65 20 22 22 0a 20 20 20 20 65 78 65  odule "".    exe
1240: 63 73 71 6c 20 7b 0a 20 20 20 20 20 20 53 45 4c  csql {.      SEL
1250: 45 43 54 20 63 20 46 52 4f 4d 20 65 31 20 57 48  ECT c FROM e1 WH
1260: 45 52 45 20 61 3d 31 20 4f 52 20 62 3d 27 74 68  ERE a=1 OR b='th
1270: 72 65 65 27 3b 0a 20 20 20 20 7d 0a 20 20 7d 20  ree';.    }.  } 
1280: 7b 49 20 49 49 49 7d 0a 20 20 64 6f 5f 74 65 73  {I III}.  do_tes
1290: 74 20 77 68 65 72 65 38 2d 32 2e 32 2e 32 20 7b  t where8-2.2.2 {
12a0: 0a 20 20 20 20 73 65 74 20 65 63 68 6f 5f 6d 6f  .    set echo_mo
12b0: 64 75 6c 65 0a 20 20 7d 20 7b 54 4f 44 4f 3a 20  dule.  } {TODO: 
12c0: 57 68 61 74 20 73 68 6f 75 6c 64 20 74 68 69 73  What should this
12d0: 20 62 65 3f 7d 0a 7d 0a 7d 0a 0a 23 2d 2d 2d 2d   be?}.}.}..#----
12e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1300: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1320: 2d 2d 2d 2d 2d 2d 0a 23 20 54 65 73 74 73 20 77  ------.# Tests w
1330: 68 65 72 65 38 2d 33 2e 2a 3a 20 43 61 73 65 73  here8-3.*: Cases
1340: 20 77 69 74 68 20 6d 75 6c 74 69 70 6c 65 20 74   with multiple t
1350: 61 62 6c 65 73 20 69 6e 20 74 68 65 20 46 52 4f  ables in the FRO
1360: 4d 20 63 6c 61 75 73 65 2e 0a 23 20 0a 64 6f 5f  M clause..# .do_
1370: 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e 31 20  test where8-3.1 
1380: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
1390: 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 74    CREATE TABLE t
13a0: 32 28 64 2c 20 65 2c 20 66 29 3b 0a 20 20 20 20  2(d, e, f);.    
13b0: 43 52 45 41 54 45 20 49 4e 44 45 58 20 69 33 20  CREATE INDEX i3 
13c0: 4f 4e 20 74 32 28 64 29 3b 0a 20 20 20 20 43 52  ON t2(d);.    CR
13d0: 45 41 54 45 20 49 4e 44 45 58 20 69 34 20 4f 4e  EATE INDEX i4 ON
13e0: 20 74 32 28 65 29 3b 0a 0a 20 20 20 20 49 4e 53   t2(e);..    INS
13f0: 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55  ERT INTO t2 VALU
1400: 45 53 28 31 2c 20 20 4e 55 4c 4c 2c 20 20 20 20  ES(1,  NULL,    
1410: 20 20 20 20 20 27 49 27 29 3b 0a 20 20 20 20 49       'I');.    I
1420: 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41  NSERT INTO t2 VA
1430: 4c 55 45 53 28 32 2c 20 20 27 66 6f 75 72 27 2c  LUES(2,  'four',
1440: 20 20 20 20 20 20 20 27 49 56 27 29 3b 0a 20 20         'IV');.  
1450: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32    INSERT INTO t2
1460: 20 56 41 4c 55 45 53 28 33 2c 20 20 4e 55 4c 4c   VALUES(3,  NULL
1470: 2c 20 20 20 20 20 20 20 20 20 27 49 58 27 29 3b  ,         'IX');
1480: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
1490: 20 74 32 20 56 41 4c 55 45 53 28 34 2c 20 20 27   t2 VALUES(4,  '
14a0: 73 69 78 74 65 65 6e 27 2c 20 20 20 20 27 58 56  sixteen',    'XV
14b0: 49 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  I');.    INSERT 
14c0: 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28 35  INTO t2 VALUES(5
14d0: 2c 20 20 4e 55 4c 4c 2c 20 20 20 20 20 20 20 20  ,  NULL,        
14e0: 20 27 58 58 56 27 29 3b 0a 20 20 20 20 49 4e 53   'XXV');.    INS
14f0: 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55  ERT INTO t2 VALU
1500: 45 53 28 36 2c 20 20 27 74 68 69 72 74 79 73 69  ES(6,  'thirtysi
1510: 78 27 2c 20 20 27 58 58 58 56 49 27 29 3b 0a 20  x',  'XXXVI');. 
1520: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
1530: 32 20 56 41 4c 55 45 53 28 37 2c 20 20 27 66 6f  2 VALUES(7,  'fo
1540: 72 74 79 6e 69 6e 65 27 2c 20 20 27 58 4c 49 58  rtynine',  'XLIX
1550: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
1560: 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28 38 2c  NTO t2 VALUES(8,
1570: 20 20 27 73 69 78 74 79 65 69 67 68 74 27 2c 20    'sixtyeight', 
1580: 27 4c 58 49 56 27 29 3b 0a 20 20 20 20 49 4e 53  'LXIV');.    INS
1590: 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55  ERT INTO t2 VALU
15a0: 45 53 28 39 2c 20 20 27 65 69 67 68 74 79 6f 6e  ES(9,  'eightyon
15b0: 65 27 2c 20 20 27 4c 58 58 58 49 58 27 29 3b 0a  e',  'LXXXIX');.
15c0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
15d0: 74 32 20 56 41 4c 55 45 53 28 31 30 2c 20 4e 55  t2 VALUES(10, NU
15e0: 4c 4c 2c 20 20 20 20 20 20 20 20 20 27 43 27 29  LL,         'C')
15f0: 3b 0a 20 20 7d 0a 7d 20 7b 7d 0a 0a 64 6f 5f 74  ;.  }.} {}..do_t
1600: 65 73 74 20 77 68 65 72 65 38 2d 33 2e 32 20 7b  est where8-3.2 {
1610: 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75  .  execsql_statu
1620: 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  s {.    SELECT a
1630: 2c 20 64 20 46 52 4f 4d 20 74 31 2c 20 74 32 20  , d FROM t1, t2 
1640: 57 48 45 52 45 20 62 3d 65 0a 20 20 7d 0a 7d 20  WHERE b=e.  }.} 
1650: 7b 34 20 32 20 39 20 30 7d 0a 0a 64 6f 5f 74 65  {4 2 9 0}..do_te
1660: 73 74 20 77 68 65 72 65 38 2d 33 2e 33 20 7b 0a  st where8-3.3 {.
1670: 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73    execsql_status
1680: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
1690: 20 64 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 57   d FROM t1, t2 W
16a0: 48 45 52 45 20 28 61 20 3d 20 32 20 4f 52 20 61  HERE (a = 2 OR a
16b0: 20 3d 20 33 29 20 41 4e 44 20 64 20 3d 20 36 0a   = 3) AND d = 6.
16c0: 20 20 7d 0a 7d 20 7b 32 20 36 20 33 20 36 20 30    }.} {2 6 3 6 0
16d0: 20 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65   0}..do_test whe
16e0: 72 65 38 2d 33 2e 34 20 7b 0a 20 20 65 78 65 63  re8-3.4 {.  exec
16f0: 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20  sql_status {.   
1700: 20 53 45 4c 45 43 54 20 61 2c 20 64 20 46 52 4f   SELECT a, d FRO
1710: 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 28  M t1, t2 WHERE (
1720: 61 20 3d 20 32 20 4f 52 20 61 20 3d 20 33 29 20  a = 2 OR a = 3) 
1730: 41 4e 44 20 64 20 3d 20 61 0a 20 20 7d 0a 7d 20  AND d = a.  }.} 
1740: 7b 32 20 32 20 33 20 33 20 30 20 30 7d 0a 0a 64  {2 2 3 3 0 0}..d
1750: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e  o_test where8-3.
1760: 35 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74  5 {.  execsql_st
1770: 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45 43  atus {.    SELEC
1780: 54 20 61 2c 20 64 20 46 52 4f 4d 20 74 31 2c 20  T a, d FROM t1, 
1790: 74 32 20 57 48 45 52 45 20 28 61 20 3d 20 32 20  t2 WHERE (a = 2 
17a0: 4f 52 20 61 20 3d 20 33 29 20 41 4e 44 20 28 64  OR a = 3) AND (d
17b0: 20 3d 20 2b 61 20 4f 52 20 65 20 3d 20 27 73 69   = +a OR e = 'si
17c0: 78 74 65 65 6e 27 29 0a 20 20 20 20 20 4f 52 44  xteen').     ORD
17d0: 45 52 20 42 59 20 2b 61 2c 20 2b 64 3b 0a 20 20  ER BY +a, +d;.  
17e0: 7d 0a 7d 20 7b 32 20 32 20 32 20 34 20 33 20 33  }.} {2 2 2 4 3 3
17f0: 20 33 20 34 20 30 20 31 7d 0a 0a 64 6f 5f 74 65   3 4 0 1}..do_te
1800: 73 74 20 77 68 65 72 65 38 2d 33 2e 36 20 7b 0a  st where8-3.6 {.
1810: 20 20 23 20 54 68 65 20 66 69 72 73 74 20 70 61    # The first pa
1820: 72 74 20 6f 66 20 74 68 65 20 57 48 45 52 45 20  rt of the WHERE 
1830: 63 6c 61 75 73 65 20 69 6e 20 74 68 69 73 20 71  clause in this q
1840: 75 65 72 79 2c 20 28 61 3d 32 20 4f 52 20 61 3d  uery, (a=2 OR a=
1850: 33 29 20 69 73 0a 20 20 23 20 74 72 61 6e 73 66  3) is.  # transf
1860: 6f 72 6d 65 64 20 69 6e 74 6f 20 22 61 20 49 4e  ormed into "a IN
1870: 20 28 32 2c 20 33 29 22 2e 20 54 68 69 73 20 69   (2, 3)". This i
1880: 73 20 77 68 79 20 74 68 65 20 73 6f 72 74 20 69  s why the sort i
1890: 73 20 72 65 71 75 69 72 65 64 2e 0a 20 20 23 0a  s required..  #.
18a0: 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73    execsql_status
18b0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
18c0: 20 64 20 0a 20 20 20 20 46 52 4f 4d 20 74 31 2c   d .    FROM t1,
18d0: 20 74 32 20 0a 20 20 20 20 57 48 45 52 45 20 28   t2 .    WHERE (
18e0: 61 20 3d 20 32 20 4f 52 20 61 20 3d 20 33 29 20  a = 2 OR a = 3) 
18f0: 41 4e 44 20 28 64 20 3d 20 2b 61 20 4f 52 20 65  AND (d = +a OR e
1900: 20 3d 20 27 73 69 78 74 65 65 6e 27 29 0a 20 20   = 'sixteen').  
1910: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1920: 77 69 64 0a 20 20 7d 0a 7d 20 7b 32 20 32 20 32  wid.  }.} {2 2 2
1930: 20 34 20 33 20 33 20 33 20 34 20 30 20 31 7d 0a   4 3 3 3 4 0 1}.
1940: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33  do_test where8-3
1950: 2e 37 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73  .7 {.  execsql_s
1960: 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45  tatus {.    SELE
1970: 43 54 20 61 2c 20 64 20 0a 20 20 20 20 46 52 4f  CT a, d .    FRO
1980: 4d 20 74 31 2c 20 74 32 20 0a 20 20 20 20 57 48  M t1, t2 .    WH
1990: 45 52 45 20 61 20 3d 20 32 20 41 4e 44 20 28 64  ERE a = 2 AND (d
19a0: 20 3d 20 61 20 4f 52 20 65 20 3d 20 27 73 69 78   = a OR e = 'six
19b0: 74 65 65 6e 27 29 0a 20 20 20 20 4f 52 44 45 52  teen').    ORDER
19c0: 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
19d0: 0a 7d 20 7b 2f 32 20 32 20 32 20 34 20 30 20 5b  .} {/2 2 2 4 0 [
19e0: 30 31 5d 2f 7d 0a 64 6f 5f 74 65 73 74 20 77 68  01]/}.do_test wh
19f0: 65 72 65 38 2d 33 2e 38 20 7b 0a 20 20 65 78 65  ere8-3.8 {.  exe
1a00: 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20  csql_status {.  
1a10: 20 20 53 45 4c 45 43 54 20 61 2c 20 64 20 0a 20    SELECT a, d . 
1a20: 20 20 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 0a     FROM t1, t2 .
1a30: 20 20 20 20 57 48 45 52 45 20 28 61 20 3d 20 32      WHERE (a = 2
1a40: 20 4f 52 20 62 20 3d 20 27 74 68 72 65 65 27 29   OR b = 'three')
1a50: 20 41 4e 44 20 28 64 20 3d 20 61 20 4f 52 20 65   AND (d = a OR e
1a60: 20 3d 20 27 73 69 78 74 65 65 6e 27 29 0a 20 20   = 'sixteen').  
1a70: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1a80: 77 69 64 0a 20 20 7d 0a 7d 20 7b 32 20 32 20 32  wid.  }.} {2 2 2
1a90: 20 34 20 33 20 33 20 33 20 34 20 30 20 31 7d 0a   4 3 3 3 4 0 1}.
1aa0: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
1ab0: 33 2e 39 20 7b 0a 20 20 23 20 54 68 65 20 22 4f  3.9 {.  # The "O
1ac0: 52 20 63 20 3d 20 27 49 58 27 22 20 74 65 72 6d  R c = 'IX'" term
1ad0: 20 66 6f 72 63 65 73 20 61 20 6c 69 6e 65 61 72   forces a linear
1ae0: 20 73 63 61 6e 2e 0a 20 20 65 78 65 63 73 71 6c   scan..  execsql
1af0: 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45  _status {.    SE
1b00: 4c 45 43 54 20 61 2c 20 64 20 0a 20 20 20 20 46  LECT a, d .    F
1b10: 52 4f 4d 20 74 31 2c 20 74 32 20 0a 20 20 20 20  ROM t1, t2 .    
1b20: 57 48 45 52 45 20 28 61 20 3d 20 32 20 4f 52 20  WHERE (a = 2 OR 
1b30: 62 20 3d 20 27 74 68 72 65 65 27 20 4f 52 20 63  b = 'three' OR c
1b40: 20 3d 20 27 49 58 27 29 20 41 4e 44 20 28 64 20   = 'IX') AND (d 
1b50: 3d 20 61 20 4f 52 20 65 20 3d 20 27 73 69 78 74  = a OR e = 'sixt
1b60: 65 65 6e 27 29 0a 20 20 20 20 4f 52 44 45 52 20  een').    ORDER 
1b70: 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
1b80: 7d 20 7b 32 20 32 20 32 20 34 20 33 20 33 20 33  } {2 2 2 4 3 3 3
1b90: 20 34 20 39 20 39 20 39 20 34 20 39 20 30 7d 0a   4 9 9 9 4 9 0}.
1ba0: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
1bb0: 33 2e 31 30 20 7b 0a 20 20 65 78 65 63 73 71 6c  3.10 {.  execsql
1bc0: 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45  _status {.    SE
1bd0: 4c 45 43 54 20 64 20 46 52 4f 4d 20 74 32 20 57  LECT d FROM t2 W
1be0: 48 45 52 45 20 65 20 49 53 20 4e 55 4c 4c 20 4f  HERE e IS NULL O
1bf0: 52 20 65 20 3d 20 27 66 6f 75 72 27 0a 20 20 7d  R e = 'four'.  }
1c00: 0a 7d 20 7b 31 20 33 20 35 20 31 30 20 32 20 30  .} {1 3 5 10 2 0
1c10: 20 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65   0}..do_test whe
1c20: 72 65 38 2d 33 2e 31 31 20 7b 0a 20 20 65 78 65  re8-3.11 {.  exe
1c30: 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20  csql_status {.  
1c40: 20 20 53 45 4c 45 43 54 20 61 2c 20 64 20 46 52    SELECT a, d FR
1c50: 4f 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20  OM t1, t2 WHERE 
1c60: 28 61 3d 64 20 4f 52 20 62 3d 65 29 20 41 4e 44  (a=d OR b=e) AND
1c70: 20 61 3c 35 20 4f 52 44 45 52 20 42 59 20 61 0a   a<5 ORDER BY a.
1c80: 20 20 7d 0a 7d 20 7b 31 20 31 20 32 20 32 20 33    }.} {1 1 2 2 3
1c90: 20 33 20 34 20 32 20 34 20 34 20 30 20 30 7d 0a   3 4 2 4 4 0 0}.
1ca0: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33  do_test where8-3
1cb0: 2e 31 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f  .12 {.  execsql_
1cc0: 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c  status {.    SEL
1cd0: 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74 31  ECT a, d FROM t1
1ce0: 2c 20 74 32 20 57 48 45 52 45 20 28 61 3d 64 20  , t2 WHERE (a=d 
1cf0: 4f 52 20 62 3d 65 29 20 41 4e 44 20 2b 61 3c 35  OR b=e) AND +a<5
1d00: 20 4f 52 44 45 52 20 42 59 20 61 0a 20 20 7d 0a   ORDER BY a.  }.
1d10: 7d 20 7b 31 20 31 20 32 20 32 20 33 20 33 20 34  } {1 1 2 2 3 3 4
1d20: 20 32 20 34 20 34 20 39 20 30 7d 0a 64 6f 5f 74   2 4 4 9 0}.do_t
1d30: 65 73 74 20 77 68 65 72 65 38 2d 33 2e 31 33 20  est where8-3.13 
1d40: 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74  {.  execsql_stat
1d50: 75 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  us {.    SELECT 
1d60: 61 2c 20 64 20 46 52 4f 4d 20 74 31 2c 20 74 32  a, d FROM t1, t2
1d70: 20 57 48 45 52 45 20 28 61 3d 64 20 4f 52 20 62   WHERE (a=d OR b
1d80: 3d 65 29 20 41 4e 44 20 2b 61 3c 35 0a 20 20 7d  =e) AND +a<5.  }
1d90: 0a 7d 20 7b 31 20 31 20 32 20 32 20 33 20 33 20  .} {1 1 2 2 3 3 
1da0: 34 20 32 20 34 20 34 20 39 20 30 7d 0a 0a 64 6f  4 2 4 4 9 0}..do
1db0: 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e 31  _test where8-3.1
1dc0: 34 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74  4 {.  execsql_st
1dd0: 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45 43  atus {.    SELEC
1de0: 54 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52  T c FROM t1 WHER
1df0: 45 20 61 20 3e 20 28 53 45 4c 45 43 54 20 64 20  E a > (SELECT d 
1e00: 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 65 20  FROM t2 WHERE e 
1e10: 3d 20 62 29 20 4f 52 20 61 20 3d 20 35 0a 20 20  = b) OR a = 5.  
1e20: 7d 0a 7d 20 7b 49 56 20 56 20 39 20 30 7d 0a 0a  }.} {IV V 9 0}..
1e30: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33  do_test where8-3
1e40: 2e 31 35 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f  .15 {.  execsql_
1e50: 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c  status {.    SEL
1e60: 45 43 54 20 63 20 46 52 4f 4d 20 74 31 2c 20 74  ECT c FROM t1, t
1e70: 32 20 57 48 45 52 45 20 61 20 42 45 54 57 45 45  2 WHERE a BETWEE
1e80: 4e 20 31 20 41 4e 44 20 32 20 4f 52 20 61 20 3d  N 1 AND 2 OR a =
1e90: 20 28 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20   (.      SELECT 
1ea0: 73 75 6d 28 65 20 49 53 20 4e 55 4c 4c 29 20 46  sum(e IS NULL) F
1eb0: 52 4f 4d 20 74 32 20 41 53 20 69 6e 6e 65 72 20  ROM t2 AS inner 
1ec0: 57 48 45 52 45 20 74 32 2e 64 3e 69 6e 6e 65 72  WHERE t2.d>inner
1ed0: 2e 64 0a 20 20 20 20 29 0a 20 20 20 20 4f 52 44  .d.    ).    ORD
1ee0: 45 52 20 42 59 20 63 0a 20 20 7d 0a 7d 20 7b 49  ER BY c.  }.} {I
1ef0: 20 49 20 49 20 49 20 49 20 49 20 49 20 49 20 49   I I I I I I I I
1f00: 20 49 20 49 49 20 49 49 20 49 49 20 49 49 20 49   I II II II II I
1f10: 49 20 49 49 20 49 49 20 49 49 20 49 49 20 49 49  I II II II II II
1f20: 20 49 49 49 20 49 49 49 20 49 49 49 20 49 49 49   III III III III
1f30: 20 49 49 49 20 39 20 31 7d 0a 0a 0a 64 6f 5f 74   III 9 1}...do_t
1f40: 65 73 74 20 77 68 65 72 65 38 2d 33 2e 32 31 20  est where8-3.21 
1f50: 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74  {.  execsql_stat
1f60: 75 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  us {.    SELECT 
1f70: 61 2c 20 64 20 46 52 4f 4d 20 74 31 2c 20 28 74  a, d FROM t1, (t
1f80: 32 29 20 57 48 45 52 45 20 28 61 3d 64 20 4f 52  2) WHERE (a=d OR
1f90: 20 62 3d 65 29 20 41 4e 44 20 61 3c 35 20 4f 52   b=e) AND a<5 OR
1fa0: 44 45 52 20 42 59 20 61 0a 20 20 7d 0a 7d 20 7b  DER BY a.  }.} {
1fb0: 31 20 31 20 32 20 32 20 33 20 33 20 34 20 32 20  1 1 2 2 3 3 4 2 
1fc0: 34 20 34 20 30 20 30 7d 0a 64 6f 5f 74 65 73 74  4 4 0 0}.do_test
1fd0: 20 77 68 65 72 65 38 2d 33 2e 32 31 2e 31 20 7b   where8-3.21.1 {
1fe0: 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75  .  execsql_statu
1ff0: 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  s {.    SELECT a
2000: 2c 20 64 20 46 52 4f 4d 20 74 31 2c 20 28 28 74  , d FROM t1, ((t
2010: 32 29 29 20 41 53 20 74 33 20 57 48 45 52 45 20  2)) AS t3 WHERE 
2020: 28 61 3d 64 20 4f 52 20 62 3d 65 29 20 41 4e 44  (a=d OR b=e) AND
2030: 20 61 3c 35 20 4f 52 44 45 52 20 42 59 20 61 0a   a<5 ORDER BY a.
2040: 20 20 7d 0a 7d 20 7b 31 20 31 20 32 20 32 20 33    }.} {1 1 2 2 3
2050: 20 33 20 34 20 32 20 34 20 34 20 30 20 30 7d 0a   3 4 2 4 4 0 0}.
2060: 69 66 20 7b 5b 70 65 72 6d 75 74 61 74 69 6f 6e  if {[permutation
2070: 5d 20 21 3d 20 22 6e 6f 5f 6f 70 74 69 6d 69 7a  ] != "no_optimiz
2080: 61 74 69 6f 6e 22 7d 20 7b 0a 64 6f 5f 74 65 73  ation"} {.do_tes
2090: 74 20 77 68 65 72 65 38 2d 33 2e 32 31 2e 32 20  t where8-3.21.2 
20a0: 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74  {.  execsql_stat
20b0: 75 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  us {.    SELECT 
20c0: 61 2c 20 64 20 46 52 4f 4d 20 74 31 2c 20 28 28  a, d FROM t1, ((
20d0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32  SELECT * FROM t2
20e0: 29 29 20 41 53 20 74 33 20 57 48 45 52 45 20 28  )) AS t3 WHERE (
20f0: 61 3d 64 20 4f 52 20 62 3d 65 29 20 41 4e 44 20  a=d OR b=e) AND 
2100: 61 3c 35 20 4f 52 44 45 52 20 42 59 20 61 0a 20  a<5 ORDER BY a. 
2110: 20 7d 0a 7d 20 7b 31 20 31 20 32 20 32 20 33 20   }.} {1 1 2 2 3 
2120: 33 20 34 20 32 20 34 20 34 20 30 20 30 7d 0a 7d  3 4 2 4 4 0 0}.}
2130: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
2140: 33 2e 32 32 20 7b 0a 20 20 65 78 65 63 73 71 6c  3.22 {.  execsql
2150: 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45  _status {.    SE
2160: 4c 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 28  LECT a, d FROM (
2170: 28 28 28 28 28 74 31 29 29 29 2c 20 28 28 28 74  (((((t1))), (((t
2180: 32 29 29 29 29 29 29 0a 20 20 20 20 20 57 48 45  2)))))).     WHE
2190: 52 45 20 28 61 3d 64 20 4f 52 20 62 3d 65 29 20  RE (a=d OR b=e) 
21a0: 41 4e 44 20 61 3c 35 20 4f 52 44 45 52 20 42 59  AND a<5 ORDER BY
21b0: 20 61 0a 20 20 7d 0a 7d 20 7b 31 20 31 20 32 20   a.  }.} {1 1 2 
21c0: 32 20 33 20 33 20 34 20 32 20 34 20 34 20 30 20  2 3 3 4 2 4 4 0 
21d0: 30 7d 0a 69 66 20 7b 5b 70 65 72 6d 75 74 61 74  0}.if {[permutat
21e0: 69 6f 6e 5d 20 21 3d 20 22 6e 6f 5f 6f 70 74 69  ion] != "no_opti
21f0: 6d 69 7a 61 74 69 6f 6e 22 7d 20 7b 0a 64 6f 5f  mization"} {.do_
2200: 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e 32 33  test where8-3.23
2210: 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61   {.  execsql_sta
2220: 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  tus {.    SELECT
2230: 20 2a 20 46 52 4f 4d 20 28 28 53 45 4c 45 43 54   * FROM ((SELECT
2240: 20 2a 20 46 52 4f 4d 20 74 32 29 29 20 41 53 20   * FROM t2)) AS 
2250: 74 33 3b 0a 20 20 7d 0a 7d 20 7b 31 20 7b 7d 20  t3;.  }.} {1 {} 
2260: 49 20 32 20 66 6f 75 72 20 49 56 20 33 20 7b 7d  I 2 four IV 3 {}
2270: 20 49 58 20 34 20 73 69 78 74 65 65 6e 20 58 56   IX 4 sixteen XV
2280: 49 20 35 20 7b 7d 20 58 58 56 20 36 20 74 68 69  I 5 {} XXV 6 thi
2290: 72 74 79 73 69 78 20 58 58 58 56 49 20 37 20 66  rtysix XXXVI 7 f
22a0: 6f 72 74 79 6e 69 6e 65 20 58 4c 49 58 20 38 20  ortynine XLIX 8 
22b0: 73 69 78 74 79 65 69 67 68 74 20 4c 58 49 56 20  sixtyeight LXIV 
22c0: 39 20 65 69 67 68 74 79 6f 6e 65 20 4c 58 58 58  9 eightyone LXXX
22d0: 49 58 20 31 30 20 7b 7d 20 43 20 39 20 30 7d 0a  IX 10 {} C 9 0}.
22e0: 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  }..#------------
22f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2300: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54 68  -----------.# Th
2330: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74  e following test
2340: 73 20 2d 20 77 68 65 72 65 38 2d 34 2e 2a 20 2d  s - where8-4.* -
2350: 20 76 65 72 69 66 79 20 74 68 61 74 20 61 64 64   verify that add
2360: 69 6e 67 20 6f 72 20 72 65 6d 6f 76 69 6e 67 20  ing or removing 
2370: 0a 23 20 69 6e 64 65 78 65 73 20 64 6f 65 73 20  .# indexes does 
2380: 6e 6f 74 20 63 68 61 6e 67 65 20 74 68 65 20 72  not change the r
2390: 65 73 75 6c 74 73 20 72 65 74 75 72 6e 65 64 20  esults returned 
23a0: 62 79 20 76 61 72 69 6f 75 73 20 71 75 65 72 69  by various queri
23b0: 65 73 2e 0a 23 0a 64 6f 5f 74 65 73 74 20 77 68  es..#.do_test wh
23c0: 65 72 65 38 2d 34 2e 31 20 7b 0a 20 20 65 78 65  ere8-4.1 {.  exe
23d0: 63 73 71 6c 20 7b 0a 20 20 20 20 42 45 47 49 4e  csql {.    BEGIN
23e0: 3b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42  ;.    CREATE TAB
23f0: 4c 45 20 74 33 28 61 20 49 4e 54 45 47 45 52 2c  LE t3(a INTEGER,
2400: 20 62 20 52 45 41 4c 2c 20 63 20 54 45 58 54 29   b REAL, c TEXT)
2410: 3b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42  ;.    CREATE TAB
2420: 4c 45 20 74 34 28 66 20 49 4e 54 45 47 45 52 2c  LE t4(f INTEGER,
2430: 20 67 20 52 45 41 4c 2c 20 68 20 54 45 58 54 29   g REAL, h TEXT)
2440: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
2450: 4f 20 74 33 20 56 41 4c 55 45 53 28 27 68 69 6c  O t3 VALUES('hil
2460: 6c 73 27 2c 20 4e 55 4c 4c 2c 20 31 34 31 35 39  ls', NULL, 14159
2470: 32 36 35 33 35 29 3b 0a 20 20 20 20 49 4e 53 45  26535);.    INSE
2480: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
2490: 53 28 27 61 6e 64 27 2c 20 27 6f 66 27 2c 20 4e  S('and', 'of', N
24a0: 55 4c 4c 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ULL);.    INSERT
24b0: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
24c0: 27 68 61 76 65 27 2c 20 27 74 6f 77 65 72 69 6e  'have', 'towerin
24d0: 67 27 2c 20 35 33 35 39 34 2e 30 38 31 32 38 29  g', 53594.08128)
24e0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
24f0: 4f 20 74 33 20 56 41 4c 55 45 53 28 4e 55 4c 4c  O t3 VALUES(NULL
2500: 2c 20 34 35 2e 36 34 38 35 36 36 39 32 2c 20 27  , 45.64856692, '
2510: 4e 6f 74 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  Not');.    INSER
2520: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
2530: 28 27 73 61 6d 65 27 2c 20 35 30 32 38 38 34 31  ('same', 5028841
2540: 39 37 31 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 20  971, NULL);.    
2550: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2560: 41 4c 55 45 53 28 27 6f 6e 6c 6f 6f 6b 65 72 73  ALUES('onlookers
2570: 27 2c 20 27 69 6e 27 2c 20 38 32 31 34 38 30 38  ', 'in', 8214808
2580: 36 35 31 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  651);.    INSERT
2590: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
25a0: 33 34 36 2e 30 33 34 38 36 31 30 2c 20 32 36 34  346.0348610, 264
25b0: 33 33 38 33 32 37 39 2c 20 4e 55 4c 4c 29 3b 0a  3383279, NULL);.
25c0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
25d0: 74 33 20 56 41 4c 55 45 53 28 31 34 31 35 39 32  t3 VALUES(141592
25e0: 36 35 33 35 2c 20 27 6f 66 27 2c 20 27 61 72 65  6535, 'of', 'are
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 4e 55  NTO t3 VALUES(NU
2610: 4c 4c 2c 20 30 2e 34 38 31 31 31 37 34 35 30 32  LL, 0.4811174502
2620: 2c 20 27 73 6e 61 70 73 68 6f 74 73 27 29 3b 0a  , 'snapshots');.
2630: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
2640: 74 33 20 56 41 4c 55 45 53 28 27 6f 76 65 72 27  t3 VALUES('over'
2650: 2c 20 27 74 68 65 27 2c 20 38 36 32 38 30 33 34  , 'the', 8628034
2660: 38 32 35 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  825);.    INSERT
2670: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2680: 38 36 32 38 30 33 34 38 32 35 2c 20 36 36 2e 35  8628034825, 66.5
2690: 39 33 33 34 34 36 31 2c 20 32 38 34 37 35 36 34  9334461, 2847564
26a0: 2e 38 32 33 29 3b 0a 20 20 20 20 49 4e 53 45 52  .823);.    INSER
26b0: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
26c0: 28 27 6f 6e 6c 6f 6f 6b 65 72 73 27 2c 20 27 73  ('onlookers', 's
26d0: 61 6d 65 27 2c 20 27 61 6e 64 27 29 3b 0a 20 20  ame', 'and');.  
26e0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
26f0: 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 20 27 6c   VALUES(NULL, 'l
2700: 69 67 68 74 27 2c 20 36 39 33 39 39 33 37 35 31  ight', 693993751
2710: 30 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  0);.    INSERT I
2720: 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 66  NTO t3 VALUES('f
2730: 72 6f 6d 27 2c 20 27 74 68 65 69 72 27 2c 20 27  rom', 'their', '
2740: 76 69 65 77 65 64 27 29 3b 0a 20 20 20 20 49 4e  viewed');.    IN
2750: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
2760: 55 45 53 28 27 66 72 6f 6d 27 2c 20 27 41 6c 70  UES('from', 'Alp
2770: 69 6e 65 27 2c 20 27 73 6e 61 70 73 68 6f 74 73  ine', 'snapshots
2780: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
2790: 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 66  NTO t3 VALUES('f
27a0: 72 6f 6d 27 2c 20 27 73 6f 6d 65 74 69 6d 65 73  rom', 'sometimes
27b0: 27 2c 20 27 75 6e 61 6c 69 6b 65 27 29 3b 0a 20  ', 'unalike');. 
27c0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
27d0: 33 20 56 41 4c 55 45 53 28 31 33 33 39 2e 33 36  3 VALUES(1339.36
27e0: 30 37 32 36 2c 20 27 6c 69 67 68 74 27 2c 20 27  0726, 'light', '
27f0: 68 61 76 65 27 29 3b 0a 20 20 20 20 49 4e 53 45  have');.    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 36 39 33 39 39 33 37 35 31 30 2c 20 33 32  S(6939937510, 32
2820: 38 32 33 30 36 36 34 37 2c 20 27 6f 74 68 65 72  82306647, 'other
2830: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
2840: 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 70  NTO t3 VALUES('p
2850: 61 69 6e 74 69 6e 67 73 27 2c 20 38 36 32 38 30  aintings', 86280
2860: 33 34 38 32 35 2c 20 27 61 6c 6c 27 29 3b 0a 20  34825, 'all');. 
2870: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2880: 33 20 56 41 4c 55 45 53 28 27 70 61 69 6e 74 69  3 VALUES('painti
2890: 6e 67 73 27 2c 20 4e 55 4c 4c 2c 20 27 73 61 6d  ngs', NULL, 'sam
28a0: 65 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  e');.    INSERT 
28b0: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27  INTO t3 VALUES('
28c0: 41 6c 70 69 6e 65 27 2c 20 33 37 38 36 37 38 33  Alpine', 3786783
28d0: 31 36 2e 35 2c 20 27 75 6e 61 6c 69 6b 65 27 29  16.5, 'unalike')
28e0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
28f0: 4f 20 74 33 20 56 41 4c 55 45 53 28 27 41 6c 70  O t3 VALUES('Alp
2900: 69 6e 65 27 2c 20 4e 55 4c 4c 2c 20 27 73 61 6d  ine', NULL, 'sam
2910: 65 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  e');.    INSERT 
2920: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 31  INTO t3 VALUES(1
2930: 33 33 39 2e 33 36 30 37 32 36 2c 20 32 38 34 37  339.360726, 2847
2940: 35 36 34 2e 38 32 33 2c 20 27 6f 76 65 72 27 29  564.823, 'over')
2950: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
2960: 4f 20 74 33 20 56 41 4c 55 45 53 28 27 76 69 6c  O t3 VALUES('vil
2970: 6c 61 67 65 73 27 2c 20 27 74 68 65 69 72 27 2c  lages', 'their',
2980: 20 27 68 61 76 65 27 29 3b 0a 20 20 20 20 49 4e   'have');.    IN
2990: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
29a0: 55 45 53 28 27 75 6e 61 6c 69 6b 65 27 2c 20 27  UES('unalike', '
29b0: 72 65 6d 61 72 6b 61 62 6c 79 27 2c 20 27 69 6e  remarkably', 'in
29c0: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
29d0: 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 61  NTO t3 VALUES('a
29e0: 6e 64 27 2c 20 38 39 37 39 33 32 33 38 34 36 2c  nd', 8979323846,
29f0: 20 27 61 6e 64 27 29 3b 0a 20 20 20 20 49 4e 53   'and');.    INS
2a00: 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55  ERT INTO t3 VALU
2a10: 45 53 28 4e 55 4c 4c 2c 20 31 34 31 35 39 32 36  ES(NULL, 1415926
2a20: 35 33 35 2c 20 27 61 6e 27 29 3b 0a 20 20 20 20  535, 'an');.    
2a30: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2a40: 41 4c 55 45 53 28 32 37 31 2e 32 30 31 39 30 39  ALUES(271.201909
2a50: 31 2c 20 38 36 32 38 30 33 34 38 32 35 2c 20 30  1, 8628034825, 0
2a60: 2e 34 38 31 31 31 37 34 35 30 32 29 3b 0a 20 20  .4811174502);.  
2a70: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
2a80: 20 56 41 4c 55 45 53 28 27 61 6c 6c 27 2c 20 33   VALUES('all', 3
2a90: 34 32 31 31 37 30 36 37 39 2c 20 27 74 68 65 27  421170679, 'the'
2aa0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
2ab0: 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 4e 6f  TO t3 VALUES('No
2ac0: 74 27 2c 20 27 61 6e 64 27 2c 20 31 34 31 35 39  t', 'and', 14159
2ad0: 32 36 35 33 35 29 3b 0a 20 20 20 20 49 4e 53 45  26535);.    INSE
2ae0: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
2af0: 53 28 27 6f 66 27 2c 20 27 6f 74 68 65 72 27 2c  S('of', 'other',
2b00: 20 27 6c 69 67 68 74 27 29 3b 0a 20 20 20 20 49   'light');.    I
2b10: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2b20: 4c 55 45 53 28 4e 55 4c 4c 2c 20 27 74 6f 77 65  LUES(NULL, 'towe
2b30: 72 69 6e 67 27 2c 20 27 4e 6f 74 27 29 3b 0a 20  ring', 'Not');. 
2b40: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2b50: 33 20 56 41 4c 55 45 53 28 33 34 36 2e 30 33 34  3 VALUES(346.034
2b60: 38 36 31 30 2c 20 4e 55 4c 4c 2c 20 27 6f 74 68  8610, NULL, 'oth
2b70: 65 72 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  er');.    INSERT
2b80: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2b90: 27 4e 6f 74 27 2c 20 33 37 38 36 37 38 33 31 36  'Not', 378678316
2ba0: 2e 35 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 20 49  .5, NULL);.    I
2bb0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2bc0: 4c 55 45 53 28 27 73 6e 61 70 73 68 6f 74 73 27  LUES('snapshots'
2bd0: 2c 20 38 36 32 38 30 33 34 38 32 35 2c 20 27 6f  , 8628034825, 'o
2be0: 66 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  f');.    INSERT 
2bf0: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 33  INTO t3 VALUES(3
2c00: 32 38 32 33 30 36 36 34 37 2c 20 32 37 31 2e 32  282306647, 271.2
2c10: 30 31 39 30 39 31 2c 20 27 61 6e 64 27 29 3b 0a  019091, 'and');.
2c20: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
2c30: 74 33 20 56 41 4c 55 45 53 28 35 30 2e 35 38 32  t3 VALUES(50.582
2c40: 32 33 31 37 32 2c 20 33 37 38 36 37 38 33 31 36  23172, 378678316
2c50: 2e 35 2c 20 35 30 32 38 38 34 31 39 37 31 29 3b  .5, 5028841971);
2c60: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2c70: 20 74 33 20 56 41 4c 55 45 53 28 35 30 2e 35 38   t3 VALUES(50.58
2c80: 32 32 33 31 37 32 2c 20 32 36 34 33 33 38 33 32  223172, 26433832
2c90: 37 39 2c 20 27 73 6e 61 70 73 68 6f 74 73 27 29  79, 'snapshots')
2ca0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
2cb0: 4f 20 74 33 20 56 41 4c 55 45 53 28 27 77 72 69  O t3 VALUES('wri
2cc0: 74 69 6e 67 73 27 2c 20 38 39 37 39 33 32 33 38  tings', 89793238
2cd0: 34 36 2c 20 38 39 37 39 33 32 33 38 34 36 29 3b  46, 8979323846);
2ce0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2cf0: 20 74 33 20 56 41 4c 55 45 53 28 27 6f 6e 6c 6f   t3 VALUES('onlo
2d00: 6f 6b 65 72 73 27 2c 20 27 68 69 73 27 2c 20 27  okers', 'his', '
2d10: 69 6e 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  in');.    INSERT
2d20: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2d30: 27 75 6e 61 6c 69 6b 65 27 2c 20 38 36 32 38 30  'unalike', 86280
2d40: 33 34 38 32 35 2c 20 31 33 33 39 2e 33 36 30 37  34825, 1339.3607
2d50: 32 36 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  26);.    INSERT 
2d60: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27  INTO t3 VALUES('
2d70: 6f 66 27 2c 20 27 41 6c 70 69 6e 65 27 2c 20 27  of', 'Alpine', '
2d80: 61 6e 64 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  and');.    INSER
2d90: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
2da0: 28 27 6f 6e 6c 6f 6f 6b 65 72 73 27 2c 20 4e 55  ('onlookers', NU
2db0: 4c 4c 2c 20 27 66 72 6f 6d 27 29 3b 0a 20 20 20  LL, 'from');.   
2dc0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
2dd0: 56 41 4c 55 45 53 28 27 77 72 69 74 69 6e 67 73  VALUES('writings
2de0: 27 2c 20 27 69 74 27 2c 20 31 33 33 39 2e 33 36  ', 'it', 1339.36
2df0: 30 37 32 36 29 3b 0a 20 20 20 20 49 4e 53 45 52  0726);.    INSER
2e00: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
2e10: 28 27 69 74 27 2c 20 27 61 6e 64 27 2c 20 27 76  ('it', 'and', 'v
2e20: 69 6c 6c 61 67 65 73 27 29 3b 0a 20 20 20 20 49  illages');.    I
2e30: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2e40: 4c 55 45 53 28 27 61 6e 27 2c 20 27 74 68 65 27  LUES('an', 'the'
2e50: 2c 20 27 76 69 6c 6c 61 67 65 73 27 29 3b 0a 20  , 'villages');. 
2e60: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2e70: 33 20 56 41 4c 55 45 53 28 38 32 31 34 38 30 38  3 VALUES(8214808
2e80: 36 35 31 2c 20 38 32 31 34 38 30 38 36 35 31 2c  651, 8214808651,
2e90: 20 27 73 61 6d 65 27 29 3b 0a 20 20 20 20 49 4e   'same');.    IN
2ea0: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
2eb0: 55 45 53 28 33 34 36 2e 30 33 34 38 36 31 30 2c  UES(346.0348610,
2ec0: 20 27 6c 69 67 68 74 27 2c 20 31 34 31 35 39 32   'light', 141592
2ed0: 36 35 33 35 29 3b 0a 20 20 20 20 49 4e 53 45 52  6535);.    INSER
2ee0: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
2ef0: 28 4e 55 4c 4c 2c 20 38 39 37 39 33 32 33 38 34  (NULL, 897932384
2f00: 36 2c 20 27 61 6e 64 27 29 3b 0a 20 20 20 20 49  6, 'and');.    I
2f10: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2f20: 4c 55 45 53 28 4e 55 4c 4c 2c 20 27 73 61 6d 65  LUES(NULL, 'same
2f30: 27 2c 20 31 33 33 39 2e 33 36 30 37 32 36 29 3b  ', 1339.360726);
2f40: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2f50: 20 74 34 20 56 41 4c 55 45 53 28 27 68 69 73 27   t4 VALUES('his'
2f60: 2c 20 27 66 72 6f 6d 27 2c 20 27 61 6e 27 29 3b  , 'from', 'an');
2f70: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2f80: 20 74 34 20 56 41 4c 55 45 53 28 27 73 6e 61 70   t4 VALUES('snap
2f90: 73 68 6f 74 73 27 2c 20 27 6f 72 27 2c 20 4e 55  shots', 'or', NU
2fa0: 4c 4c 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  LL);.    INSERT 
2fb0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
2fc0: 41 6c 70 69 6e 65 27 2c 20 27 68 61 76 65 27 2c  Alpine', 'have',
2fd0: 20 27 69 74 27 29 3b 0a 20 20 20 20 49 4e 53 45   'it');.    INSE
2fe0: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
2ff0: 53 28 27 68 61 76 65 27 2c 20 27 70 65 61 6b 27  S('have', 'peak'
3000: 2c 20 27 72 65 6d 61 72 6b 61 62 6c 79 27 29 3b  , 'remarkably');
3010: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3020: 20 74 34 20 56 41 4c 55 45 53 28 27 68 69 6c 6c   t4 VALUES('hill
3030: 73 27 2c 20 4e 55 4c 4c 2c 20 27 4e 6f 74 27 29  s', NULL, 'Not')
3040: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
3050: 4f 20 74 34 20 56 41 4c 55 45 53 28 27 73 61 6d  O t4 VALUES('sam
3060: 65 27 2c 20 27 66 72 6f 6d 27 2c 20 32 36 34 33  e', 'from', 2643
3070: 33 38 33 32 37 39 29 3b 0a 20 20 20 20 49 4e 53  383279);.    INS
3080: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
3090: 45 53 28 27 68 61 76 65 27 2c 20 27 61 6e 67 6c  ES('have', 'angl
30a0: 65 27 2c 20 38 36 32 38 30 33 34 38 32 35 29 3b  e', 8628034825);
30b0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
30c0: 20 74 34 20 56 41 4c 55 45 53 28 27 73 6f 6d 65   t4 VALUES('some
30d0: 74 69 6d 65 73 27 2c 20 27 69 74 27 2c 20 32 38  times', 'it', 28
30e0: 34 37 35 36 34 2e 38 32 33 29 3b 0a 20 20 20 20  47564.823);.    
30f0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56  INSERT INTO t4 V
3100: 41 4c 55 45 53 28 30 39 33 38 34 34 36 30 39 35  ALUES(0938446095
3110: 2c 20 27 70 65 61 6b 27 2c 20 27 6f 66 27 29 3b  , 'peak', 'of');
3120: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3130: 20 74 34 20 56 41 4c 55 45 53 28 38 36 32 38 30   t4 VALUES(86280
3140: 33 34 38 32 35 2c 20 27 61 6e 64 27 2c 20 27 73  34825, 'and', 's
3150: 61 6d 65 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  ame');.    INSER
3160: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
3170: 28 27 61 6e 64 27 2c 20 32 37 31 2e 32 30 31 39  ('and', 271.2019
3180: 30 39 31 2c 20 27 74 68 65 69 72 27 29 3b 0a 20  091, 'their');. 
3190: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
31a0: 34 20 56 41 4c 55 45 53 28 27 74 68 65 27 2c 20  4 VALUES('the', 
31b0: 27 6f 66 27 2c 20 27 72 65 6d 61 72 6b 61 62 6c  'of', 'remarkabl
31c0: 79 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  y');.    INSERT 
31d0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
31e0: 61 6e 64 27 2c 20 33 34 32 31 31 37 30 36 37 39  and', 3421170679
31f0: 2c 20 31 34 31 35 39 32 36 35 33 35 29 3b 0a 20  , 1415926535);. 
3200: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3210: 34 20 56 41 4c 55 45 53 28 27 61 6e 64 27 2c 20  4 VALUES('and', 
3220: 27 69 6e 27 2c 20 27 61 6c 6c 27 29 3b 0a 20 20  'in', 'all');.  
3230: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
3240: 20 56 41 4c 55 45 53 28 33 37 38 36 37 38 33 31   VALUES(37867831
3250: 36 2e 35 2c 20 30 2e 34 38 31 31 31 37 34 35 30  6.5, 0.481117450
3260: 32 2c 20 27 73 6e 61 70 73 68 6f 74 73 27 29 3b  2, 'snapshots');
3270: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3280: 20 74 34 20 56 41 4c 55 45 53 28 27 69 74 27 2c   t4 VALUES('it',
3290: 20 27 61 72 65 27 2c 20 27 68 61 76 65 27 29 3b   'are', 'have');
32a0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
32b0: 20 74 34 20 56 41 4c 55 45 53 28 27 61 6e 67 6c   t4 VALUES('angl
32c0: 65 27 2c 20 27 73 6e 61 70 73 68 6f 74 73 27 2c  e', 'snapshots',
32d0: 20 33 37 38 36 37 38 33 31 36 2e 35 29 3b 0a 20   378678316.5);. 
32e0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
32f0: 34 20 56 41 4c 55 45 53 28 27 66 72 6f 6d 27 2c  4 VALUES('from',
3300: 20 31 34 31 35 39 32 36 35 33 35 2c 20 38 36 32   1415926535, 862
3310: 38 30 33 34 38 32 35 29 3b 0a 20 20 20 20 49 4e  8034825);.    IN
3320: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
3330: 55 45 53 28 27 73 6e 61 70 73 68 6f 74 73 27 2c  UES('snapshots',
3340: 20 27 61 6e 67 6c 65 27 2c 20 27 68 61 76 65 27   'angle', 'have'
3350: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
3360: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 33 34 32  TO t4 VALUES(342
3370: 31 31 37 30 36 37 39 2c 20 30 39 33 38 34 34 36  1170679, 0938446
3380: 30 39 35 2c 20 27 4e 6f 74 27 29 3b 0a 20 20 20  095, 'Not');.   
3390: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20   INSERT INTO t4 
33a0: 56 41 4c 55 45 53 28 27 70 65 61 6b 27 2c 20 4e  VALUES('peak', N
33b0: 55 4c 4c 2c 20 30 2e 34 38 31 31 31 37 34 35 30  ULL, 0.481117450
33c0: 32 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  2);.    INSERT I
33d0: 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 73  NTO t4 VALUES('s
33e0: 61 6d 65 27 2c 20 27 68 61 76 65 27 2c 20 27 41  ame', 'have', 'A
33f0: 6c 70 69 6e 65 27 29 3b 0a 20 20 20 20 49 4e 53  lpine');.    INS
3400: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
3410: 45 53 28 32 37 31 2e 32 30 31 39 30 39 31 2c 20  ES(271.2019091, 
3420: 36 36 2e 35 39 33 33 34 34 36 31 2c 20 30 39 33  66.59334461, 093
3430: 38 34 34 36 30 39 35 29 3b 0a 20 20 20 20 49 4e  8446095);.    IN
3440: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
3450: 55 45 53 28 38 39 37 39 33 32 33 38 34 36 2c 20  UES(8979323846, 
3460: 27 68 69 73 27 2c 20 27 61 6e 27 29 3b 0a 20 20  'his', 'an');.  
3470: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
3480: 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 20 27 61   VALUES(NULL, 'a
3490: 6e 64 27 2c 20 33 32 38 32 33 30 36 36 34 37 29  nd', 3282306647)
34a0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
34b0: 4f 20 74 34 20 56 41 4c 55 45 53 28 27 72 65 6d  O t4 VALUES('rem
34c0: 61 72 6b 61 62 6c 79 27 2c 20 4e 55 4c 4c 2c 20  arkably', NULL, 
34d0: 27 4e 6f 74 27 29 3b 0a 20 20 20 20 49 4e 53 45  'Not');.    INSE
34e0: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
34f0: 53 28 27 76 69 6c 6c 61 67 65 73 27 2c 20 34 35  S('villages', 45
3500: 34 33 2e 32 36 36 34 38 32 2c 20 27 68 69 73 27  43.266482, 'his'
3510: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
3520: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 32 36 34  TO t4 VALUES(264
3530: 33 33 38 33 32 37 39 2c 20 27 70 61 69 6e 74 69  3383279, 'painti
3540: 6e 67 73 27 2c 20 27 6f 6e 6c 6f 6f 6b 65 72 73  ngs', 'onlookers
3550: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
3560: 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 31 33  NTO t4 VALUES(13
3570: 33 39 2e 33 36 30 37 32 36 2c 20 27 6f 66 27 2c  39.360726, 'of',
3580: 20 27 74 68 65 27 29 3b 0a 20 20 20 20 49 4e 53   'the');.    INS
3590: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
35a0: 45 53 28 27 70 65 61 6b 27 2c 20 27 6f 74 68 65  ES('peak', 'othe
35b0: 72 27 2c 20 27 70 65 61 6b 27 29 3b 0a 20 20 20  r', 'peak');.   
35c0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20   INSERT INTO t4 
35d0: 56 41 4c 55 45 53 28 27 69 74 27 2c 20 27 6f 72  VALUES('it', 'or
35e0: 27 2c 20 38 39 37 39 33 32 33 38 34 36 29 3b 0a  ', 8979323846);.
35f0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
3600: 74 34 20 56 41 4c 55 45 53 28 27 6f 6e 6c 6f 6f  t4 VALUES('onloo
3610: 6b 65 72 73 27 2c 20 27 4e 6f 74 27 2c 20 27 74  kers', 'Not', 't
3620: 6f 77 65 72 69 6e 67 27 29 3b 0a 20 20 20 20 49  owering');.    I
3630: 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41  NSERT INTO t4 VA
3640: 4c 55 45 53 28 4e 55 4c 4c 2c 20 27 70 65 61 6b  LUES(NULL, 'peak
3650: 27 2c 20 27 4e 6f 74 27 29 3b 0a 20 20 20 20 49  ', 'Not');.    I
3660: 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41  NSERT INTO t4 VA
3670: 4c 55 45 53 28 27 6f 66 27 2c 20 27 68 61 76 65  LUES('of', 'have
3680: 27 2c 20 36 39 33 39 39 33 37 35 31 30 29 3b 0a  ', 6939937510);.
3690: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
36a0: 74 34 20 56 41 4c 55 45 53 28 27 6c 69 67 68 74  t4 VALUES('light
36b0: 27 2c 20 27 68 69 6c 6c 73 27 2c 20 30 2e 34 38  ', 'hills', 0.48
36c0: 31 31 31 37 34 35 30 32 29 3b 0a 20 20 20 20 49  11174502);.    I
36d0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41  NSERT INTO t4 VA
36e0: 4c 55 45 53 28 35 30 32 38 38 34 31 39 37 31 2c  LUES(5028841971,
36f0: 20 27 4e 6f 74 27 2c 20 27 69 74 27 29 3b 0a 20   'Not', 'it');. 
3700: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3710: 34 20 56 41 4c 55 45 53 28 27 61 6e 64 27 2c 20  4 VALUES('and', 
3720: 27 4e 6f 74 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20  'Not', NULL);.  
3730: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
3740: 20 56 41 4c 55 45 53 28 33 34 36 2e 30 33 34 38   VALUES(346.0348
3750: 36 31 30 2c 20 27 76 69 6c 6c 61 67 65 73 27 2c  610, 'villages',
3760: 20 4e 55 4c 4c 29 3b 0a 20 20 20 20 49 4e 53 45   NULL);.    INSE
3770: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
3780: 53 28 38 39 37 39 33 32 33 38 34 36 2c 20 4e 55  S(8979323846, NU
3790: 4c 4c 2c 20 36 39 33 39 39 33 37 35 31 30 29 3b  LL, 6939937510);
37a0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
37b0: 20 74 34 20 56 41 4c 55 45 53 28 27 61 6e 27 2c   t4 VALUES('an',
37c0: 20 27 6c 69 67 68 74 27 2c 20 27 70 65 61 6b 27   'light', 'peak'
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 35 30 32  TO t4 VALUES(502
37f0: 38 38 34 31 39 37 31 2c 20 36 39 33 39 39 33 37  8841971, 6939937
3800: 35 31 30 2c 20 27 6c 69 67 68 74 27 29 3b 0a 20  510, 'light');. 
3810: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3820: 34 20 56 41 4c 55 45 53 28 27 73 6f 6d 65 74 69  4 VALUES('someti
3830: 6d 65 73 27 2c 20 27 70 65 61 6b 27 2c 20 27 70  mes', 'peak', 'p
3840: 65 61 6b 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  eak');.    INSER
3850: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
3860: 28 33 37 38 36 37 38 33 31 36 2e 35 2c 20 35 30  (378678316.5, 50
3870: 32 38 38 34 31 39 37 31 2c 20 27 61 6e 27 29 3b  28841971, 'an');
3880: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3890: 20 74 34 20 56 41 4c 55 45 53 28 33 37 38 36 37   t4 VALUES(37867
38a0: 38 33 31 36 2e 35 2c 20 27 68 69 73 27 2c 20 27  8316.5, 'his', '
38b0: 41 6c 70 69 6e 65 27 29 3b 0a 20 20 20 20 49 4e  Alpine');.    IN
38c0: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
38d0: 55 45 53 28 27 66 72 6f 6d 27 2c 20 27 6f 66 27  UES('from', 'of'
38e0: 2c 20 27 61 6c 6c 27 29 3b 0a 20 20 20 20 49 4e  , 'all');.    IN
38f0: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
3900: 55 45 53 28 30 39 33 38 34 34 36 30 39 35 2c 20  UES(0938446095, 
3910: 27 73 61 6d 65 27 2c 20 4e 55 4c 4c 29 3b 0a 20  'same', NULL);. 
3920: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3930: 34 20 56 41 4c 55 45 53 28 30 39 33 38 34 34 36  4 VALUES(0938446
3940: 30 39 35 2c 20 27 41 6c 70 69 6e 65 27 2c 20 4e  095, 'Alpine', N
3950: 55 4c 4c 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ULL);.    INSERT
3960: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
3970: 27 68 69 73 27 2c 20 27 6f 66 27 2c 20 33 37 38  'his', 'of', 378
3980: 36 37 38 33 31 36 2e 35 29 3b 0a 20 20 20 20 49  678316.5);.    I
3990: 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41  NSERT INTO t4 VA
39a0: 4c 55 45 53 28 32 37 31 2e 32 30 31 39 30 39 31  LUES(271.2019091
39b0: 2c 20 27 76 69 65 77 65 64 27 2c 20 33 32 38 32  , 'viewed', 3282
39c0: 33 30 36 36 34 37 29 3b 0a 20 20 20 20 49 4e 53  306647);.    INS
39d0: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
39e0: 45 53 28 27 68 69 6c 6c 73 27 2c 20 27 61 6c 6c  ES('hills', 'all
39f0: 27 2c 20 27 70 65 61 6b 27 29 3b 0a 20 20 20 20  ', 'peak');.    
3a00: 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 35 28  CREATE TABLE t5(
3a10: 73 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  s);.    INSERT I
3a20: 4e 54 4f 20 74 35 20 56 41 4c 55 45 53 28 27 74  NTO t5 VALUES('t
3a30: 61 62 2d 74 35 27 29 3b 0a 20 20 20 20 43 52 45  ab-t5');.    CRE
3a40: 41 54 45 20 54 41 42 4c 45 20 74 36 28 74 29 3b  ATE TABLE t6(t);
3a50: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3a60: 20 74 36 20 56 41 4c 55 45 53 28 31 32 33 34 35   t6 VALUES(12345
3a70: 36 29 3b 0a 20 20 20 20 43 4f 4d 4d 49 54 3b 0a  6);.    COMMIT;.
3a80: 20 20 7d 0a 7d 20 7b 7d 0a 0a 63 61 74 63 68 20    }.} {}..catch 
3a90: 7b 75 6e 73 65 74 20 72 65 73 75 6c 74 73 7d 0a  {unset results}.
3aa0: 63 61 74 63 68 20 7b 75 6e 73 65 74 20 41 7d 0a  catch {unset A}.
3ab0: 63 61 74 63 68 20 7b 75 6e 73 65 74 20 42 7d 0a  catch {unset B}.
3ac0: 0a 73 65 74 20 41 20 32 0a 66 6f 72 65 61 63 68  .set A 2.foreach
3ad0: 20 69 64 78 73 71 6c 20 7b 0a 20 20 7b 20 0a 20   idxsql {.  { . 
3ae0: 20 20 20 2f 2a 20 4e 6f 20 69 6e 64 65 78 65 73     /* No indexes
3af0: 20 2a 2f 20 0a 20 20 7d 20 7b 0a 20 20 20 20 43   */ .  } {.    C
3b00: 52 45 41 54 45 20 49 4e 44 45 58 20 69 35 20 4f  REATE INDEX i5 O
3b10: 4e 20 74 33 28 61 29 3b 0a 20 20 7d 20 7b 0a 20  N t3(a);.  } {. 
3b20: 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20     CREATE INDEX 
3b30: 69 35 20 4f 4e 20 74 33 28 61 2c 20 62 29 3b 0a  i5 ON t3(a, b);.
3b40: 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58      CREATE INDEX
3b50: 20 69 36 20 4f 4e 20 74 34 28 66 29 3b 0a 20 20   i6 ON t4(f);.  
3b60: 7d 20 7b 0a 20 20 20 20 43 52 45 41 54 45 20 55  } {.    CREATE U
3b70: 4e 49 51 55 45 20 49 4e 44 45 58 20 69 35 20 4f  NIQUE INDEX i5 O
3b80: 4e 20 74 33 28 61 2c 20 62 29 3b 0a 20 20 20 20  N t3(a, b);.    
3b90: 43 52 45 41 54 45 20 49 4e 44 45 58 20 69 37 20  CREATE INDEX i7 
3ba0: 4f 4e 20 74 33 28 63 29 3b 0a 20 20 20 20 43 52  ON t3(c);.    CR
3bb0: 45 41 54 45 20 49 4e 44 45 58 20 69 36 20 4f 4e  EATE INDEX i6 ON
3bc0: 20 74 34 28 66 29 3b 0a 20 20 20 20 43 52 45 41   t4(f);.    CREA
3bd0: 54 45 20 49 4e 44 45 58 20 69 38 20 4f 4e 20 74  TE INDEX i8 ON t
3be0: 34 28 68 29 3b 0a 20 20 7d 20 7b 0a 20 20 20 20  4(h);.  } {.    
3bf0: 43 52 45 41 54 45 20 49 4e 44 45 58 20 69 35 20  CREATE INDEX i5 
3c00: 4f 4e 20 74 33 28 61 2c 20 62 2c 20 63 29 3b 0a  ON t3(a, b, c);.
3c10: 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58      CREATE INDEX
3c20: 20 69 36 20 4f 4e 20 74 34 28 66 2c 20 67 2c 20   i6 ON t4(f, g, 
3c30: 68 29 3b 0a 20 20 20 20 43 52 45 41 54 45 20 49  h);.    CREATE I
3c40: 4e 44 45 58 20 69 37 20 4f 4e 20 74 33 28 63 2c  NDEX i7 ON t3(c,
3c50: 20 62 2c 20 61 29 3b 0a 20 20 20 20 43 52 45 41   b, a);.    CREA
3c60: 54 45 20 49 4e 44 45 58 20 69 38 20 4f 4e 20 74  TE INDEX i8 ON t
3c70: 34 28 68 2c 20 67 2c 20 66 29 3b 0a 20 20 7d 0a  4(h, g, f);.  }.
3c80: 7d 20 7b 0a 0a 20 20 65 78 65 63 73 71 6c 20 7b  } {..  execsql {
3c90: 0a 20 20 20 20 44 52 4f 50 20 49 4e 44 45 58 20  .    DROP INDEX 
3ca0: 49 46 20 45 58 49 53 54 53 20 69 35 3b 0a 20 20  IF EXISTS i5;.  
3cb0: 20 20 44 52 4f 50 20 49 4e 44 45 58 20 49 46 20    DROP INDEX IF 
3cc0: 45 58 49 53 54 53 20 69 36 3b 0a 20 20 20 20 44  EXISTS i6;.    D
3cd0: 52 4f 50 20 49 4e 44 45 58 20 49 46 20 45 58 49  ROP INDEX IF EXI
3ce0: 53 54 53 20 69 37 3b 0a 20 20 20 20 44 52 4f 50  STS i7;.    DROP
3cf0: 20 49 4e 44 45 58 20 49 46 20 45 58 49 53 54 53   INDEX IF EXISTS
3d00: 20 69 38 3b 0a 20 20 7d 0a 20 20 65 78 65 63 73   i8;.  }.  execs
3d10: 71 6c 20 24 69 64 78 73 71 6c 0a 0a 20 20 66 6f  ql $idxsql..  fo
3d20: 72 65 61 63 68 20 7b 42 20 73 71 6c 7d 20 7b 0a  reach {B sql} {.
3d30: 20 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46   1  { SELECT * F
3d40: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 4c  ROM t3 WHERE c L
3d50: 49 4b 45 20 62 20 7d 0a 20 32 20 20 7b 20 53 45  IKE b }. 2  { SE
3d60: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
3d70: 48 45 52 45 20 63 7c 7c 27 27 20 4c 49 4b 45 20  HERE c||'' LIKE 
3d80: 27 74 68 65 25 27 20 7d 0a 20 33 20 20 7b 20 53  'the%' }. 3  { S
3d90: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
3da0: 57 48 45 52 45 20 72 6f 77 69 64 20 4c 49 4b 45  WHERE rowid LIKE
3db0: 20 27 31 32 25 27 20 7d 0a 20 34 20 20 7b 20 53   '12%' }. 4  { S
3dc0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
3dd0: 57 48 45 52 45 20 2b 63 20 4c 49 4b 45 20 27 74  WHERE +c LIKE 't
3de0: 68 65 25 27 20 7d 0a 20 35 20 20 7b 20 53 45 4c  he%' }. 5  { SEL
3df0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
3e00: 45 52 45 20 63 20 4c 49 4b 45 20 27 74 68 65 25  ERE c LIKE 'the%
3e10: 27 20 7d 0a 20 36 20 20 7b 20 53 45 4c 45 43 54  ' }. 6  { SELECT
3e20: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
3e30: 20 63 20 47 4c 4f 42 20 27 2a 6c 6c 6f 27 20 7d   c GLOB '*llo' }
3e40: 0a 0a 20 37 20 20 7b 20 53 45 4c 45 43 54 20 2a  .. 7  { SELECT *
3e50: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 61   FROM t3 WHERE a
3e60: 20 3d 20 27 61 6e 67 6c 65 27 20 7d 0a 20 38 20   = 'angle' }. 8 
3e70: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
3e80: 20 74 33 20 57 48 45 52 45 20 61 20 3d 20 27 69   t3 WHERE a = 'i
3e90: 74 27 20 4f 52 20 62 20 3d 20 36 39 33 39 39 33  t' OR b = 693993
3ea0: 37 35 31 30 20 7d 0a 20 39 20 20 7b 20 53 45 4c  7510 }. 9  { SEL
3eb0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
3ec0: 34 20 57 48 45 52 45 20 61 20 3d 20 27 70 61 69  4 WHERE a = 'pai
3ed0: 6e 74 69 6e 67 27 20 4f 52 20 61 20 3d 20 27 61  nting' OR a = 'a
3ee0: 72 65 27 20 4f 52 20 61 20 3d 20 66 20 7d 0a 31  re' OR a = f }.1
3ef0: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
3f00: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
3f10: 61 20 3d 20 27 61 6c 6c 27 20 4f 52 20 61 20 3d  a = 'all' OR a =
3f20: 20 27 61 6e 64 27 20 4f 52 20 61 20 3d 20 68 20   'and' OR a = h 
3f30: 7d 0a 31 31 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.11  { SELECT *
3f40: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
3f50: 52 45 20 61 20 3c 20 27 6f 66 27 20 4f 52 20 62  RE a < 'of' OR b
3f60: 20 3e 20 33 34 36 20 41 4e 44 20 63 20 49 53 20   > 346 AND c IS 
3f70: 4e 55 4c 4c 20 7d 0a 31 32 20 20 7b 20 53 45 4c  NULL }.12  { SEL
3f80: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
3f90: 34 20 57 48 45 52 45 20 27 74 68 65 27 20 3e 20  4 WHERE 'the' > 
3fa0: 61 20 4f 52 20 62 20 3e 20 27 68 61 76 65 27 20  a OR b > 'have' 
3fb0: 41 4e 44 20 63 20 3d 20 31 34 31 35 39 32 36 35  AND c = 14159265
3fc0: 33 35 20 7d 0a 0a 31 33 20 20 7b 20 53 45 4c 45  35 }..13  { SELE
3fd0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
3fe0: 52 45 20 61 20 42 45 54 57 45 45 4e 20 27 6f 6e  RE a BETWEEN 'on
3ff0: 65 27 20 41 4e 44 20 27 74 77 6f 27 20 4f 52 20  e' AND 'two' OR 
4000: 61 20 3d 20 33 34 32 31 31 37 30 36 37 39 20 7d  a = 3421170679 }
4010: 0a 31 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .14  { SELECT * 
4020: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20  FROM t3 WHERE a 
4030: 42 45 54 57 45 45 4e 20 27 6f 6e 65 27 20 41 4e  BETWEEN 'one' AN
4040: 44 20 27 74 77 6f 27 20 4f 52 20 61 20 49 53 20  D 'two' OR a IS 
4050: 4e 55 4c 4c 20 7d 0a 31 35 20 20 7b 20 53 45 4c  NULL }.15  { SEL
4060: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4070: 45 52 45 20 63 20 3e 20 27 6f 6e 65 27 20 4f 52  ERE c > 'one' OR
4080: 20 63 20 3e 3d 20 27 6f 6e 65 27 20 4f 52 20 63   c >= 'one' OR c
4090: 20 4c 49 4b 45 20 27 6f 6e 65 25 27 20 7d 0a 31   LIKE 'one%' }.1
40a0: 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  6  { SELECT * FR
40b0: 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 3e 20  OM t3 WHERE c > 
40c0: 27 6f 6e 65 27 20 4f 52 20 63 20 3d 20 63 20 4f  'one' OR c = c O
40d0: 52 20 63 20 3d 20 61 20 7d 0a 31 37 20 20 7b 20  R c = a }.17  { 
40e0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
40f0: 20 57 48 45 52 45 20 63 20 49 53 20 4e 55 4c 4c   WHERE c IS NULL
4100: 20 4f 52 20 61 20 3e 3d 20 27 70 65 61 6b 27 20   OR a >= 'peak' 
4110: 7d 0a 31 38 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.18  { SELECT *
4120: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63   FROM t3 WHERE c
4130: 20 49 4e 20 28 27 6f 74 68 65 72 27 2c 20 27 61   IN ('other', 'a
4140: 6c 6c 27 2c 20 27 73 6e 61 70 73 68 6f 74 73 27  ll', 'snapshots'
4150: 29 20 4f 52 20 61 3e 31 20 7d 0a 31 39 20 20 7b  ) OR a>1 }.19  {
4160: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4170: 33 20 57 48 45 52 45 20 63 20 49 4e 20 28 27 6f  3 WHERE c IN ('o
4180: 74 68 65 72 27 2c 20 27 61 6c 6c 27 2c 20 27 73  ther', 'all', 's
4190: 6e 61 70 73 68 6f 74 73 27 29 20 41 4e 44 20 61  napshots') AND a
41a0: 3e 31 20 7d 0a 32 30 20 20 7b 20 53 45 4c 45 43  >1 }.20  { SELEC
41b0: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
41c0: 45 20 63 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20  E c IS NULL AND 
41d0: 61 3e 27 6f 6e 65 27 20 7d 0a 32 31 20 20 7b 20  a>'one' }.21  { 
41e0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
41f0: 20 57 48 45 52 45 20 63 20 49 53 20 4e 55 4c 4c   WHERE c IS NULL
4200: 20 4f 52 20 61 3e 27 6f 6e 65 27 20 7d 0a 32 32   OR a>'one' }.22
4210: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4220: 4d 20 74 33 20 57 48 45 52 45 20 62 20 3d 20 62  M t3 WHERE b = b
4230: 20 41 4e 44 20 61 20 3e 20 27 61 72 65 27 20 7d   AND a > 'are' }
4240: 0a 32 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .23  { SELECT * 
4250: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
4260: 3c 3d 20 62 20 4f 52 20 62 20 3c 20 27 73 6e 61  <= b OR b < 'sna
4270: 70 73 68 6f 74 73 27 20 7d 0a 32 34 20 20 7b 20  pshots' }.24  { 
4280: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4290: 20 57 48 45 52 45 20 27 6f 6e 6c 6f 6f 6b 65 72   WHERE 'onlooker
42a0: 73 27 20 3e 3d 20 63 20 41 4e 44 20 61 20 3c 3d  s' >= c AND a <=
42b0: 20 62 20 4f 52 20 62 20 3d 20 27 61 6e 67 6c 65   b OR b = 'angle
42c0: 27 20 7d 0a 32 35 20 20 7b 20 53 45 4c 45 43 54  ' }.25  { SELECT
42d0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
42e0: 20 62 20 3d 20 27 66 72 6f 6d 27 20 7d 0a 32 36   b = 'from' }.26
42f0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4300: 4d 20 74 33 20 57 48 45 52 45 20 62 20 3d 20 34  M t3 WHERE b = 4
4310: 35 34 33 2e 32 36 36 34 38 32 20 7d 0a 32 37 20  543.266482 }.27 
4320: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4330: 20 74 33 20 57 48 45 52 45 20 63 20 3c 20 33 32   t3 WHERE c < 32
4340: 38 32 33 30 36 36 34 37 20 7d 0a 32 38 20 20 7b  82306647 }.28  {
4350: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4360: 33 20 57 48 45 52 45 20 63 20 49 53 20 4e 55 4c  3 WHERE c IS NUL
4370: 4c 20 41 4e 44 20 62 20 3e 3d 20 63 20 7d 0a 32  L AND b >= c }.2
4380: 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  9  { SELECT * FR
4390: 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20 3e 20  OM t3 WHERE b > 
43a0: 30 2e 34 38 31 31 31 37 34 35 30 32 20 41 4e 44  0.4811174502 AND
43b0: 20 63 20 3d 20 27 6f 74 68 65 72 27 20 41 4e 44   c = 'other' AND
43c0: 20 27 76 69 65 77 65 64 27 20 3e 20 61 20 7d 0a   'viewed' > a }.
43d0: 33 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  30  { SELECT * F
43e0: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 3d  ROM t3 WHERE c =
43f0: 20 27 70 65 61 6b 27 20 7d 0a 33 31 20 20 7b 20   'peak' }.31  { 
4400: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4410: 20 57 48 45 52 45 20 63 20 3c 20 35 33 35 39 34   WHERE c < 53594
4420: 2e 30 38 31 32 38 20 4f 52 20 63 20 3c 3d 20 62  .08128 OR c <= b
4430: 20 7d 0a 33 32 20 20 7b 20 53 45 4c 45 43 54 20   }.32  { SELECT 
4440: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4450: 27 77 72 69 74 69 6e 67 73 27 20 3c 3d 20 62 20  'writings' <= b 
4460: 7d 0a 33 33 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.33  { SELECT *
4470: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 32   FROM t3 WHERE 2
4480: 36 34 33 33 38 33 32 37 39 20 3d 20 62 20 4f 52  643383279 = b OR
4490: 20 63 20 3c 20 62 20 41 4e 44 20 62 20 3c 3d 20   c < b AND b <= 
44a0: 33 32 38 32 33 30 36 36 34 37 20 7d 0a 33 34 20  3282306647 }.34 
44b0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
44c0: 20 74 33 20 57 48 45 52 45 20 61 20 49 53 20 4e   t3 WHERE a IS N
44d0: 55 4c 4c 20 7d 0a 33 35 20 20 7b 20 53 45 4c 45  ULL }.35  { SELE
44e0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
44f0: 52 45 20 27 77 72 69 74 69 6e 67 73 27 20 3d 20  RE 'writings' = 
4500: 61 20 4f 52 20 62 20 3d 20 33 37 38 36 37 38 33  a OR b = 3786783
4510: 31 36 2e 35 20 7d 0a 33 36 20 20 7b 20 53 45 4c  16.5 }.36  { SEL
4520: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4530: 45 52 45 20 27 61 6e 64 27 20 3e 3d 20 63 20 7d  ERE 'and' >= c }
4540: 0a 33 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .37  { SELECT * 
4550: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
4560: 3c 20 27 66 72 6f 6d 27 20 7d 0a 33 38 20 20 7b  < 'from' }.38  {
4570: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4580: 33 20 57 48 45 52 45 20 27 68 69 73 27 20 3c 20  3 WHERE 'his' < 
4590: 63 20 4f 52 20 62 20 3c 20 62 20 7d 0a 33 39 20  c OR b < b }.39 
45a0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
45b0: 20 74 33 20 57 48 45 52 45 20 35 33 35 39 34 2e   t3 WHERE 53594.
45c0: 30 38 31 32 38 20 3d 20 62 20 41 4e 44 20 63 20  08128 = b AND c 
45d0: 3e 3d 20 62 20 7d 0a 34 30 20 20 7b 20 53 45 4c  >= b }.40  { SEL
45e0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
45f0: 45 52 45 20 27 75 6e 61 6c 69 6b 65 27 20 3c 20  ERE 'unalike' < 
4600: 63 20 41 4e 44 20 27 61 72 65 27 20 3e 3d 20 63  c AND 'are' >= c
4610: 20 41 4e 44 20 61 20 3c 3d 20 62 20 7d 0a 34 31   AND a <= b }.41
4620: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4630: 4d 20 74 33 20 57 48 45 52 45 20 62 20 3e 3d 20  M t3 WHERE b >= 
4640: 34 35 34 33 2e 32 36 36 34 38 32 20 4f 52 20 27  4543.266482 OR '
4650: 41 6c 70 69 6e 65 27 20 3e 20 61 20 4f 52 20 32  Alpine' > a OR 2
4660: 37 31 2e 32 30 31 39 30 39 31 20 3c 3d 20 61 20  71.2019091 <= a 
4670: 7d 0a 34 32 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.42  { SELECT *
4680: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62   FROM t3 WHERE b
4690: 20 3d 20 63 20 7d 0a 34 33 20 20 7b 20 53 45 4c   = c }.43  { SEL
46a0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
46b0: 45 52 45 20 63 20 3e 20 61 20 41 4e 44 20 62 20  ERE c > a AND b 
46c0: 3c 20 27 61 6c 6c 27 20 7d 0a 34 34 20 20 7b 20  < 'all' }.44  { 
46d0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
46e0: 20 57 48 45 52 45 20 63 20 42 45 54 57 45 45 4e   WHERE c BETWEEN
46f0: 20 27 68 69 6c 6c 73 27 20 41 4e 44 20 27 73 6e   'hills' AND 'sn
4700: 61 70 73 68 6f 74 73 27 20 41 4e 44 20 63 20 3c  apshots' AND c <
4710: 3d 20 27 74 68 65 27 20 4f 52 20 63 20 3d 20 61  = 'the' OR c = a
4720: 20 7d 0a 34 35 20 20 7b 20 53 45 4c 45 43 54 20   }.45  { SELECT 
4730: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4740: 62 20 3e 20 63 20 41 4e 44 20 63 20 3e 3d 20 27  b > c AND c >= '
4750: 68 69 6c 6c 73 27 20 7d 0a 34 36 20 20 7b 20 53  hills' }.46  { S
4760: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4770: 57 48 45 52 45 20 62 20 3e 20 27 6f 72 27 20 4f  WHERE b > 'or' O
4780: 52 20 61 20 3c 3d 20 27 68 69 6c 6c 73 27 20 4f  R a <= 'hills' O
4790: 52 20 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 34 37  R c IS NULL }.47
47a0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
47b0: 4d 20 74 33 20 57 48 45 52 45 20 63 20 3e 20 62  M t3 WHERE c > b
47c0: 20 4f 52 20 62 20 42 45 54 57 45 45 4e 20 31 33   OR b BETWEEN 13
47d0: 33 39 2e 33 36 30 37 32 36 20 41 4e 44 20 27 6f  39.360726 AND 'o
47e0: 6e 6c 6f 6f 6b 65 72 73 27 20 4f 52 20 31 34 31  nlookers' OR 141
47f0: 35 39 32 36 35 33 35 20 3e 3d 20 62 20 7d 0a 34  5926535 >= b }.4
4800: 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  8  { SELECT * FR
4810: 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20 49 53  OM t3 WHERE a IS
4820: 20 4e 55 4c 4c 20 7d 0a 34 39 20 20 7b 20 53 45   NULL }.49  { SE
4830: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4840: 48 45 52 45 20 61 20 3e 20 27 6f 74 68 65 72 27  HERE a > 'other'
4850: 20 7d 0a 35 30 20 20 7b 20 53 45 4c 45 43 54 20   }.50  { SELECT 
4860: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4870: 27 74 68 65 27 20 3c 3d 20 63 20 41 4e 44 20 61  'the' <= c AND a
4880: 20 3c 3d 20 63 20 7d 0a 35 31 20 20 7b 20 53 45   <= c }.51  { SE
4890: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
48a0: 48 45 52 45 20 33 34 36 2e 30 33 34 38 36 31 30  HERE 346.0348610
48b0: 20 3d 20 61 20 41 4e 44 20 63 20 3d 20 62 20 7d   = a AND c = b }
48c0: 0a 35 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .52  { SELECT * 
48d0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
48e0: 42 45 54 57 45 45 4e 20 35 30 2e 35 38 32 32 33  BETWEEN 50.58223
48f0: 31 37 32 20 41 4e 44 20 27 73 61 6d 65 27 20 41  172 AND 'same' A
4900: 4e 44 20 61 20 3c 20 62 20 7d 0a 35 33 20 20 7b  ND a < b }.53  {
4910: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4920: 33 20 57 48 45 52 45 20 27 41 6c 70 69 6e 65 27  3 WHERE 'Alpine'
4930: 20 3c 3d 20 62 20 41 4e 44 20 63 20 3e 3d 20 27   <= b AND c >= '
4940: 61 6e 67 6c 65 27 20 4f 52 20 62 20 3c 3d 20 32  angle' OR b <= 2
4950: 37 31 2e 32 30 31 39 30 39 31 20 7d 0a 35 34 20  71.2019091 }.54 
4960: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4970: 20 74 33 20 57 48 45 52 45 20 61 20 3c 20 61 20   t3 WHERE a < a 
4980: 41 4e 44 20 31 34 31 35 39 32 36 35 33 35 20 3e  AND 1415926535 >
4990: 20 62 20 7d 0a 35 35 20 20 7b 20 53 45 4c 45 43   b }.55  { SELEC
49a0: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
49b0: 45 20 63 20 3e 20 61 20 41 4e 44 20 27 68 61 76  E c > a AND 'hav
49c0: 65 27 20 3e 3d 20 63 20 7d 0a 35 36 20 20 7b 20  e' >= c }.56  { 
49d0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
49e0: 20 57 48 45 52 45 20 62 20 3c 3d 20 62 20 41 4e   WHERE b <= b AN
49f0: 44 20 63 20 3e 20 62 20 7d 0a 35 37 20 20 7b 20  D c > b }.57  { 
4a00: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4a10: 20 57 48 45 52 45 20 61 20 49 53 20 4e 55 4c 4c   WHERE a IS NULL
4a20: 20 41 4e 44 20 63 20 3c 3d 20 63 20 7d 0a 35 38   AND c <= c }.58
4a30: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4a40: 4d 20 74 33 20 57 48 45 52 45 20 62 20 3c 20 63  M t3 WHERE b < c
4a50: 20 4f 52 20 62 20 3d 20 63 20 7d 0a 35 39 20 20   OR b = c }.59  
4a60: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4a70: 74 33 20 57 48 45 52 45 20 63 20 3c 20 62 20 41  t3 WHERE c < b A
4a80: 4e 44 20 62 20 3e 3d 20 27 69 74 27 20 7d 0a 36  ND b >= 'it' }.6
4a90: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
4aa0: 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20 3d 20  OM t3 WHERE a = 
4ab0: 62 20 41 4e 44 20 61 20 3c 3d 20 62 20 4f 52 20  b AND a <= b OR 
4ac0: 62 20 3e 3d 20 61 20 7d 0a 36 31 20 20 7b 20 53  b >= a }.61  { S
4ad0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4ae0: 57 48 45 52 45 20 62 20 3d 20 63 20 7d 0a 36 32  WHERE b = c }.62
4af0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4b00: 4d 20 74 33 20 57 48 45 52 45 20 63 20 42 45 54  M t3 WHERE c BET
4b10: 57 45 45 4e 20 27 74 68 65 27 20 41 4e 44 20 32  WEEN 'the' AND 2
4b20: 37 31 2e 32 30 31 39 30 39 31 20 4f 52 20 63 20  71.2019091 OR c 
4b30: 3c 3d 20 33 32 38 32 33 30 36 36 34 37 20 41 4e  <= 3282306647 AN
4b40: 44 20 63 20 3e 3d 20 62 20 7d 0a 36 33 20 20 7b  D c >= b }.63  {
4b50: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4b60: 33 20 57 48 45 52 45 20 63 20 3e 3d 20 63 20 41  3 WHERE c >= c A
4b70: 4e 44 20 63 20 3c 20 27 77 72 69 74 69 6e 67 73  ND c < 'writings
4b80: 27 20 7d 0a 36 34 20 20 7b 20 53 45 4c 45 43 54  ' }.64  { SELECT
4b90: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
4ba0: 20 63 20 3c 3d 20 33 32 38 32 33 30 36 36 34 37   c <= 3282306647
4bb0: 20 41 4e 44 20 62 20 3e 20 61 20 4f 52 20 27 75   AND b > a OR 'u
4bc0: 6e 61 6c 69 6b 65 27 20 3c 3d 20 61 20 7d 0a 36  nalike' <= a }.6
4bd0: 35 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  5  { SELECT * FR
4be0: 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20 3e 20  OM t3 WHERE a > 
4bf0: 63 20 7d 0a 36 36 20 20 7b 20 53 45 4c 45 43 54  c }.66  { SELECT
4c00: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
4c10: 20 63 20 3d 20 27 69 74 27 20 4f 52 20 62 20 3e   c = 'it' OR b >
4c20: 3d 20 62 20 7d 0a 36 37 20 20 7b 20 53 45 4c 45  = b }.67  { SELE
4c30: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4c40: 52 45 20 63 20 3d 20 61 20 4f 52 20 62 20 3c 20  RE c = a OR b < 
4c50: 63 20 7d 0a 36 38 20 20 7b 20 53 45 4c 45 43 54  c }.68  { SELECT
4c60: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
4c70: 20 62 20 3e 20 61 20 7d 0a 36 39 20 20 7b 20 53   b > a }.69  { S
4c80: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4c90: 57 48 45 52 45 20 61 20 3c 20 62 20 4f 52 20 61  WHERE a < b OR a
4ca0: 20 3e 20 34 35 34 33 2e 32 36 36 34 38 32 20 4f   > 4543.266482 O
4cb0: 52 20 27 73 61 6d 65 27 20 3d 20 62 20 7d 0a 37  R 'same' = b }.7
4cc0: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
4cd0: 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 3c 20  OM t3 WHERE c < 
4ce0: 63 20 4f 52 20 62 20 3c 3d 20 63 20 4f 52 20 61  c OR b <= c OR a
4cf0: 20 3c 3d 20 62 20 7d 0a 37 31 20 20 7b 20 53 45   <= b }.71  { SE
4d00: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4d10: 48 45 52 45 20 63 20 3e 20 61 20 7d 0a 37 32 20  HERE c > a }.72 
4d20: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4d30: 20 74 33 20 57 48 45 52 45 20 63 20 3e 20 62 20   t3 WHERE c > b 
4d40: 7d 0a 37 33 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.73  { SELECT *
4d50: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62   FROM t3 WHERE b
4d60: 20 3c 3d 20 61 20 7d 0a 37 34 20 20 7b 20 53 45   <= a }.74  { SE
4d70: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4d80: 48 45 52 45 20 33 32 38 32 33 30 36 36 34 37 20  HERE 3282306647 
4d90: 3c 20 62 20 41 4e 44 20 61 20 3e 3d 20 27 6f 72  < b AND a >= 'or
4da0: 27 20 4f 52 20 61 20 3e 3d 20 33 37 38 36 37 38  ' OR a >= 378678
4db0: 33 31 36 2e 35 20 7d 0a 37 35 20 20 7b 20 53 45  316.5 }.75  { SE
4dc0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4dd0: 48 45 52 45 20 35 30 2e 35 38 32 32 33 31 37 32  HERE 50.58223172
4de0: 20 3c 3d 20 63 20 4f 52 20 63 20 3d 20 63 20 41   <= c OR c = c A
4df0: 4e 44 20 62 20 3c 20 62 20 7d 0a 37 36 20 20 7b  ND b < b }.76  {
4e00: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4e10: 33 20 57 48 45 52 45 20 27 61 6e 64 27 20 3c 20  3 WHERE 'and' < 
4e20: 62 20 4f 52 20 62 20 3c 20 63 20 4f 52 20 63 20  b OR b < c OR c 
4e30: 3e 20 31 33 33 39 2e 33 36 30 37 32 36 20 7d 0a  > 1339.360726 }.
4e40: 37 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  77  { SELECT * F
4e50: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20 3c  ROM t3 WHERE b <
4e60: 3d 20 63 20 7d 0a 37 38 20 20 7b 20 53 45 4c 45  = c }.78  { SELE
4e70: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4e80: 52 45 20 27 69 6e 27 20 3c 3d 20 63 20 7d 0a 37  RE 'in' <= c }.7
4e90: 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  9  { SELECT * FR
4ea0: 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 3c 3d  OM t3 WHERE c <=
4eb0: 20 62 20 41 4e 44 20 61 20 3e 20 61 20 41 4e 44   b AND a > a AND
4ec0: 20 63 20 3c 20 62 20 7d 0a 38 30 20 20 7b 20 53   c < b }.80  { S
4ed0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4ee0: 57 48 45 52 45 20 27 6f 76 65 72 27 20 3c 20 62  WHERE 'over' < b
4ef0: 20 7d 0a 38 31 20 20 7b 20 53 45 4c 45 43 54 20   }.81  { SELECT 
4f00: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4f10: 62 20 3e 3d 20 62 20 4f 52 20 62 20 3c 20 63 20  b >= b OR b < c 
4f20: 4f 52 20 61 20 3c 20 62 20 7d 0a 38 32 20 20 7b  OR a < b }.82  {
4f30: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4f40: 33 20 57 48 45 52 45 20 27 74 6f 77 65 72 69 6e  3 WHERE 'towerin
4f50: 67 27 20 3c 3d 20 62 20 4f 52 20 27 74 6f 77 65  g' <= b OR 'towe
4f60: 72 69 6e 67 27 20 3d 20 61 20 41 4e 44 20 63 20  ring' = a AND c 
4f70: 3e 20 62 20 7d 0a 38 33 20 20 7b 20 53 45 4c 45  > b }.83  { SELE
4f80: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4f90: 52 45 20 27 70 65 61 6b 27 20 3d 20 61 20 4f 52  RE 'peak' = a OR
4fa0: 20 62 20 42 45 54 57 45 45 4e 20 32 36 34 33 33   b BETWEEN 26433
4fb0: 38 33 32 37 39 20 41 4e 44 20 27 74 68 65 27 20  83279 AND 'the' 
4fc0: 7d 0a 38 34 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.84  { SELECT *
4fd0: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27   FROM t3 WHERE '
4fe0: 61 6e 27 20 3c 20 63 20 41 4e 44 20 63 20 3e 20  an' < c AND c > 
4ff0: 27 74 68 65 27 20 41 4e 44 20 63 20 49 53 20 4e  'the' AND c IS N
5000: 55 4c 4c 20 7d 0a 38 35 20 20 7b 20 53 45 4c 45  ULL }.85  { SELE
5010: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
5020: 52 45 20 61 20 3c 3d 20 27 73 6f 6d 65 74 69 6d  RE a <= 'sometim
5030: 65 73 27 20 41 4e 44 20 61 20 42 45 54 57 45 45  es' AND a BETWEE
5040: 4e 20 27 75 6e 61 6c 69 6b 65 27 20 41 4e 44 20  N 'unalike' AND 
5050: 31 33 33 39 2e 33 36 30 37 32 36 20 7d 0a 38 36  1339.360726 }.86
5060: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
5070: 4d 20 74 33 20 57 48 45 52 45 20 31 33 33 39 2e  M t3 WHERE 1339.
5080: 33 36 30 37 32 36 20 3c 20 63 20 41 4e 44 20 63  360726 < c AND c
5090: 20 49 53 20 4e 55 4c 4c 20 7d 0a 38 37 20 20 7b   IS NULL }.87  {
50a0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
50b0: 33 20 57 48 45 52 45 20 62 20 3e 20 27 74 68 65  3 WHERE b > 'the
50c0: 27 20 7d 0a 38 38 20 20 7b 20 53 45 4c 45 43 54  ' }.88  { SELECT
50d0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
50e0: 20 27 61 6e 64 27 20 3d 20 61 20 7d 0a 38 39 20   'and' = a }.89 
50f0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5100: 20 74 33 20 57 48 45 52 45 20 62 20 3e 3d 20 62   t3 WHERE b >= b
5110: 20 7d 0a 39 30 20 20 7b 20 53 45 4c 45 43 54 20   }.90  { SELECT 
5120: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
5130: 62 20 3e 3d 20 38 39 37 39 33 32 33 38 34 36 20  b >= 8979323846 
5140: 7d 0a 39 31 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.91  { SELECT *
5150: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63   FROM t3 WHERE c
5160: 20 3c 3d 20 61 20 7d 0a 39 32 20 20 7b 20 53 45   <= a }.92  { SE
5170: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
5180: 48 45 52 45 20 61 20 42 45 54 57 45 45 4e 20 27  HERE a BETWEEN '
5190: 68 61 76 65 27 20 41 4e 44 20 27 6c 69 67 68 74  have' AND 'light
51a0: 27 20 4f 52 20 61 20 3e 20 62 20 4f 52 20 61 20  ' OR a > b OR a 
51b0: 3e 3d 20 33 37 38 36 37 38 33 31 36 2e 35 20 7d  >= 378678316.5 }
51c0: 0a 39 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .93  { SELECT * 
51d0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
51e0: 3e 20 33 32 38 32 33 30 36 36 34 37 20 7d 0a 39  > 3282306647 }.9
51f0: 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  4  { SELECT * FR
5200: 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20 3e 20  OM t3 WHERE b > 
5210: 63 20 7d 0a 39 35 20 20 7b 20 53 45 4c 45 43 54  c }.95  { SELECT
5220: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
5230: 20 62 20 3e 3d 20 61 20 41 4e 44 20 27 76 69 6c   b >= a AND 'vil
5240: 6c 61 67 65 73 27 20 3e 20 61 20 41 4e 44 20 62  lages' > a AND b
5250: 20 3e 3d 20 63 20 7d 0a 39 36 20 20 7b 20 53 45   >= c }.96  { SE
5260: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
5270: 48 45 52 45 20 27 61 6e 67 6c 65 27 20 3e 20 61  HERE 'angle' > a
5280: 20 7d 0a 39 37 20 20 7b 20 53 45 4c 45 43 54 20   }.97  { SELECT 
5290: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
52a0: 27 70 61 69 6e 74 69 6e 67 73 27 20 3e 3d 20 61  'paintings' >= a
52b0: 20 7d 0a 39 38 20 20 7b 20 53 45 4c 45 43 54 20   }.98  { SELECT 
52c0: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
52d0: 27 6f 72 27 20 3e 3d 20 63 20 7d 0a 39 39 20 20  'or' >= c }.99  
52e0: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
52f0: 74 33 20 57 48 45 52 45 20 63 20 3c 20 62 20 7d  t3 WHERE c < b }
5300: 0a 0a 0a 31 30 31 20 20 7b 20 53 45 4c 45 43 54  ...101  { SELECT
5310: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
5320: 48 45 52 45 20 66 20 3c 20 27 73 6f 6d 65 74 69  HERE f < 'someti
5330: 6d 65 73 27 20 4f 52 20 27 6f 76 65 72 27 20 3c  mes' OR 'over' <
5340: 3d 20 67 20 41 4e 44 20 68 20 3c 20 31 34 31 35  = g AND h < 1415
5350: 39 32 36 35 33 35 20 7d 0a 31 30 32 20 20 7b 20  926535 }.102  { 
5360: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5370: 2c 20 74 34 20 57 48 45 52 45 20 68 20 3e 3d 20  , t4 WHERE h >= 
5380: 27 66 72 6f 6d 27 20 41 4e 44 20 68 20 3c 20 36  'from' AND h < 6
5390: 39 33 39 39 33 37 35 31 30 20 4f 52 20 67 20 3e  939937510 OR g >
53a0: 20 68 20 7d 0a 31 30 33 20 20 7b 20 53 45 4c 45   h }.103  { SELE
53b0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
53c0: 20 57 48 45 52 45 20 63 20 3c 3d 20 68 20 41 4e   WHERE c <= h AN
53d0: 44 20 67 20 3d 20 68 20 41 4e 44 20 63 20 3e 3d  D g = h AND c >=
53e0: 20 27 61 6c 6c 27 20 7d 0a 31 30 34 20 20 7b 20   'all' }.104  { 
53f0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5400: 2c 20 74 34 20 57 48 45 52 45 20 63 20 3d 20 61  , t4 WHERE c = a
5410: 20 7d 0a 31 30 35 20 20 7b 20 53 45 4c 45 43 54   }.105  { SELECT
5420: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
5430: 48 45 52 45 20 27 6f 66 27 20 3e 3d 20 68 20 7d  HERE 'of' >= h }
5440: 0a 31 30 36 20 20 7b 20 53 45 4c 45 43 54 20 2a  .106  { SELECT *
5450: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5460: 52 45 20 66 20 3e 3d 20 62 20 41 4e 44 20 61 20  RE f >= b AND a 
5470: 3c 20 67 20 41 4e 44 20 68 20 3c 20 27 61 6e 64  < g AND h < 'and
5480: 27 20 7d 0a 31 30 37 20 20 7b 20 53 45 4c 45 43  ' }.107  { SELEC
5490: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
54a0: 57 48 45 52 45 20 66 20 3c 3d 20 38 36 32 38 30  WHERE f <= 86280
54b0: 33 34 38 32 35 20 41 4e 44 20 30 39 33 38 34 34  34825 AND 093844
54c0: 36 30 39 35 20 3e 3d 20 62 20 7d 0a 31 30 38 20  6095 >= b }.108 
54d0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
54e0: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61 20   t3, t4 WHERE a 
54f0: 3c 20 27 74 68 65 27 20 7d 0a 31 30 39 20 20 7b  < 'the' }.109  {
5500: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5510: 33 2c 20 74 34 20 57 48 45 52 45 20 66 20 3d 20  3, t4 WHERE f = 
5520: 27 73 6f 6d 65 74 69 6d 65 73 27 20 4f 52 20 62  'sometimes' OR b
5530: 20 3c 20 27 6f 66 27 20 7d 0a 31 31 30 20 20 7b   < 'of' }.110  {
5540: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5550: 33 2c 20 74 34 20 57 48 45 52 45 20 63 20 49 53  3, t4 WHERE c IS
5560: 20 4e 55 4c 4c 20 7d 0a 31 31 31 20 20 7b 20 53   NULL }.111  { S
5570: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5580: 20 74 34 20 57 48 45 52 45 20 27 68 61 76 65 27   t4 WHERE 'have'
5590: 20 3d 20 62 20 4f 52 20 67 20 3c 3d 20 33 34 36   = b OR g <= 346
55a0: 2e 30 33 34 38 36 31 30 20 7d 0a 31 31 32 20 20  .0348610 }.112  
55b0: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
55c0: 74 33 2c 20 74 34 20 57 48 45 52 45 20 66 20 3e  t3, t4 WHERE f >
55d0: 20 62 20 41 4e 44 20 62 20 3c 3d 20 68 20 7d 0a   b AND b <= h }.
55e0: 31 31 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  113  { SELECT * 
55f0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5600: 45 20 66 20 3e 20 63 20 4f 52 20 27 74 68 65 27  E f > c OR 'the'
5610: 20 3d 20 61 20 4f 52 20 35 30 2e 35 38 32 32 33   = a OR 50.58223
5620: 31 37 32 20 3d 20 61 20 7d 0a 31 31 34 20 20 7b  172 = a }.114  {
5630: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5640: 33 2c 20 74 34 20 57 48 45 52 45 20 32 36 34 33  3, t4 WHERE 2643
5650: 33 38 33 32 37 39 20 3c 3d 20 61 20 41 4e 44 20  383279 <= a AND 
5660: 63 20 3d 20 61 20 7d 0a 31 31 35 20 20 7b 20 53  c = a }.115  { S
5670: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5680: 20 74 34 20 57 48 45 52 45 20 68 20 3e 3d 20 62   t4 WHERE h >= b
5690: 20 41 4e 44 20 27 69 74 27 20 3c 3d 20 62 20 7d   AND 'it' <= b }
56a0: 0a 31 31 36 20 20 7b 20 53 45 4c 45 43 54 20 2a  .116  { SELECT *
56b0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
56c0: 52 45 20 67 20 42 45 54 57 45 45 4e 20 27 66 72  RE g BETWEEN 'fr
56d0: 6f 6d 27 20 41 4e 44 20 27 70 65 61 6b 27 20 7d  om' AND 'peak' }
56e0: 0a 31 31 37 20 20 7b 20 53 45 4c 45 43 54 20 2a  .117  { SELECT *
56f0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5700: 52 45 20 27 74 68 65 69 72 27 20 3e 20 61 20 41  RE 'their' > a A
5710: 4e 44 20 67 20 3e 20 62 20 41 4e 44 20 66 20 3c  ND g > b AND f <
5720: 3d 20 63 20 7d 0a 31 31 38 20 20 7b 20 53 45 4c  = c }.118  { SEL
5730: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
5740: 34 20 57 48 45 52 45 20 68 20 3d 20 35 30 32 38  4 WHERE h = 5028
5750: 38 34 31 39 37 31 20 41 4e 44 20 27 75 6e 61 6c  841971 AND 'unal
5760: 69 6b 65 27 20 3c 3d 20 66 20 7d 0a 31 31 39 20  ike' <= f }.119 
5770: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5780: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 63 20   t3, t4 WHERE c 
5790: 49 53 20 4e 55 4c 4c 20 41 4e 44 20 61 20 3d 20  IS NULL AND a = 
57a0: 33 32 38 32 33 30 36 36 34 37 20 4f 52 20 61 20  3282306647 OR a 
57b0: 3c 3d 20 27 41 6c 70 69 6e 65 27 20 7d 0a 31 32  <= 'Alpine' }.12
57c0: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
57d0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
57e0: 27 73 6f 6d 65 74 69 6d 65 73 27 20 3c 3d 20 66  'sometimes' <= f
57f0: 20 4f 52 20 38 32 31 34 38 30 38 36 35 31 20 3e   OR 8214808651 >
5800: 3d 20 61 20 41 4e 44 20 62 20 3c 3d 20 35 33 35  = a AND b <= 535
5810: 39 34 2e 30 38 31 32 38 20 7d 0a 31 32 31 20 20  94.08128 }.121  
5820: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
5830: 74 33 2c 20 74 34 20 57 48 45 52 45 20 36 39 33  t3, t4 WHERE 693
5840: 39 39 33 37 35 31 30 20 3c 3d 20 66 20 4f 52 20  9937510 <= f OR 
5850: 63 20 3c 20 66 20 4f 52 20 27 73 6f 6d 65 74 69  c < f OR 'someti
5860: 6d 65 73 27 20 3d 20 63 20 7d 0a 31 32 32 20 20  mes' = c }.122  
5870: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
5880: 74 33 2c 20 74 34 20 57 48 45 52 45 20 62 20 3c  t3, t4 WHERE b <
5890: 20 27 6f 6e 6c 6f 6f 6b 65 72 73 27 20 41 4e 44   'onlookers' AND
58a0: 20 27 70 61 69 6e 74 69 6e 67 73 27 20 3d 20 67   'paintings' = g
58b0: 20 41 4e 44 20 63 20 3c 3d 20 68 20 7d 0a 31 32   AND c <= h }.12
58c0: 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  3  { SELECT * FR
58d0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
58e0: 61 20 42 45 54 57 45 45 4e 20 27 61 6c 6c 27 20  a BETWEEN 'all' 
58f0: 41 4e 44 20 27 66 72 6f 6d 27 20 4f 52 20 63 20  AND 'from' OR c 
5900: 3e 20 33 34 36 2e 30 33 34 38 36 31 30 20 7d 0a  > 346.0348610 }.
5910: 31 32 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  124  { SELECT * 
5920: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5930: 45 20 27 66 72 6f 6d 27 20 3c 3d 20 62 20 4f 52  E 'from' <= b OR
5940: 20 61 20 42 45 54 57 45 45 4e 20 35 33 35 39 34   a BETWEEN 53594
5950: 2e 30 38 31 32 38 20 41 4e 44 20 27 74 68 65 69  .08128 AND 'thei
5960: 72 27 20 41 4e 44 20 63 20 3e 20 61 20 7d 0a 31  r' AND c > a }.1
5970: 32 35 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  25  { SELECT * F
5980: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5990: 20 68 20 3d 20 32 36 34 33 33 38 33 32 37 39 20   h = 2643383279 
59a0: 7d 0a 31 32 36 20 20 7b 20 53 45 4c 45 43 54 20  }.126  { SELECT 
59b0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
59c0: 45 52 45 20 61 20 3c 3d 20 27 74 68 65 27 20 7d  ERE a <= 'the' }
59d0: 0a 31 32 37 20 20 7b 20 53 45 4c 45 43 54 20 2a  .127  { SELECT *
59e0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
59f0: 52 45 20 68 20 3c 3d 20 63 20 7d 0a 31 32 38 20  RE h <= c }.128 
5a00: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5a10: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 67 20   t3, t4 WHERE g 
5a20: 3c 3d 20 33 34 36 2e 30 33 34 38 36 31 30 20 41  <= 346.0348610 A
5a30: 4e 44 20 36 36 2e 35 39 33 33 34 34 36 31 20 3e  ND 66.59334461 >
5a40: 3d 20 66 20 41 4e 44 20 66 20 3c 3d 20 66 20 7d  = f AND f <= f }
5a50: 0a 31 32 39 20 20 7b 20 53 45 4c 45 43 54 20 2a  .129  { SELECT *
5a60: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5a70: 52 45 20 67 20 3e 3d 20 63 20 4f 52 20 27 69 6e  RE g >= c OR 'in
5a80: 27 20 3c 20 62 20 4f 52 20 62 20 3e 20 67 20 7d  ' < b OR b > g }
5a90: 0a 31 33 30 20 20 7b 20 53 45 4c 45 43 54 20 2a  .130  { SELECT *
5aa0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5ab0: 52 45 20 27 6f 76 65 72 27 20 3e 20 67 20 41 4e  RE 'over' > g AN
5ac0: 44 20 62 20 42 45 54 57 45 45 4e 20 27 75 6e 61  D b BETWEEN 'una
5ad0: 6c 69 6b 65 27 20 41 4e 44 20 27 72 65 6d 61 72  like' AND 'remar
5ae0: 6b 61 62 6c 79 27 20 7d 0a 31 33 31 20 20 7b 20  kably' }.131  { 
5af0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5b00: 2c 20 74 34 20 57 48 45 52 45 20 68 20 3c 3d 20  , t4 WHERE h <= 
5b10: 32 38 34 37 35 36 34 2e 38 32 33 20 7d 0a 31 33  2847564.823 }.13
5b20: 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  2  { SELECT * FR
5b30: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5b40: 68 20 3c 3d 20 27 72 65 6d 61 72 6b 61 62 6c 79  h <= 'remarkably
5b50: 27 20 41 4e 44 20 34 35 34 33 2e 32 36 36 34 38  ' AND 4543.26648
5b60: 32 20 3e 20 68 20 7d 0a 31 33 33 20 20 7b 20 53  2 > h }.133  { S
5b70: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5b80: 20 74 34 20 57 48 45 52 45 20 61 20 3e 3d 20 63   t4 WHERE a >= c
5b90: 20 41 4e 44 20 27 69 74 27 20 3e 20 67 20 41 4e   AND 'it' > g AN
5ba0: 44 20 63 20 3c 20 63 20 7d 0a 31 33 34 20 20 7b  D c < c }.134  {
5bb0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5bc0: 33 2c 20 74 34 20 57 48 45 52 45 20 68 20 3c 3d  3, t4 WHERE h <=
5bd0: 20 36 36 2e 35 39 33 33 34 34 36 31 20 41 4e 44   66.59334461 AND
5be0: 20 62 20 3e 20 33 34 32 31 31 37 30 36 37 39 20   b > 3421170679 
5bf0: 7d 0a 31 33 35 20 20 7b 20 53 45 4c 45 43 54 20  }.135  { SELECT 
5c00: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5c10: 45 52 45 20 68 20 3c 20 27 61 72 65 27 20 4f 52  ERE h < 'are' OR
5c20: 20 66 20 42 45 54 57 45 45 4e 20 30 39 33 38 34   f BETWEEN 09384
5c30: 34 36 30 39 35 20 41 4e 44 20 27 61 72 65 27 20  46095 AND 'are' 
5c40: 4f 52 20 62 20 3d 20 62 20 7d 0a 31 33 36 20 20  OR b = b }.136  
5c50: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
5c60: 74 33 2c 20 74 34 20 57 48 45 52 45 20 68 20 3d  t3, t4 WHERE h =
5c70: 20 61 20 4f 52 20 36 36 2e 35 39 33 33 34 34 36   a OR 66.5933446
5c80: 31 20 3c 3d 20 66 20 7d 0a 31 33 37 20 20 7b 20  1 <= f }.137  { 
5c90: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5ca0: 2c 20 74 34 20 57 48 45 52 45 20 66 20 3e 20 27  , t4 WHERE f > '
5cb0: 6f 66 27 20 4f 52 20 68 20 3c 3d 20 68 20 4f 52  of' OR h <= h OR
5cc0: 20 61 20 3d 20 66 20 7d 0a 31 33 38 20 20 7b 20   a = f }.138  { 
5cd0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5ce0: 2c 20 74 34 20 57 48 45 52 45 20 27 6f 74 68 65  , t4 WHERE 'othe
5cf0: 72 27 20 3e 3d 20 67 20 7d 0a 31 33 39 20 20 7b  r' >= g }.139  {
5d00: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5d10: 33 2c 20 74 34 20 57 48 45 52 45 20 62 20 3c 3d  3, t4 WHERE b <=
5d20: 20 33 34 32 31 31 37 30 36 37 39 20 7d 0a 31 34   3421170679 }.14
5d30: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
5d40: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5d50: 27 61 6c 6c 27 20 3d 20 66 20 41 4e 44 20 34 35  'all' = f AND 45
5d60: 34 33 2e 32 36 36 34 38 32 20 3d 20 62 20 4f 52  43.266482 = b OR
5d70: 20 66 20 42 45 54 57 45 45 4e 20 27 61 6e 64 27   f BETWEEN 'and'
5d80: 20 41 4e 44 20 27 61 6e 67 6c 65 27 20 7d 0a 31   AND 'angle' }.1
5d90: 34 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  41  { SELECT * F
5da0: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5db0: 20 27 6c 69 67 68 74 27 20 3d 20 66 20 4f 52 20   'light' = f OR 
5dc0: 68 20 42 45 54 57 45 45 4e 20 27 72 65 6d 61 72  h BETWEEN 'remar
5dd0: 6b 61 62 6c 79 27 20 41 4e 44 20 31 34 31 35 39  kably' AND 14159
5de0: 32 36 35 33 35 20 7d 0a 31 34 32 20 20 7b 20 53  26535 }.142  { S
5df0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5e00: 20 74 34 20 57 48 45 52 45 20 27 68 69 6c 6c 73   t4 WHERE 'hills
5e10: 27 20 3d 20 66 20 4f 52 20 27 74 68 65 27 20 3e  ' = f OR 'the' >
5e20: 3d 20 66 20 7d 0a 31 34 33 20 20 7b 20 53 45 4c  = f }.143  { SEL
5e30: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
5e40: 34 20 57 48 45 52 45 20 61 20 3e 20 33 34 36 2e  4 WHERE a > 346.
5e50: 30 33 34 38 36 31 30 20 7d 0a 31 34 34 20 20 7b  0348610 }.144  {
5e60: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5e70: 33 2c 20 74 34 20 57 48 45 52 45 20 35 30 32 38  3, t4 WHERE 5028
5e80: 38 34 31 39 37 31 20 3d 20 68 20 7d 0a 31 34 35  841971 = h }.145
5e90: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
5ea0: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 62  M t3, t4 WHERE b
5eb0: 20 3e 3d 20 63 20 41 4e 44 20 27 74 68 65 27 20   >= c AND 'the' 
5ec0: 3e 3d 20 67 20 4f 52 20 34 35 2e 36 34 38 35 36  >= g OR 45.64856
5ed0: 36 39 32 20 3c 3d 20 67 20 7d 0a 31 34 36 20 20  692 <= g }.146  
5ee0: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
5ef0: 74 33 2c 20 74 34 20 57 48 45 52 45 20 63 20 3c  t3, t4 WHERE c <
5f00: 20 35 30 32 38 38 34 31 39 37 31 20 7d 0a 31 34   5028841971 }.14
5f10: 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  7  { SELECT * FR
5f20: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5f30: 61 20 3e 20 61 20 7d 0a 31 34 38 20 20 7b 20 53  a > a }.148  { S
5f40: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5f50: 20 74 34 20 57 48 45 52 45 20 63 20 3d 20 27 73   t4 WHERE c = 's
5f60: 6e 61 70 73 68 6f 74 73 27 20 7d 0a 31 34 39 20  napshots' }.149 
5f70: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5f80: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 68 20   t3, t4 WHERE h 
5f90: 3e 20 31 33 33 39 2e 33 36 30 37 32 36 20 41 4e  > 1339.360726 AN
5fa0: 44 20 27 61 6e 64 27 20 3e 20 63 20 7d 0a 31 35  D 'and' > c }.15
5fb0: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
5fc0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5fd0: 27 61 6e 64 27 20 3e 20 67 20 4f 52 20 27 73 6f  'and' > g OR 'so
5fe0: 6d 65 74 69 6d 65 73 27 20 3d 20 63 20 7d 0a 31  metimes' = c }.1
5ff0: 35 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  51  { SELECT * F
6000: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
6010: 20 67 20 3e 3d 20 27 74 68 65 27 20 41 4e 44 20   g >= 'the' AND 
6020: 62 20 3e 3d 20 27 6f 6e 6c 6f 6f 6b 65 72 73 27  b >= 'onlookers'
6030: 20 7d 0a 31 35 32 20 20 7b 20 53 45 4c 45 43 54   }.152  { SELECT
6040: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
6050: 48 45 52 45 20 68 20 42 45 54 57 45 45 4e 20 27  HERE h BETWEEN '
6060: 6f 74 68 65 72 27 20 41 4e 44 20 32 36 34 33 33  other' AND 26433
6070: 38 33 32 37 39 20 7d 0a 31 35 33 20 20 7b 20 53  83279 }.153  { S
6080: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
6090: 20 74 34 20 57 48 45 52 45 20 27 69 74 27 20 3d   t4 WHERE 'it' =
60a0: 20 62 20 7d 0a 31 35 34 20 20 7b 20 53 45 4c 45   b }.154  { SELE
60b0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
60c0: 20 57 48 45 52 45 20 66 20 3d 20 63 20 4f 52 20   WHERE f = c OR 
60d0: 63 20 42 45 54 57 45 45 4e 20 27 61 6e 64 27 20  c BETWEEN 'and' 
60e0: 41 4e 44 20 30 2e 34 38 31 31 31 37 34 35 30 32  AND 0.4811174502
60f0: 20 7d 0a 31 35 35 20 20 7b 20 53 45 4c 45 43 54   }.155  { SELECT
6100: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
6110: 48 45 52 45 20 62 20 3c 3d 20 27 73 6f 6d 65 74  HERE b <= 'somet
6120: 69 6d 65 73 27 20 4f 52 20 63 20 3c 3d 20 30 39  imes' OR c <= 09
6130: 33 38 34 34 36 30 39 35 20 7d 0a 31 35 36 20 20  38446095 }.156  
6140: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6150: 74 33 2c 20 74 34 20 57 48 45 52 45 20 27 61 6e  t3, t4 WHERE 'an
6160: 64 27 20 3c 3d 20 62 20 7d 0a 31 35 37 20 20 7b  d' <= b }.157  {
6170: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6180: 33 2c 20 74 34 20 57 48 45 52 45 20 67 20 3e 20  3, t4 WHERE g > 
6190: 61 20 41 4e 44 20 66 20 3d 20 27 74 68 65 27 20  a AND f = 'the' 
61a0: 41 4e 44 20 62 20 3c 20 61 20 7d 0a 31 35 38 20  AND b < a }.158 
61b0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
61c0: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61 20   t3, t4 WHERE a 
61d0: 3c 20 27 61 6e 27 20 7d 0a 31 35 39 20 20 7b 20  < 'an' }.159  { 
61e0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
61f0: 2c 20 74 34 20 57 48 45 52 45 20 61 20 42 45 54  , t4 WHERE a BET
6200: 57 45 45 4e 20 27 68 69 73 27 20 41 4e 44 20 27  WEEN 'his' AND '
6210: 73 61 6d 65 27 20 4f 52 20 38 36 32 38 30 33 34  same' OR 8628034
6220: 38 32 35 20 3e 20 66 20 7d 0a 31 36 30 20 20 7b  825 > f }.160  {
6230: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6240: 33 2c 20 74 34 20 57 48 45 52 45 20 62 20 3d 20  3, t4 WHERE b = 
6250: 27 70 65 61 6b 27 20 7d 0a 31 36 31 20 20 7b 20  'peak' }.161  { 
6260: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6270: 2c 20 74 34 20 57 48 45 52 45 20 66 20 49 53 20  , t4 WHERE f IS 
6280: 4e 55 4c 4c 20 41 4e 44 20 61 20 3e 3d 20 68 20  NULL AND a >= h 
6290: 7d 0a 31 36 32 20 20 7b 20 53 45 4c 45 43 54 20  }.162  { SELECT 
62a0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
62b0: 45 52 45 20 61 20 49 53 20 4e 55 4c 4c 20 4f 52  ERE a IS NULL OR
62c0: 20 32 36 34 33 33 38 33 32 37 39 20 3d 20 63 20   2643383279 = c 
62d0: 7d 0a 31 36 33 20 20 7b 20 53 45 4c 45 43 54 20  }.163  { SELECT 
62e0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
62f0: 45 52 45 20 62 20 3e 3d 20 35 30 32 38 38 34 31  ERE b >= 5028841
6300: 39 37 31 20 41 4e 44 20 66 20 3c 20 63 20 41 4e  971 AND f < c AN
6310: 44 20 61 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 36  D a IS NULL }.16
6320: 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  4  { SELECT * FR
6330: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6340: 61 20 3e 3d 20 67 20 7d 0a 31 36 35 20 20 7b 20  a >= g }.165  { 
6350: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6360: 2c 20 74 34 20 57 48 45 52 45 20 63 20 49 53 20  , t4 WHERE c IS 
6370: 4e 55 4c 4c 20 7d 0a 31 36 36 20 20 7b 20 53 45  NULL }.166  { SE
6380: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
6390: 74 34 20 57 48 45 52 45 20 68 20 3e 3d 20 68 20  t4 WHERE h >= h 
63a0: 7d 0a 31 36 37 20 20 7b 20 53 45 4c 45 43 54 20  }.167  { SELECT 
63b0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
63c0: 45 52 45 20 27 6f 76 65 72 27 20 3c 3d 20 68 20  ERE 'over' <= h 
63d0: 7d 0a 31 36 38 20 20 7b 20 53 45 4c 45 43 54 20  }.168  { SELECT 
63e0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
63f0: 45 52 45 20 62 20 3c 20 34 35 34 33 2e 32 36 36  ERE b < 4543.266
6400: 34 38 32 20 4f 52 20 62 20 3d 20 32 36 34 33 33  482 OR b = 26433
6410: 38 33 32 37 39 20 4f 52 20 38 36 32 38 30 33 34  83279 OR 8628034
6420: 38 32 35 20 3c 20 62 20 7d 0a 31 36 39 20 20 7b  825 < b }.169  {
6430: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6440: 33 2c 20 74 34 20 57 48 45 52 45 20 67 20 3e 3d  3, t4 WHERE g >=
6450: 20 36 39 33 39 39 33 37 35 31 30 20 7d 0a 31 37   6939937510 }.17
6460: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
6470: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6480: 27 6f 72 27 20 3c 20 61 20 4f 52 20 62 20 3c 20  'or' < a OR b < 
6490: 67 20 7d 0a 31 37 31 20 20 7b 20 53 45 4c 45 43  g }.171  { SELEC
64a0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
64b0: 57 48 45 52 45 20 68 20 3c 20 27 68 69 6c 6c 73  WHERE h < 'hills
64c0: 27 20 4f 52 20 27 61 6e 64 27 20 3e 20 67 20 7d  ' OR 'and' > g }
64d0: 0a 31 37 32 20 20 7b 20 53 45 4c 45 43 54 20 2a  .172  { SELECT *
64e0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
64f0: 52 45 20 27 66 72 6f 6d 27 20 3e 20 66 20 4f 52  RE 'from' > f OR
6500: 20 66 20 3c 3d 20 66 20 7d 0a 31 37 33 20 20 7b   f <= f }.173  {
6510: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6520: 33 2c 20 74 34 20 57 48 45 52 45 20 27 76 69 65  3, t4 WHERE 'vie
6530: 77 65 64 27 20 3e 20 62 20 41 4e 44 20 66 20 3c  wed' > b AND f <
6540: 20 63 20 7d 0a 31 37 34 20 20 7b 20 53 45 4c 45   c }.174  { SELE
6550: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
6560: 20 57 48 45 52 45 20 27 6f 66 27 20 3c 3d 20 61   WHERE 'of' <= a
6570: 20 7d 0a 31 37 35 20 20 7b 20 53 45 4c 45 43 54   }.175  { SELECT
6580: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
6590: 48 45 52 45 20 66 20 3e 20 30 39 33 38 34 34 36  HERE f > 0938446
65a0: 30 39 35 20 7d 0a 31 37 36 20 20 7b 20 53 45 4c  095 }.176  { SEL
65b0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
65c0: 34 20 57 48 45 52 45 20 61 20 3d 20 67 20 7d 0a  4 WHERE a = g }.
65d0: 31 37 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  177  { SELECT * 
65e0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
65f0: 45 20 67 20 3e 3d 20 62 20 41 4e 44 20 66 20 42  E g >= b AND f B
6600: 45 54 57 45 45 4e 20 27 70 65 61 6b 27 20 41 4e  ETWEEN 'peak' AN
6610: 44 20 27 61 6e 64 27 20 7d 0a 31 37 38 20 20 7b  D 'and' }.178  {
6620: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6630: 33 2c 20 74 34 20 57 48 45 52 45 20 67 20 3d 20  3, t4 WHERE g = 
6640: 61 20 41 4e 44 20 27 69 74 27 20 3e 20 66 20 7d  a AND 'it' > f }
6650: 0a 31 37 39 20 20 7b 20 53 45 4c 45 43 54 20 2a  .179  { SELECT *
6660: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
6670: 52 45 20 61 20 3c 3d 20 62 20 4f 52 20 27 66 72  RE a <= b OR 'fr
6680: 6f 6d 27 20 3e 20 66 20 7d 0a 31 38 30 20 20 7b  om' > f }.180  {
6690: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
66a0: 33 2c 20 74 34 20 57 48 45 52 45 20 66 20 3c 20  3, t4 WHERE f < 
66b0: 27 61 6e 64 27 20 7d 0a 31 38 31 20 20 7b 20 53  'and' }.181  { S
66c0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
66d0: 20 74 34 20 57 48 45 52 45 20 36 39 33 39 39 33   t4 WHERE 693993
66e0: 37 35 31 30 20 3c 20 62 20 4f 52 20 27 73 6f 6d  7510 < b OR 'som
66f0: 65 74 69 6d 65 73 27 20 3c 20 68 20 7d 0a 31 38  etimes' < h }.18
6700: 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  2  { SELECT * FR
6710: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6720: 66 20 3e 20 67 20 41 4e 44 20 66 20 3c 20 27 70  f > g AND f < 'p
6730: 65 61 6b 27 20 7d 0a 31 38 33 20 20 7b 20 53 45  eak' }.183  { SE
6740: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
6750: 74 34 20 57 48 45 52 45 20 61 20 3c 3d 20 35 33  t4 WHERE a <= 53
6760: 35 39 34 2e 30 38 31 32 38 20 41 4e 44 20 63 20  594.08128 AND c 
6770: 3c 3d 20 66 20 41 4e 44 20 66 20 3e 3d 20 63 20  <= f AND f >= c 
6780: 7d 0a 31 38 34 20 20 7b 20 53 45 4c 45 43 54 20  }.184  { SELECT 
6790: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
67a0: 45 52 45 20 66 20 3d 20 63 20 4f 52 20 27 69 74  ERE f = c OR 'it
67b0: 27 20 3e 20 62 20 4f 52 20 67 20 42 45 54 57 45  ' > b OR g BETWE
67c0: 45 4e 20 27 74 68 65 27 20 41 4e 44 20 27 61 6c  EN 'the' AND 'al
67d0: 6c 27 20 7d 0a 31 38 35 20 20 7b 20 53 45 4c 45  l' }.185  { SELE
67e0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
67f0: 20 57 48 45 52 45 20 63 20 3c 3d 20 67 20 4f 52   WHERE c <= g OR
6800: 20 61 20 3d 20 68 20 7d 0a 31 38 36 20 20 7b 20   a = h }.186  { 
6810: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6820: 2c 20 74 34 20 57 48 45 52 45 20 27 73 61 6d 65  , t4 WHERE 'same
6830: 27 20 3d 20 62 20 4f 52 20 63 20 3e 3d 20 32 36  ' = b OR c >= 26
6840: 34 33 33 38 33 32 37 39 20 7d 0a 31 38 37 20 20  43383279 }.187  
6850: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6860: 74 33 2c 20 74 34 20 57 48 45 52 45 20 68 20 3c  t3, t4 WHERE h <
6870: 3d 20 67 20 4f 52 20 63 20 3e 20 36 36 2e 35 39  = g OR c > 66.59
6880: 33 33 34 34 36 31 20 4f 52 20 61 20 3c 3d 20 66  334461 OR a <= f
6890: 20 7d 0a 31 38 38 20 20 7b 20 53 45 4c 45 43 54   }.188  { SELECT
68a0: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
68b0: 48 45 52 45 20 62 20 3c 20 63 20 41 4e 44 20 66  HERE b < c AND f
68c0: 20 3d 20 27 77 72 69 74 69 6e 67 73 27 20 7d 0a   = 'writings' }.
68d0: 31 38 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  189  { SELECT * 
68e0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
68f0: 45 20 62 20 3c 20 61 20 7d 0a 31 39 30 20 20 7b  E b < a }.190  {
6900: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6910: 33 2c 20 74 34 20 57 48 45 52 45 20 63 20 3e 3d  3, t4 WHERE c >=
6920: 20 66 20 4f 52 20 63 20 3d 20 27 61 6e 64 27 20   f OR c = 'and' 
6930: 7d 0a 31 39 31 20 20 7b 20 53 45 4c 45 43 54 20  }.191  { SELECT 
6940: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
6950: 45 52 45 20 66 20 3e 3d 20 27 70 65 61 6b 27 20  ERE f >= 'peak' 
6960: 41 4e 44 20 67 20 3e 20 66 20 41 4e 44 20 68 20  AND g > f AND h 
6970: 3e 20 67 20 7d 0a 31 39 32 20 20 7b 20 53 45 4c  > g }.192  { SEL
6980: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
6990: 34 20 57 48 45 52 45 20 61 20 3e 3d 20 38 39 37  4 WHERE a >= 897
69a0: 39 33 32 33 38 34 36 20 41 4e 44 20 27 73 61 6d  9323846 AND 'sam
69b0: 65 27 20 3e 20 62 20 4f 52 20 63 20 3d 20 27 61  e' > b OR c = 'a
69c0: 6e 64 27 20 7d 0a 31 39 33 20 20 7b 20 53 45 4c  nd' }.193  { SEL
69d0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
69e0: 34 20 57 48 45 52 45 20 63 20 3e 3d 20 67 20 4f  4 WHERE c >= g O
69f0: 52 20 27 77 72 69 74 69 6e 67 73 27 20 3e 3d 20  R 'writings' >= 
6a00: 63 20 41 4e 44 20 62 20 3d 20 27 61 6c 6c 27 20  c AND b = 'all' 
6a10: 7d 0a 31 39 34 20 20 7b 20 53 45 4c 45 43 54 20  }.194  { SELECT 
6a20: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
6a30: 45 52 45 20 27 72 65 6d 61 72 6b 61 62 6c 79 27  ERE 'remarkably'
6a40: 20 3c 20 67 20 7d 0a 31 39 35 20 20 7b 20 53 45   < g }.195  { SE
6a50: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
6a60: 74 34 20 57 48 45 52 45 20 61 20 42 45 54 57 45  t4 WHERE a BETWE
6a70: 45 4e 20 27 6f 72 27 20 41 4e 44 20 27 70 61 69  EN 'or' AND 'pai
6a80: 6e 74 69 6e 67 73 27 20 41 4e 44 20 67 20 3c 3d  ntings' AND g <=
6a90: 20 66 20 7d 0a 31 39 36 20 20 7b 20 53 45 4c 45   f }.196  { SELE
6aa0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
6ab0: 20 57 48 45 52 45 20 30 39 33 38 34 34 36 30 39   WHERE 093844609
6ac0: 35 20 3e 20 62 20 4f 52 20 67 20 3c 3d 20 61 20  5 > b OR g <= a 
6ad0: 4f 52 20 68 20 3e 20 62 20 7d 0a 31 39 37 20 20  OR h > b }.197  
6ae0: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6af0: 74 33 2c 20 74 34 20 57 48 45 52 45 20 67 20 3d  t3, t4 WHERE g =
6b00: 20 32 36 34 33 33 38 33 32 37 39 20 41 4e 44 20   2643383279 AND 
6b10: 66 20 3d 20 67 20 7d 0a 31 39 38 20 20 7b 20 53  f = g }.198  { S
6b20: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
6b30: 20 74 34 20 57 48 45 52 45 20 67 20 3c 20 38 39   t4 WHERE g < 89
6b40: 37 39 33 32 33 38 34 36 20 7d 0a 31 39 39 20 20  79323846 }.199  
6b50: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6b60: 74 33 2c 20 74 34 20 57 48 45 52 45 20 27 61 72  t3, t4 WHERE 'ar
6b70: 65 27 20 3c 3d 20 62 20 7d 0a 32 30 30 20 20 7b  e' <= b }.200  {
6b80: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6b90: 33 2c 20 74 34 20 57 48 45 52 45 20 28 61 3d 31  3, t4 WHERE (a=1
6ba0: 34 31 35 39 32 36 35 33 35 20 41 4e 44 20 66 3d  415926535 AND f=
6bb0: 38 36 32 38 30 33 34 38 32 35 29 0a 20 20 20 20  8628034825).    
6bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6bd0: 20 20 20 20 20 20 20 20 20 20 20 4f 52 20 28 61             OR (a
6be0: 3d 36 39 33 39 39 33 37 35 31 30 20 41 4e 44 20  =6939937510 AND 
6bf0: 66 3d 32 36 34 33 33 38 33 32 37 39 29 20 7d 0a  f=2643383279) }.
6c00: 32 30 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  201  { SELECT * 
6c10: 46 52 4f 4d 20 74 33 2c 20 74 34 2c 20 74 35 2c  FROM t3, t4, t5,
6c20: 20 74 36 0a 20 20 20 20 20 20 20 20 57 48 45 52   t6.        WHER
6c30: 45 20 28 61 3d 31 34 31 35 39 32 36 35 33 35 20  E (a=1415926535 
6c40: 41 4e 44 20 66 3d 38 36 32 38 30 33 34 38 32 35  AND f=8628034825
6c50: 20 41 4e 44 20 73 21 3d 27 68 65 6c 6c 6f 27 20   AND s!='hello' 
6c60: 41 4e 44 20 74 21 3d 35 29 0a 20 20 20 20 20 20  AND t!=5).      
6c70: 20 20 20 20 20 4f 52 20 28 61 3d 36 39 33 39 39       OR (a=69399
6c80: 33 37 35 31 30 20 41 4e 44 20 66 3d 32 36 34 33  37510 AND f=2643
6c90: 33 38 33 32 37 39 20 41 4e 44 20 73 3d 27 74 61  383279 AND s='ta
6ca0: 62 2d 74 35 27 20 41 4e 44 20 74 3d 31 32 33 34  b-t5' AND t=1234
6cb0: 35 36 29 20 7d 0a 32 30 32 20 20 7b 20 53 45 4c  56) }.202  { SEL
6cc0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
6cd0: 34 2c 20 74 35 2c 20 74 36 0a 20 20 20 20 20 20  4, t5, t6.      
6ce0: 20 20 57 48 45 52 45 20 28 61 3d 31 34 31 35 39    WHERE (a=14159
6cf0: 32 36 35 33 35 20 41 4e 44 20 66 3d 38 36 32 38  26535 AND f=8628
6d00: 30 33 34 38 32 35 20 41 4e 44 20 73 21 3d 27 68  034825 AND s!='h
6d10: 65 6c 6c 6f 27 20 41 4e 44 20 74 3d 3d 35 29 0a  ello' AND t==5).
6d20: 20 20 20 20 20 20 20 20 20 20 20 4f 52 20 28 61             OR (a
6d30: 3d 36 39 33 39 39 33 37 35 31 30 20 41 4e 44 20  =6939937510 AND 
6d40: 66 3d 32 36 34 33 33 38 33 32 37 39 20 41 4e 44  f=2643383279 AND
6d50: 20 73 3d 27 74 61 62 2d 74 35 27 20 41 4e 44 20   s='tab-t5' AND 
6d60: 74 21 3d 31 32 33 34 35 36 29 20 7d 0a 0a 20 20  t!=123456) }..  
6d70: 7d 20 7b 0a 20 20 20 20 64 6f 5f 74 65 73 74 20  } {.    do_test 
6d80: 77 68 65 72 65 38 2d 34 2e 24 41 2e 24 42 2e 31  where8-4.$A.$B.1
6d90: 20 7b 0a 20 20 20 20 20 20 75 6e 73 65 74 20 2d   {.      unset -
6da0: 6e 6f 63 6f 6d 70 6c 61 69 6e 20 52 0a 20 20 20  nocomplain R.   
6db0: 20 20 20 73 65 74 20 52 20 5b 65 78 65 63 73 71     set R [execsq
6dc0: 6c 20 24 73 71 6c 5d 0a 20 20 20 20 20 20 69 66  l $sql].      if
6dd0: 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20   {![info exists 
6de0: 72 65 73 75 6c 74 73 28 24 42 29 5d 7d 20 7b 0a  results($B)]} {.
6df0: 20 20 20 20 20 20 20 20 73 65 74 20 72 65 73 75          set resu
6e00: 6c 74 73 28 24 42 29 20 24 52 0a 20 20 20 20 20  lts($B) $R.     
6e10: 20 7d 0a 20 20 20 20 20 20 6c 69 73 74 0a 20 20   }.      list.  
6e20: 20 20 7d 20 7b 7d 0a 0a 20 20 20 20 64 6f 5f 74    } {}..    do_t
6e30: 65 73 74 20 77 68 65 72 65 38 2d 34 2e 24 41 2e  est where8-4.$A.
6e40: 24 42 2e 32 20 7b 20 6c 73 6f 72 74 20 24 52 20  $B.2 { lsort $R 
6e50: 7d 20 5b 6c 73 6f 72 74 20 24 72 65 73 75 6c 74  } [lsort $result
6e60: 73 28 24 42 29 5d 0a 20 20 7d 0a 20 20 69 6e 63  s($B)].  }.  inc
6e70: 72 20 41 0a 7d 0a 63 61 74 63 68 20 7b 75 6e 73  r A.}.catch {uns
6e80: 65 74 20 72 65 73 75 6c 74 73 7d 0a 63 61 74 63  et results}.catc
6e90: 68 20 7b 75 6e 73 65 74 20 41 7d 0a 63 61 74 63  h {unset A}.catc
6ea0: 68 20 7b 75 6e 73 65 74 20 42 7d 0a 0a 23 20 41  h {unset B}..# A
6eb0: 74 20 6f 6e 65 20 70 6f 69 6e 74 20 74 68 65 20  t one point the 
6ec0: 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 73 20  following tests 
6ed0: 70 72 6f 76 6f 6b 65 64 20 61 6e 20 69 6e 76 61  provoked an inva
6ee0: 6c 69 64 20 77 72 69 74 65 20 65 72 72 6f 72 20  lid write error 
6ef0: 28 77 72 69 74 69 6e 67 0a 23 20 74 6f 20 6d 65  (writing.# to me
6f00: 6d 6f 72 79 20 74 68 61 74 20 68 61 64 20 61 6c  mory that had al
6f10: 72 65 61 64 79 20 62 65 65 6e 20 66 72 65 65 64  ready been freed
6f20: 29 2e 20 49 74 20 77 61 73 20 6e 6f 74 20 70 6f  ). It was not po
6f30: 73 73 69 62 6c 65 20 74 6f 20 64 65 6d 6f 6e 73  ssible to demons
6f40: 74 72 61 74 65 0a 23 20 74 68 61 74 20 74 68 69  trate.# that thi
6f50: 73 20 62 75 67 20 63 6f 75 6c 64 20 63 61 75 73  s bug could caus
6f60: 65 20 61 20 71 75 65 72 79 20 74 6f 20 72 65 74  e a query to ret
6f70: 75 72 6e 20 62 61 64 20 64 61 74 61 2e 0a 23 20  urn bad data..# 
6f80: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
6f90: 35 2e 31 20 7b 0a 20 20 64 62 20 63 6c 6f 73 65  5.1 {.  db close
6fa0: 0a 20 20 73 71 6c 69 74 65 33 20 64 62 20 74 65  .  sqlite3 db te
6fb0: 73 74 2e 64 62 0a 20 20 73 71 6c 69 74 65 33 5f  st.db.  sqlite3_
6fc0: 64 62 5f 63 6f 6e 66 69 67 5f 6c 6f 6f 6b 61 73  db_config_lookas
6fd0: 69 64 65 20 64 62 20 30 20 30 20 30 0a 20 20 65  ide db 0 0 0.  e
6fe0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 43 52 45  xecsql {.    CRE
6ff0: 41 54 45 20 54 41 42 4c 45 20 74 41 28 0a 20 20  ATE TABLE tA(.  
7000: 20 20 20 20 61 2c 20 62 2c 20 63 2c 20 64 2c 20      a, b, c, d, 
7010: 65 2c 20 66 2c 20 67 2c 20 68 2c 20 0a 20 20 20  e, f, g, h, .   
7020: 20 20 20 69 2c 20 6a 2c 20 6b 2c 20 6c 2c 20 6d     i, j, k, l, m
7030: 2c 20 6e 2c 20 6f 2c 20 70 0a 20 20 20 20 29 3b  , n, o, p.    );
7040: 0a 20 20 7d 0a 20 20 65 78 65 63 73 71 6c 20 7b  .  }.  execsql {
7050: 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20 46 52  .    SELECT * FR
7060: 4f 4d 20 74 41 20 57 48 45 52 45 0a 20 20 20 20  OM tA WHERE.    
7070: 20 20 61 3d 31 20 41 4e 44 20 62 3d 32 20 41 4e    a=1 AND b=2 AN
7080: 44 20 63 3d 33 20 41 4e 44 20 64 3d 34 20 41 4e  D c=3 AND d=4 AN
7090: 44 20 65 3d 35 20 41 4e 44 20 66 3d 36 20 41 4e  D e=5 AND f=6 AN
70a0: 44 20 67 3d 37 20 41 4e 44 20 68 3d 38 20 41 4e  D g=7 AND h=8 AN
70b0: 44 0a 20 20 20 20 20 20 69 3d 31 20 41 4e 44 20  D.      i=1 AND 
70c0: 6a 3d 32 20 41 4e 44 20 6b 3d 33 20 41 4e 44 20  j=2 AND k=3 AND 
70d0: 6c 3d 34 20 41 4e 44 20 6d 3d 35 20 41 4e 44 20  l=4 AND m=5 AND 
70e0: 6e 3d 36 20 41 4e 44 20 6f 3d 37 20 41 4e 44 0a  n=6 AND o=7 AND.
70f0: 20 20 20 20 20 20 28 70 20 3d 20 31 20 4f 52 20        (p = 1 OR 
7100: 70 20 3d 20 32 20 4f 52 20 70 20 3d 20 33 29 0a  p = 2 OR p = 3).
7110: 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74    }.} {}.do_test
7120: 20 77 68 65 72 65 38 2d 35 2e 32 20 7b 0a 20 20   where8-5.2 {.  
7130: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45  execsql {.    SE
7140: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 41 20 57  LECT * FROM tA W
7150: 48 45 52 45 0a 20 20 20 20 20 20 61 3d 31 20 41  HERE.      a=1 A
7160: 4e 44 20 62 3d 32 20 41 4e 44 20 63 3d 33 20 41  ND b=2 AND c=3 A
7170: 4e 44 20 64 3d 34 20 41 4e 44 20 65 3d 35 20 41  ND d=4 AND e=5 A
7180: 4e 44 20 66 3d 36 20 41 4e 44 20 67 3d 37 20 41  ND f=6 AND g=7 A
7190: 4e 44 20 68 3d 38 20 41 4e 44 0a 20 20 20 20 20  ND h=8 AND.     
71a0: 20 69 3d 31 20 41 4e 44 20 6a 3d 32 20 41 4e 44   i=1 AND j=2 AND
71b0: 20 6b 3d 33 20 41 4e 44 20 6c 3d 34 20 41 4e 44   k=3 AND l=4 AND
71c0: 20 6d 3d 35 20 41 4e 44 0a 20 20 20 20 20 20 28   m=5 AND.      (
71d0: 70 20 3d 20 31 20 4f 52 20 70 20 3d 20 32 20 4f  p = 1 OR p = 2 O
71e0: 52 20 70 20 3d 20 33 29 20 41 4e 44 20 6e 3d 36  R p = 3) AND n=6
71f0: 20 41 4e 44 20 6f 3d 37 0a 20 20 7d 0a 7d 20 7b   AND o=7.  }.} {
7200: 7d 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38  }.do_test where8
7210: 2d 35 2e 33 20 7b 0a 20 20 65 78 65 63 73 71 6c  -5.3 {.  execsql
7220: 20 7b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e   {.    INSERT IN
7230: 54 4f 20 74 41 20 56 41 4c 55 45 53 28 31 2c 20  TO tA VALUES(1, 
7240: 32 2c 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 37  2, 3, 4, 5, 6, 7
7250: 2c 20 38 2c 20 31 2c 20 32 2c 20 33 2c 20 34 2c  , 8, 1, 2, 3, 4,
7260: 20 35 2c 20 36 2c 20 37 2c 20 38 29 3b 20 0a 20   5, 6, 7, 8); . 
7270: 20 20 20 43 52 45 41 54 45 20 55 4e 49 51 55 45     CREATE UNIQUE
7280: 20 49 4e 44 45 58 20 74 41 49 20 4f 4e 20 74 41   INDEX tAI ON tA
7290: 28 70 29 3b 0a 20 20 20 20 43 52 45 41 54 45 20  (p);.    CREATE 
72a0: 54 41 42 4c 45 20 74 42 28 78 29 3b 0a 20 20 20  TABLE tB(x);.   
72b0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 42 20   INSERT INTO tB 
72c0: 56 41 4c 55 45 53 28 27 78 27 29 3b 0a 20 20 7d  VALUES('x');.  }
72d0: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
72e0: 20 53 45 4c 45 43 54 20 61 2c 20 78 20 46 52 4f   SELECT a, x FRO
72f0: 4d 20 74 41 20 4c 45 46 54 20 4a 4f 49 4e 20 74  M tA LEFT JOIN t
7300: 42 20 4f 4e 20 28 0a 20 20 20 20 20 20 61 3d 31  B ON (.      a=1
7310: 20 41 4e 44 20 62 3d 32 20 41 4e 44 20 63 3d 33   AND b=2 AND c=3
7320: 20 41 4e 44 20 64 3d 34 20 41 4e 44 20 65 3d 35   AND d=4 AND e=5
7330: 20 41 4e 44 20 66 3d 36 20 41 4e 44 20 67 3d 37   AND f=6 AND g=7
7340: 20 41 4e 44 20 68 3d 38 20 41 4e 44 0a 20 20 20   AND h=8 AND.   
7350: 20 20 20 69 3d 31 20 41 4e 44 20 6a 3d 32 20 41     i=1 AND j=2 A
7360: 4e 44 20 6b 3d 33 20 41 4e 44 20 6c 3d 34 20 41  ND k=3 AND l=4 A
7370: 4e 44 20 6d 3d 35 20 41 4e 44 20 6e 3d 36 20 41  ND m=5 AND n=6 A
7380: 4e 44 20 6f 3d 37 20 41 4e 44 0a 20 20 20 20 20  ND o=7 AND.     
7390: 20 28 70 20 3d 20 31 20 4f 52 20 70 20 3d 20 32   (p = 1 OR p = 2
73a0: 20 4f 52 20 70 20 3d 20 33 29 0a 20 20 20 20 29   OR p = 3).    )
73b0: 0a 20 20 7d 0a 7d 20 7b 31 20 7b 7d 7d 0a 0a 23  .  }.} {1 {}}..#
73c0: 20 54 68 65 20 4f 52 20 6f 70 74 69 6d 69 7a 61   The OR optimiza
73d0: 74 69 6f 6e 20 61 6e 64 20 57 49 54 48 4f 55 54  tion and WITHOUT
73e0: 20 52 4f 57 49 44 0a 23 0a 64 6f 5f 65 78 65 63   ROWID.#.do_exec
73f0: 73 71 6c 5f 74 65 73 74 20 77 68 65 72 65 38 2d  sql_test where8-
7400: 36 2e 31 20 7b 0a 20 20 43 52 45 41 54 45 20 54  6.1 {.  CREATE T
7410: 41 42 4c 45 20 74 36 30 30 28 61 20 50 52 49 4d  ABLE t600(a PRIM
7420: 41 52 59 20 4b 45 59 2c 20 62 29 20 57 49 54 48  ARY KEY, b) WITH
7430: 4f 55 54 20 72 6f 77 69 64 3b 0a 20 20 43 52 45  OUT rowid;.  CRE
7440: 41 54 45 20 49 4e 44 45 58 20 74 36 30 30 62 20  ATE INDEX t600b 
7450: 4f 4e 20 74 36 30 30 28 62 29 3b 0a 20 20 49 4e  ON t600(b);.  IN
7460: 53 45 52 54 20 49 4e 54 4f 20 74 36 30 30 20 56  SERT INTO t600 V
7470: 41 4c 55 45 53 28 27 73 74 61 74 65 27 2c 27 73  ALUES('state','s
7480: 63 72 65 65 6e 27 29 2c 28 27 65 78 61 63 74 27  creen'),('exact'
7490: 2c 27 64 6f 6c 70 68 69 6e 27 29 2c 28 27 67 72  ,'dolphin'),('gr
74a0: 65 65 6e 27 2c 27 6d 65 72 63 75 72 79 27 29 3b  een','mercury');
74b0: 0a 20 20 53 45 4c 45 43 54 20 61 2c 20 62 2c 20  .  SELECT a, b, 
74c0: 27 7c 27 20 46 52 4f 4d 20 74 36 30 30 20 57 48  '|' FROM t600 WH
74d0: 45 52 45 20 61 3d 3d 27 73 74 61 74 65 27 20 4f  ERE a=='state' O
74e0: 52 20 62 3d 27 6d 65 72 63 75 72 79 27 20 4f 52  R b='mercury' OR
74f0: 44 45 52 20 42 59 20 2b 61 3b 0a 7d 20 7b 67 72  DER BY +a;.} {gr
7500: 65 65 6e 20 6d 65 72 63 75 72 79 20 7c 20 73 74  een mercury | st
7510: 61 74 65 20 73 63 72 65 65 6e 20 7c 7d 0a 0a 66  ate screen |}..f
7520: 69 6e 69 73 68 5f 74 65 73 74 0a                 inish_test.