/ Hex Artifact Content
Login

Artifact d2b4fd6d7b7c5d44f590182a05033d78a14c00a1:


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