SQLite4
Hex Artifact Content
Not logged in

Artifact c6aab02b3b87d46674fe17adcef9990545af4b24:


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 23 20 24 49  operator..#.# $I
0230: 64 3a 20 77 68 65 72 65 38 2e 74 65 73 74 2c 76  d: where8.test,v
0240: 20 31 2e 39 20 32 30 30 39 2f 30 37 2f 33 31 20   1.9 2009/07/31 
0250: 30 36 3a 31 34 3a 35 32 20 64 61 6e 69 65 6c 6b  06:14:52 danielk
0260: 31 39 37 37 20 45 78 70 20 24 0a 0a 73 65 74 20  1977 Exp $..set 
0270: 74 65 73 74 64 69 72 20 5b 66 69 6c 65 20 64 69  testdir [file di
0280: 72 6e 61 6d 65 20 24 61 72 67 76 30 5d 0a 73 6f  rname $argv0].so
0290: 75 72 63 65 20 24 74 65 73 74 64 69 72 2f 74 65  urce $testdir/te
02a0: 73 74 65 72 2e 74 63 6c 0a 0a 23 20 54 65 73 74  ster.tcl..# Test
02b0: 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 3a 0a 23   organization:.#
02c0: 0a 23 20 20 20 77 68 65 72 65 38 2d 31 2e 2a 3a  .#   where8-1.*:
02d0: 20 54 65 73 74 73 20 74 6f 20 64 65 6d 6f 6e 73   Tests to demons
02e0: 74 72 61 74 65 20 73 69 6d 70 6c 65 20 63 61 73  trate simple cas
02f0: 65 73 20 77 6f 72 6b 20 77 69 74 68 20 61 20 73  es work with a s
0300: 69 6e 67 6c 65 20 74 61 62 6c 65 0a 23 20 20 20  ingle table.#   
0310: 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 20 74              in t
0320: 68 65 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e 0a  he FROM clause..
0330: 23 0a 23 20 20 20 77 68 65 72 65 38 2d 32 2e 2a  #.#   where8-2.*
0340: 3a 20 54 65 73 74 73 20 73 75 72 72 6f 75 6e 64  : Tests surround
0350: 69 6e 67 20 76 69 72 74 75 61 6c 20 74 61 62 6c  ing virtual tabl
0360: 65 73 20 61 6e 64 20 74 68 65 20 4f 52 20 6f 70  es and the OR op
0370: 74 69 6d 69 7a 61 74 69 6f 6e 2e 0a 23 0a 23 20  timization..#.# 
0380: 20 20 77 68 65 72 65 38 2d 33 2e 2a 3a 20 54 65    where8-3.*: Te
0390: 73 74 73 20 77 69 74 68 20 6d 6f 72 65 20 74 68  sts with more th
03a0: 61 6e 20 6f 6e 65 20 74 61 62 6c 65 20 69 6e 20  an one table in 
03b0: 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e  the FROM clause.
03c0: 0a 23 20 0a 0a 70 72 6f 63 20 65 78 65 63 73 71  .# ..proc execsq
03d0: 6c 5f 73 74 61 74 75 73 20 7b 73 71 6c 20 7b 64  l_status {sql {d
03e0: 62 20 64 62 7d 7d 20 7b 0a 20 20 73 65 74 20 72  b db}} {.  set r
03f0: 65 73 75 6c 74 20 5b 75 70 6c 65 76 65 6c 20 24  esult [uplevel $
0400: 64 62 20 65 76 61 6c 20 5b 6c 69 73 74 20 24 73  db eval [list $s
0410: 71 6c 5d 5d 0a 20 20 63 6f 6e 63 61 74 20 24 72  ql]].  concat $r
0420: 65 73 75 6c 74 20 5b 64 62 20 73 74 61 74 75 73  esult [db status
0430: 20 73 74 65 70 5d 20 5b 64 62 20 73 74 61 74 75   step] [db statu
0440: 73 20 73 6f 72 74 5d 0a 7d 0a 0a 23 20 49 6e 76  s sort].}..# Inv
0450: 6f 6b 65 20 5b 65 78 65 63 73 71 6c 5f 73 74 61  oke [execsql_sta
0460: 74 75 73 32 5d 2e 20 54 68 65 6e 20 61 70 70 65  tus2]. Then appe
0470: 6e 64 20 74 77 6f 20 69 6e 74 65 67 65 72 73 20  nd two integers 
0480: 74 6f 20 74 68 65 20 6f 75 74 70 75 74 3a 0a 23  to the output:.#
0490: 0a 23 20 20 20 2a 20 74 68 65 20 6e 75 6d 62 65  .#   * the numbe
04a0: 72 20 6f 66 20 78 53 65 65 6b 28 29 20 63 61 6c  r of xSeek() cal
04b0: 6c 73 2c 20 61 6e 64 0a 23 20 20 20 2a 20 74 68  ls, and.#   * th
04c0: 65 20 6e 75 6d 62 65 72 20 6f 66 20 78 4e 65 78  e number of xNex
04d0: 74 28 29 20 2b 20 78 50 72 65 76 28 29 20 63 61  t() + xPrev() ca
04e0: 6c 6c 73 2e 0a 23 0a 70 72 6f 63 20 65 78 65 63  lls..#.proc exec
04f0: 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 73 71 6c  sql_status2 {sql
0500: 20 7b 64 62 20 64 62 7d 7d 20 7b 0a 20 20 6b 76   {db db}} {.  kv
0510: 77 72 61 70 20 72 65 73 65 74 0a 20 20 73 65 74  wrap reset.  set
0520: 20 72 65 73 20 5b 75 70 6c 65 76 65 6c 20 5b 6c   res [uplevel [l
0530: 69 73 74 20 65 78 65 63 73 71 6c 5f 73 74 61 74  ist execsql_stat
0540: 75 73 20 24 73 71 6c 20 24 64 62 5d 5d 0a 20 20  us $sql $db]].  
0550: 23 70 75 74 73 20 22 73 71 6c 3d 7b 24 73 71 6c  #puts "sql={$sql
0560: 7d 20 73 65 65 6b 3d 5b 6b 76 77 72 61 70 20 73  } seek=[kvwrap s
0570: 65 65 6b 5d 20 73 74 65 70 3d 5b 6b 76 77 72 61  eek] step=[kvwra
0580: 70 20 73 74 65 70 5d 22 0a 20 20 72 65 74 75 72  p step]".  retur
0590: 6e 20 5b 63 6f 6e 63 61 74 20 24 72 65 73 20 22  n [concat $res "
05a0: 73 65 65 6b 3d 5b 6b 76 77 72 61 70 20 73 65 65  seek=[kvwrap see
05b0: 6b 5d 22 20 22 73 74 65 70 3d 5b 6b 76 77 72 61  k]" "step=[kvwra
05c0: 70 20 73 74 65 70 5d 22 5d 0a 7d 0a 0a 64 6f 5f  p step]"].}..do_
05d0: 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e 31 20  test where8-1.1 
05e0: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
05f0: 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 74    CREATE TABLE t
0600: 31 28 61 2c 20 62 20 54 45 58 54 2c 20 63 29 3b  1(a, b TEXT, c);
0610: 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45  .    CREATE INDE
0620: 58 20 69 31 20 4f 4e 20 74 31 28 61 29 3b 0a 20  X i1 ON t1(a);. 
0630: 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20     CREATE INDEX 
0640: 69 32 20 4f 4e 20 74 31 28 62 29 3b 0a 0a 20 20  i2 ON t1(b);..  
0650: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
0660: 20 56 41 4c 55 45 53 28 31 2c 20 20 27 6f 6e 65   VALUES(1,  'one
0670: 27 2c 20 20 20 27 49 27 29 3b 0a 20 20 20 20 49  ',   'I');.    I
0680: 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41  NSERT INTO t1 VA
0690: 4c 55 45 53 28 32 2c 20 20 27 74 77 6f 27 2c 20  LUES(2,  'two', 
06a0: 20 20 27 49 49 27 29 3b 0a 20 20 20 20 49 4e 53    'II');.    INS
06b0: 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55  ERT INTO t1 VALU
06c0: 45 53 28 33 2c 20 20 27 74 68 72 65 65 27 2c 20  ES(3,  'three', 
06d0: 27 49 49 49 27 29 3b 0a 20 20 20 20 49 4e 53 45  'III');.    INSE
06e0: 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45  RT INTO t1 VALUE
06f0: 53 28 34 2c 20 20 27 66 6f 75 72 27 2c 20 20 27  S(4,  'four',  '
0700: 49 56 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  IV');.    INSERT
0710: 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28   INTO t1 VALUES(
0720: 35 2c 20 20 27 66 69 76 65 27 2c 20 20 27 56 27  5,  'five',  'V'
0730: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
0740: 54 4f 20 74 31 20 56 41 4c 55 45 53 28 36 2c 20  TO t1 VALUES(6, 
0750: 20 27 73 69 78 27 2c 20 20 20 27 56 49 27 29 3b   'six',   'VI');
0760: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
0770: 20 74 31 20 56 41 4c 55 45 53 28 37 2c 20 20 27   t1 VALUES(7,  '
0780: 73 65 76 65 6e 27 2c 20 27 56 49 49 27 29 3b 0a  seven', 'VII');.
0790: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
07a0: 74 31 20 56 41 4c 55 45 53 28 38 2c 20 20 27 65  t1 VALUES(8,  'e
07b0: 69 67 68 74 27 2c 20 27 56 49 49 49 27 29 3b 0a  ight', 'VIII');.
07c0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
07d0: 74 31 20 56 41 4c 55 45 53 28 39 2c 20 20 27 6e  t1 VALUES(9,  'n
07e0: 69 6e 65 27 2c 20 20 27 49 58 27 29 3b 0a 20 20  ine',  'IX');.  
07f0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
0800: 20 56 41 4c 55 45 53 28 31 30 2c 20 27 74 65 6e   VALUES(10, 'ten
0810: 27 2c 20 20 20 27 58 27 29 3b 0a 20 20 7d 0a 7d  ',   'X');.  }.}
0820: 20 7b 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65   {}..do_test whe
0830: 72 65 38 2d 31 2e 32 20 7b 20 0a 20 20 65 78 65  re8-1.2 { .  exe
0840: 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 20 53  csql_status2 { S
0850: 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20  ELECT c FROM t1 
0860: 57 48 45 52 45 20 61 20 3d 20 31 20 4f 52 20 62  WHERE a = 1 OR b
0870: 20 3d 20 27 6e 69 6e 65 27 20 7d 0a 7d 20 7b 49   = 'nine' }.} {I
0880: 20 49 58 20 30 20 30 20 73 65 65 6b 3d 34 20 73   IX 0 0 seek=4 s
0890: 74 65 70 3d 32 7d 0a 0a 64 6f 5f 74 65 73 74 20  tep=2}..do_test 
08a0: 77 68 65 72 65 38 2d 31 2e 33 20 7b 20 0a 20 20  where8-1.3 { .  
08b0: 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20  execsql_status2 
08c0: 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20  { SELECT c FROM 
08d0: 74 31 20 57 48 45 52 45 20 61 20 3e 20 38 20 4f  t1 WHERE a > 8 O
08e0: 52 20 62 20 3d 20 27 74 77 6f 27 20 7d 0a 7d 20  R b = 'two' }.} 
08f0: 7b 49 58 20 58 20 49 49 20 30 20 30 20 73 65 65  {IX X II 0 0 see
0900: 6b 3d 35 20 73 74 65 70 3d 33 7d 0a 0a 64 6f 5f  k=5 step=3}..do_
0910: 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e 34 20  test where8-1.4 
0920: 7b 20 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61  { .  execsql_sta
0930: 74 75 73 32 20 7b 20 53 45 4c 45 43 54 20 63 20  tus2 { SELECT c 
0940: 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 20  FROM t1 WHERE a 
0950: 3e 20 38 20 4f 52 20 62 20 47 4c 4f 42 20 27 74  > 8 OR b GLOB 't
0960: 2a 27 20 7d 0a 7d 20 7b 49 58 20 58 20 49 49 49  *' }.} {IX X III
0970: 20 49 49 20 30 20 30 20 73 65 65 6b 3d 37 20 73   II 0 0 seek=7 s
0980: 74 65 70 3d 35 7d 0a 0a 64 6f 5f 74 65 73 74 20  tep=5}..do_test 
0990: 77 68 65 72 65 38 2d 31 2e 35 20 7b 20 0a 20 20  where8-1.5 { .  
09a0: 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20  execsql_status2 
09b0: 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20  { SELECT c FROM 
09c0: 74 31 20 57 48 45 52 45 20 61 20 3e 20 38 20 4f  t1 WHERE a > 8 O
09d0: 52 20 62 20 47 4c 4f 42 20 27 66 2a 27 20 7d 0a  R b GLOB 'f*' }.
09e0: 7d 20 7b 49 58 20 58 20 56 20 49 56 20 30 20 30  } {IX X V IV 0 0
09f0: 20 73 65 65 6b 3d 36 20 73 74 65 70 3d 34 7d 0a   seek=6 step=4}.
0a00: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
0a10: 31 2e 36 20 7b 20 0a 20 20 65 78 65 63 73 71 6c  1.6 { .  execsql
0a20: 5f 73 74 61 74 75 73 20 7b 20 53 45 4c 45 43 54  _status { SELECT
0a30: 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45   c FROM t1 WHERE
0a40: 20 61 20 3d 20 31 20 4f 52 20 62 20 3d 20 27 74   a = 1 OR b = 't
0a50: 68 72 65 65 27 20 4f 52 44 45 52 20 42 59 20 72  hree' ORDER BY r
0a60: 6f 77 69 64 20 7d 0a 7d 20 7b 49 20 49 49 49 20  owid }.} {I III 
0a70: 30 20 31 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68  0 1}..do_test wh
0a80: 65 72 65 38 2d 31 2e 37 20 7b 20 0a 20 20 65 78  ere8-1.7 { .  ex
0a90: 65 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 20 53  ecsql_status { S
0aa0: 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20  ELECT c FROM t1 
0ab0: 57 48 45 52 45 20 61 20 3d 20 31 20 4f 52 20 62  WHERE a = 1 OR b
0ac0: 20 3d 20 27 74 68 72 65 65 27 20 4f 52 44 45 52   = 'three' ORDER
0ad0: 20 42 59 20 61 20 7d 0a 7d 20 7b 49 20 49 49 49   BY a }.} {I III
0ae0: 20 30 20 31 7d 0a 0a 64 6f 5f 74 65 73 74 20 77   0 1}..do_test w
0af0: 68 65 72 65 38 2d 31 2e 38 20 7b 0a 20 20 23 20  here8-1.8 {.  # 
0b00: 31 38 20 73 65 61 72 63 68 65 73 2e 20 39 20 6f  18 searches. 9 o
0b10: 6e 20 74 68 65 20 69 6e 64 65 78 20 63 75 72 73  n the index curs
0b20: 6f 72 20 61 6e 64 20 39 20 6f 6e 20 74 68 65 20  or and 9 on the 
0b30: 74 61 62 6c 65 20 63 75 72 73 6f 72 2e 0a 20 20  table cursor..  
0b40: 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20  execsql_status2 
0b50: 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20  { SELECT c FROM 
0b60: 74 31 20 57 48 45 52 45 20 61 20 3e 20 31 20 41  t1 WHERE a > 1 A
0b70: 4e 44 20 63 20 4c 49 4b 45 20 27 49 25 27 20 7d  ND c LIKE 'I%' }
0b80: 0a 7d 20 7b 49 49 20 49 49 49 20 49 56 20 49 58  .} {II III IV IX
0b90: 20 30 20 30 20 73 65 65 6b 3d 31 30 20 73 74 65   0 0 seek=10 ste
0ba0: 70 3d 39 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68  p=9}..do_test wh
0bb0: 65 72 65 38 2d 31 2e 39 20 7b 0a 20 20 65 78 65  ere8-1.9 {.  exe
0bc0: 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 20 53  csql_status2 { S
0bd0: 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20  ELECT c FROM t1 
0be0: 57 48 45 52 45 20 61 20 3e 3d 20 39 20 4f 52 20  WHERE a >= 9 OR 
0bf0: 62 20 3c 3d 20 27 65 69 67 68 74 27 20 7d 0a 7d  b <= 'eight' }.}
0c00: 20 7b 49 58 20 58 20 56 49 49 49 20 30 20 30 20   {IX X VIII 0 0 
0c10: 73 65 65 6b 3d 35 20 73 74 65 70 3d 33 7d 0a 0a  seek=5 step=3}..
0c20: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31  do_test where8-1
0c30: 2e 31 30 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f  .10 {.  execsql_
0c40: 73 74 61 74 75 73 32 20 7b 20 0a 20 20 20 20 53  status2 { .    S
0c50: 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20  ELECT c FROM t1 
0c60: 57 48 45 52 45 20 28 61 20 3e 3d 20 39 20 41 4e  WHERE (a >= 9 AN
0c70: 44 20 63 20 21 3d 20 27 58 27 29 20 4f 52 20 62  D c != 'X') OR b
0c80: 20 3c 3d 20 27 65 69 67 68 74 27 20 0a 20 20 7d   <= 'eight' .  }
0c90: 0a 7d 20 7b 49 58 20 56 49 49 49 20 30 20 30 20  .} {IX VIII 0 0 
0ca0: 73 65 65 6b 3d 35 20 73 74 65 70 3d 33 7d 0a 0a  seek=5 step=3}..
0cb0: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31  do_test where8-1
0cc0: 2e 31 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f  .11 {.  execsql_
0cd0: 73 74 61 74 75 73 32 20 7b 20 0a 20 20 20 20 53  status2 { .    S
0ce0: 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20  ELECT c FROM t1 
0cf0: 57 48 45 52 45 20 28 61 20 3e 3d 20 34 20 41 4e  WHERE (a >= 4 AN
0d00: 44 20 61 20 3c 3d 20 36 29 20 4f 52 20 62 20 3d  D a <= 6) OR b =
0d10: 20 27 6e 69 6e 65 27 20 0a 20 20 7d 0a 7d 20 7b   'nine' .  }.} {
0d20: 49 56 20 56 20 56 49 20 49 58 20 30 20 30 20 73  IV V VI IX 0 0 s
0d30: 65 65 6b 3d 36 20 73 74 65 70 3d 34 7d 0a 0a 64  eek=6 step=4}..d
0d40: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e  o_test where8-1.
0d50: 31 32 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c  12.1 {.  execsql
0d60: 5f 73 74 61 74 75 73 32 20 7b 20 0a 20 20 20 20  _status2 { .    
0d70: 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31  SELECT c FROM t1
0d80: 20 57 48 45 52 45 20 61 20 49 4e 28 31 2c 20 32   WHERE a IN(1, 2
0d90: 2c 20 33 29 20 4f 52 20 61 20 3d 20 35 0a 20 20  , 3) OR a = 5.  
0da0: 7d 0a 7d 20 7b 49 20 49 49 20 49 49 49 20 56 20  }.} {I II III V 
0db0: 30 20 30 20 73 65 65 6b 3d 38 20 73 74 65 70 3d  0 0 seek=8 step=
0dc0: 34 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72  4}..do_test wher
0dd0: 65 38 2d 31 2e 31 32 2e 32 20 7b 0a 20 20 65 78  e8-1.12.2 {.  ex
0de0: 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 20  ecsql_status2 { 
0df0: 0a 20 20 20 20 53 45 4c 45 43 54 20 63 20 46 52  .    SELECT c FR
0e00: 4f 4d 20 74 31 20 57 48 45 52 45 20 2b 61 20 49  OM t1 WHERE +a I
0e10: 4e 28 31 2c 20 32 2c 20 33 29 20 4f 52 20 2b 61  N(1, 2, 3) OR +a
0e20: 20 3d 20 35 0a 20 20 7d 0a 7d 20 7b 49 20 49 49   = 5.  }.} {I II
0e30: 20 49 49 49 20 56 20 39 20 30 20 73 65 65 6b 3d   III V 9 0 seek=
0e40: 31 20 73 74 65 70 3d 31 30 7d 0a 0a 64 6f 5f 74  1 step=10}..do_t
0e50: 65 73 74 20 77 68 65 72 65 38 2d 31 2e 31 33 20  est where8-1.13 
0e60: 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74  {.  execsql_stat
0e70: 75 73 32 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  us2 {.    SELECT
0e80: 20 63 20 46 52 4f 4d 20 74 31 0a 20 20 20 20 57   c FROM t1.    W
0e90: 48 45 52 45 20 61 20 3d 20 32 20 4f 52 20 62 20  HERE a = 2 OR b 
0ea0: 3d 20 27 74 68 72 65 65 27 20 4f 52 20 61 20 3d  = 'three' OR a =
0eb0: 20 34 20 4f 52 20 62 20 3d 20 27 66 69 76 65 27   4 OR b = 'five'
0ec0: 20 4f 52 20 61 20 3d 20 36 0a 20 20 20 20 4f 52   OR a = 6.    OR
0ed0: 44 45 52 20 42 59 20 72 6f 77 69 64 0a 20 20 7d  DER BY rowid.  }
0ee0: 0a 7d 20 7b 49 49 20 49 49 49 20 49 56 20 56 20  .} {II III IV V 
0ef0: 56 49 20 30 20 31 20 73 65 65 6b 3d 31 30 20 73  VI 0 1 seek=10 s
0f00: 74 65 70 3d 35 7d 0a 64 6f 5f 74 65 73 74 20 77  tep=5}.do_test w
0f10: 68 65 72 65 38 2d 31 2e 31 34 20 7b 0a 20 20 65  here8-1.14 {.  e
0f20: 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b  xecsql_status2 {
0f30: 0a 20 20 20 20 53 45 4c 45 43 54 20 63 20 46 52  .    SELECT c FR
0f40: 4f 4d 20 74 31 0a 20 20 20 20 57 48 45 52 45 20  OM t1.    WHERE 
0f50: 0a 20 20 20 20 20 20 61 20 3d 20 32 20 4f 52 20  .      a = 2 OR 
0f60: 62 20 3d 20 27 74 68 72 65 65 27 20 4f 52 20 61  b = 'three' OR a
0f70: 20 3d 20 34 20 4f 52 20 62 20 3d 20 27 66 69 76   = 4 OR b = 'fiv
0f80: 65 27 20 4f 52 20 61 20 3d 20 36 20 4f 52 0a 20  e' OR a = 6 OR. 
0f90: 20 20 20 20 20 62 20 3d 20 27 73 65 76 65 6e 27       b = 'seven'
0fa0: 20 4f 52 20 61 20 3d 20 38 20 4f 52 20 62 20 3d   OR a = 8 OR b =
0fb0: 20 27 6e 69 6e 65 27 20 4f 52 20 61 20 3d 20 31   'nine' OR a = 1
0fc0: 30 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 72  0.    ORDER BY r
0fd0: 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 49 49 20 49  owid.  }.} {II I
0fe0: 49 49 20 49 56 20 56 20 56 49 20 56 49 49 20 56  II IV V VI VII V
0ff0: 49 49 49 20 49 58 20 58 20 30 20 31 20 73 65 65  III IX X 0 1 see
1000: 6b 3d 31 38 20 73 74 65 70 3d 39 7d 0a 0a 64 6f  k=18 step=9}..do
1010: 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e 31  _test where8-1.1
1020: 35 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74  5 {.  execsql_st
1030: 61 74 75 73 32 20 7b 0a 20 20 20 20 53 45 4c 45  atus2 {.    SELE
1040: 43 54 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45  CT c FROM t1 WHE
1050: 52 45 20 0a 20 20 20 20 20 20 61 20 42 45 54 57  RE .      a BETW
1060: 45 45 4e 20 32 20 41 4e 44 20 34 20 4f 52 20 62  EEN 2 AND 4 OR b
1070: 20 3d 20 27 6e 69 6e 65 27 0a 20 20 20 20 4f 52   = 'nine'.    OR
1080: 44 45 52 20 42 59 20 72 6f 77 69 64 0a 20 20 7d  DER BY rowid.  }
1090: 0a 7d 20 7b 49 49 20 49 49 49 20 49 56 20 49 58  .} {II III IV IX
10a0: 20 30 20 31 20 73 65 65 6b 3d 36 20 73 74 65 70   0 1 seek=6 step
10b0: 3d 34 7d 0a 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d  =4}...#---------
10c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1100: 2d 0a 23 20 54 65 73 74 73 20 77 68 65 72 65 38  -.# Tests where8
1110: 2d 32 2e 2a 3a 20 56 69 72 74 75 61 6c 20 74 61  -2.*: Virtual ta
1120: 62 6c 65 73 0a 23 20 0a 0a 69 66 20 30 20 7b 0a  bles.# ..if 0 {.
1130: 69 66 63 61 70 61 62 6c 65 20 76 74 61 62 20 7b  ifcapable vtab {
1140: 0a 20 20 23 20 52 65 67 69 73 74 65 72 20 74 68  .  # Register th
1150: 65 20 27 65 63 68 6f 27 20 6d 6f 64 75 6c 65 20  e 'echo' module 
1160: 75 73 65 64 20 66 6f 72 20 74 65 73 74 69 6e 67  used for testing
1170: 20 76 69 72 74 75 61 6c 20 74 61 62 6c 65 73 2e   virtual tables.
1180: 0a 20 20 23 0a 20 20 72 65 67 69 73 74 65 72 5f  .  #.  register_
1190: 65 63 68 6f 5f 6d 6f 64 75 6c 65 20 5b 73 71 6c  echo_module [sql
11a0: 69 74 65 34 5f 63 6f 6e 6e 65 63 74 69 6f 6e 5f  ite4_connection_
11b0: 70 6f 69 6e 74 65 72 20 64 62 5d 0a 0a 20 20 64  pointer db]..  d
11c0: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 32 2e  o_test where8-2.
11d0: 31 20 7b 0a 20 20 20 20 65 78 65 63 73 71 6c 20  1 {.    execsql 
11e0: 7b 0a 20 20 20 20 20 20 43 52 45 41 54 45 20 56  {.      CREATE V
11f0: 49 52 54 55 41 4c 20 54 41 42 4c 45 20 65 31 20  IRTUAL TABLE e1 
1200: 55 53 49 4e 47 20 65 63 68 6f 28 74 31 29 3b 0a  USING echo(t1);.
1210: 20 20 20 20 20 20 53 45 4c 45 43 54 20 62 20 46        SELECT b F
1220: 52 4f 4d 20 65 31 3b 0a 20 20 20 20 7d 0a 20 20  ROM e1;.    }.  
1230: 7d 20 7b 6f 6e 65 20 74 77 6f 20 74 68 72 65 65  } {one two three
1240: 20 66 6f 75 72 20 66 69 76 65 20 73 69 78 20 73   four five six s
1250: 65 76 65 6e 20 65 69 67 68 74 20 6e 69 6e 65 20  even eight nine 
1260: 74 65 6e 7d 0a 0a 20 20 64 6f 5f 74 65 73 74 20  ten}..  do_test 
1270: 77 68 65 72 65 38 2d 32 2e 32 2e 31 20 7b 0a 20  where8-2.2.1 {. 
1280: 20 20 20 73 65 74 20 65 63 68 6f 5f 6d 6f 64 75     set echo_modu
1290: 6c 65 20 22 22 0a 20 20 20 20 65 78 65 63 73 71  le "".    execsq
12a0: 6c 20 7b 0a 20 20 20 20 20 20 53 45 4c 45 43 54  l {.      SELECT
12b0: 20 63 20 46 52 4f 4d 20 65 31 20 57 48 45 52 45   c FROM e1 WHERE
12c0: 20 61 3d 31 20 4f 52 20 62 3d 27 74 68 72 65 65   a=1 OR b='three
12d0: 27 3b 0a 20 20 20 20 7d 0a 20 20 7d 20 7b 49 20  ';.    }.  } {I 
12e0: 49 49 49 7d 0a 20 20 64 6f 5f 74 65 73 74 20 77  III}.  do_test w
12f0: 68 65 72 65 38 2d 32 2e 32 2e 32 20 7b 0a 20 20  here8-2.2.2 {.  
1300: 20 20 73 65 74 20 65 63 68 6f 5f 6d 6f 64 75 6c    set echo_modul
1310: 65 0a 20 20 7d 20 7b 54 4f 44 4f 3a 20 57 68 61  e.  } {TODO: Wha
1320: 74 20 73 68 6f 75 6c 64 20 74 68 69 73 20 62 65  t should this be
1330: 3f 7d 0a 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d  ?}.}.}..#-------
1340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1370: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1380: 2d 2d 2d 0a 23 20 54 65 73 74 73 20 77 68 65 72  ---.# Tests wher
1390: 65 38 2d 33 2e 2a 3a 20 43 61 73 65 73 20 77 69  e8-3.*: Cases wi
13a0: 74 68 20 6d 75 6c 74 69 70 6c 65 20 74 61 62 6c  th multiple tabl
13b0: 65 73 20 69 6e 20 74 68 65 20 46 52 4f 4d 20 63  es in the FROM c
13c0: 6c 61 75 73 65 2e 0a 23 20 0a 64 6f 5f 74 65 73  lause..# .do_tes
13d0: 74 20 77 68 65 72 65 38 2d 33 2e 31 20 7b 0a 20  t where8-3.1 {. 
13e0: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 43   execsql {.    C
13f0: 52 45 41 54 45 20 54 41 42 4c 45 20 74 32 28 64  REATE TABLE t2(d
1400: 2c 20 65 2c 20 66 29 3b 0a 20 20 20 20 43 52 45  , e, f);.    CRE
1410: 41 54 45 20 49 4e 44 45 58 20 69 33 20 4f 4e 20  ATE INDEX i3 ON 
1420: 74 32 28 64 29 3b 0a 20 20 20 20 43 52 45 41 54  t2(d);.    CREAT
1430: 45 20 49 4e 44 45 58 20 69 34 20 4f 4e 20 74 32  E INDEX i4 ON t2
1440: 28 65 29 3b 0a 0a 20 20 20 20 49 4e 53 45 52 54  (e);..    INSERT
1450: 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28   INTO t2 VALUES(
1460: 31 2c 20 20 4e 55 4c 4c 2c 20 20 20 20 20 20 20  1,  NULL,       
1470: 20 20 27 49 27 29 3b 0a 20 20 20 20 49 4e 53 45    'I');.    INSE
1480: 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45  RT INTO t2 VALUE
1490: 53 28 32 2c 20 20 27 66 6f 75 72 27 2c 20 20 20  S(2,  'four',   
14a0: 20 20 20 20 27 49 56 27 29 3b 0a 20 20 20 20 49      'IV');.    I
14b0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41  NSERT INTO t2 VA
14c0: 4c 55 45 53 28 33 2c 20 20 4e 55 4c 4c 2c 20 20  LUES(3,  NULL,  
14d0: 20 20 20 20 20 20 20 27 49 58 27 29 3b 0a 20 20         'IX');.  
14e0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32    INSERT INTO t2
14f0: 20 56 41 4c 55 45 53 28 34 2c 20 20 27 73 69 78   VALUES(4,  'six
1500: 74 65 65 6e 27 2c 20 20 20 20 27 58 56 49 27 29  teen',    'XVI')
1510: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
1520: 4f 20 74 32 20 56 41 4c 55 45 53 28 35 2c 20 20  O t2 VALUES(5,  
1530: 4e 55 4c 4c 2c 20 20 20 20 20 20 20 20 20 27 58  NULL,         'X
1540: 58 56 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  XV');.    INSERT
1550: 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28   INTO t2 VALUES(
1560: 36 2c 20 20 27 74 68 69 72 74 79 73 69 78 27 2c  6,  'thirtysix',
1570: 20 20 27 58 58 58 56 49 27 29 3b 0a 20 20 20 20    'XXXVI');.    
1580: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56  INSERT INTO t2 V
1590: 41 4c 55 45 53 28 37 2c 20 20 27 66 6f 72 74 79  ALUES(7,  'forty
15a0: 6e 69 6e 65 27 2c 20 20 27 58 4c 49 58 27 29 3b  nine',  'XLIX');
15b0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
15c0: 20 74 32 20 56 41 4c 55 45 53 28 38 2c 20 20 27   t2 VALUES(8,  '
15d0: 73 69 78 74 79 65 69 67 68 74 27 2c 20 27 4c 58  sixtyeight', 'LX
15e0: 49 56 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  IV');.    INSERT
15f0: 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28   INTO t2 VALUES(
1600: 39 2c 20 20 27 65 69 67 68 74 79 6f 6e 65 27 2c  9,  'eightyone',
1610: 20 20 27 4c 58 58 58 49 58 27 29 3b 0a 20 20 20    'LXXXIX');.   
1620: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20   INSERT INTO t2 
1630: 56 41 4c 55 45 53 28 31 30 2c 20 4e 55 4c 4c 2c  VALUES(10, NULL,
1640: 20 20 20 20 20 20 20 20 20 27 43 27 29 3b 0a 20           'C');. 
1650: 20 7d 0a 7d 20 7b 7d 0a 0a 64 6f 5f 74 65 73 74   }.} {}..do_test
1660: 20 77 68 65 72 65 38 2d 33 2e 32 20 7b 0a 20 20   where8-3.2 {.  
1670: 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 20 7b  execsql_status {
1680: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 64  .    SELECT a, d
1690: 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48 45   FROM t1, t2 WHE
16a0: 52 45 20 62 3d 65 0a 20 20 7d 0a 7d 20 7b 34 20  RE b=e.  }.} {4 
16b0: 32 20 39 20 30 7d 0a 0a 64 6f 5f 74 65 73 74 20  2 9 0}..do_test 
16c0: 77 68 65 72 65 38 2d 33 2e 33 20 7b 0a 20 20 65  where8-3.3 {.  e
16d0: 78 65 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a  xecsql_status {.
16e0: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 64 20      SELECT a, d 
16f0: 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48 45 52  FROM t1, t2 WHER
1700: 45 20 28 61 20 3d 20 32 20 4f 52 20 61 20 3d 20  E (a = 2 OR a = 
1710: 33 29 20 41 4e 44 20 64 20 3d 20 36 0a 20 20 7d  3) AND d = 6.  }
1720: 0a 7d 20 7b 32 20 36 20 33 20 36 20 30 20 30 7d  .} {2 6 3 6 0 0}
1730: 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38  ..do_test where8
1740: 2d 33 2e 34 20 7b 0a 20 20 65 78 65 63 73 71 6c  -3.4 {.  execsql
1750: 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45  _status {.    SE
1760: 4c 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74  LECT a, d FROM t
1770: 31 2c 20 74 32 20 57 48 45 52 45 20 28 61 20 3d  1, t2 WHERE (a =
1780: 20 32 20 4f 52 20 61 20 3d 20 33 29 20 41 4e 44   2 OR a = 3) AND
1790: 20 64 20 3d 20 61 0a 20 20 7d 0a 7d 20 7b 32 20   d = a.  }.} {2 
17a0: 32 20 33 20 33 20 30 20 30 7d 0a 0a 64 6f 5f 74  2 3 3 0 0}..do_t
17b0: 65 73 74 20 77 68 65 72 65 38 2d 33 2e 35 20 7b  est where8-3.5 {
17c0: 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75  .  execsql_statu
17d0: 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  s {.    SELECT a
17e0: 2c 20 64 20 46 52 4f 4d 20 74 31 2c 20 74 32 20  , d FROM t1, t2 
17f0: 57 48 45 52 45 20 28 61 20 3d 20 32 20 4f 52 20  WHERE (a = 2 OR 
1800: 61 20 3d 20 33 29 20 41 4e 44 20 28 64 20 3d 20  a = 3) AND (d = 
1810: 61 20 4f 52 20 65 20 3d 20 27 73 69 78 74 65 65  a OR e = 'sixtee
1820: 6e 27 29 0a 20 20 7d 0a 7d 20 7b 32 20 32 20 32  n').  }.} {2 2 2
1830: 20 34 20 33 20 33 20 33 20 34 20 30 20 30 7d 0a   4 3 3 3 4 0 0}.
1840: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
1850: 33 2e 36 20 7b 0a 20 20 23 20 54 68 65 20 66 69  3.6 {.  # The fi
1860: 72 73 74 20 70 61 72 74 20 6f 66 20 74 68 65 20  rst part of the 
1870: 57 48 45 52 45 20 63 6c 61 75 73 65 20 69 6e 20  WHERE clause in 
1880: 74 68 69 73 20 71 75 65 72 79 2c 20 28 61 3d 32  this query, (a=2
1890: 20 4f 52 20 61 3d 33 29 20 69 73 0a 20 20 23 20   OR a=3) is.  # 
18a0: 74 72 61 6e 73 66 6f 72 6d 65 64 20 69 6e 74 6f  transformed into
18b0: 20 22 61 20 49 4e 20 28 32 2c 20 33 29 22 2e 20   "a IN (2, 3)". 
18c0: 54 68 69 73 20 69 73 20 77 68 79 20 74 68 65 20  This is why the 
18d0: 73 6f 72 74 20 69 73 20 72 65 71 75 69 72 65 64  sort is required
18e0: 2e 0a 20 20 23 0a 20 20 65 78 65 63 73 71 6c 5f  ..  #.  execsql_
18f0: 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c  status {.    SEL
1900: 45 43 54 20 61 2c 20 64 20 0a 20 20 20 20 46 52  ECT a, d .    FR
1910: 4f 4d 20 74 31 2c 20 74 32 20 0a 20 20 20 20 57  OM t1, t2 .    W
1920: 48 45 52 45 20 28 61 20 3d 20 32 20 4f 52 20 61  HERE (a = 2 OR a
1930: 20 3d 20 33 29 20 41 4e 44 20 28 64 20 3d 20 61   = 3) AND (d = a
1940: 20 4f 52 20 65 20 3d 20 27 73 69 78 74 65 65 6e   OR e = 'sixteen
1950: 27 29 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20  ').    ORDER BY 
1960: 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
1970: 32 20 32 20 32 20 34 20 33 20 33 20 33 20 34 20  2 2 2 4 3 3 3 4 
1980: 30 20 31 7d 0a 64 6f 5f 74 65 73 74 20 77 68 65  0 1}.do_test whe
1990: 72 65 38 2d 33 2e 37 20 7b 0a 20 20 65 78 65 63  re8-3.7 {.  exec
19a0: 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20  sql_status {.   
19b0: 20 53 45 4c 45 43 54 20 61 2c 20 64 20 0a 20 20   SELECT a, d .  
19c0: 20 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 0a 20    FROM t1, t2 . 
19d0: 20 20 20 57 48 45 52 45 20 61 20 3d 20 32 20 41     WHERE a = 2 A
19e0: 4e 44 20 28 64 20 3d 20 61 20 4f 52 20 65 20 3d  ND (d = a OR e =
19f0: 20 27 73 69 78 74 65 65 6e 27 29 0a 20 20 20 20   'sixteen').    
1a00: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
1a10: 64 0a 20 20 7d 0a 7d 20 7b 32 20 32 20 32 20 34  d.  }.} {2 2 2 4
1a20: 20 30 20 30 7d 0a 64 6f 5f 74 65 73 74 20 77 68   0 0}.do_test wh
1a30: 65 72 65 38 2d 33 2e 38 20 7b 0a 20 20 65 78 65  ere8-3.8 {.  exe
1a40: 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20  csql_status {.  
1a50: 20 20 53 45 4c 45 43 54 20 61 2c 20 64 20 0a 20    SELECT a, d . 
1a60: 20 20 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 0a     FROM t1, t2 .
1a70: 20 20 20 20 57 48 45 52 45 20 28 61 20 3d 20 32      WHERE (a = 2
1a80: 20 4f 52 20 62 20 3d 20 27 74 68 72 65 65 27 29   OR b = 'three')
1a90: 20 41 4e 44 20 28 64 20 3d 20 61 20 4f 52 20 65   AND (d = a OR e
1aa0: 20 3d 20 27 73 69 78 74 65 65 6e 27 29 0a 20 20   = 'sixteen').  
1ab0: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1ac0: 77 69 64 0a 20 20 7d 0a 7d 20 7b 32 20 32 20 32  wid.  }.} {2 2 2
1ad0: 20 34 20 33 20 33 20 33 20 34 20 30 20 31 7d 0a   4 3 3 3 4 0 1}.
1ae0: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33  do_test where8-3
1af0: 2e 39 20 7b 0a 20 20 23 20 54 68 65 20 22 4f 52  .9 {.  # The "OR
1b00: 20 63 20 3d 20 27 49 58 27 22 20 74 65 72 6d 20   c = 'IX'" term 
1b10: 66 6f 72 63 65 73 20 61 20 6c 69 6e 65 61 72 20  forces a linear 
1b20: 73 63 61 6e 2e 0a 20 20 65 78 65 63 73 71 6c 5f  scan..  execsql_
1b30: 73 74 61 74 75 73 32 20 7b 0a 20 20 20 20 53 45  status2 {.    SE
1b40: 4c 45 43 54 20 61 2c 20 64 20 0a 20 20 20 20 46  LECT a, d .    F
1b50: 52 4f 4d 20 74 31 2c 20 74 32 20 0a 20 20 20 20  ROM t1, t2 .    
1b60: 57 48 45 52 45 20 28 61 20 3d 20 32 20 4f 52 20  WHERE (a = 2 OR 
1b70: 62 20 3d 20 27 74 68 72 65 65 27 20 4f 52 20 63  b = 'three' OR c
1b80: 20 3d 20 27 49 58 27 29 20 41 4e 44 20 28 64 20   = 'IX') AND (d 
1b90: 3d 20 61 20 4f 52 20 65 20 3d 20 27 73 69 78 74  = a OR e = 'sixt
1ba0: 65 65 6e 27 29 0a 20 20 20 20 4f 52 44 45 52 20  een').    ORDER 
1bb0: 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
1bc0: 7d 20 7b 32 20 32 20 32 20 34 20 33 20 33 20 33  } {2 2 2 4 3 3 3
1bd0: 20 34 20 39 20 39 20 39 20 34 20 30 20 30 20 73   4 9 9 9 4 0 0 s
1be0: 65 65 6b 3d 31 33 20 73 74 65 70 3d 31 36 7d 0a  eek=13 step=16}.
1bf0: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33  do_test where8-3
1c00: 2e 31 30 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f  .10 {.  execsql_
1c10: 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c  status {.    SEL
1c20: 45 43 54 20 64 20 46 52 4f 4d 20 74 32 20 57 48  ECT d FROM t2 WH
1c30: 45 52 45 20 65 20 49 53 20 4e 55 4c 4c 20 4f 52  ERE e IS NULL OR
1c40: 20 65 20 3d 20 27 66 6f 75 72 27 0a 20 20 7d 0a   e = 'four'.  }.
1c50: 7d 20 7b 31 20 33 20 35 20 31 30 20 32 20 30 20  } {1 3 5 10 2 0 
1c60: 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72  0}..do_test wher
1c70: 65 38 2d 33 2e 31 31 20 7b 0a 20 20 65 78 65 63  e8-3.11 {.  exec
1c80: 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20  sql_status {.   
1c90: 20 53 45 4c 45 43 54 20 61 2c 20 64 20 46 52 4f   SELECT a, d FRO
1ca0: 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 28  M t1, t2 WHERE (
1cb0: 61 3d 64 20 4f 52 20 62 3d 65 29 20 41 4e 44 20  a=d OR b=e) AND 
1cc0: 61 3c 35 20 4f 52 44 45 52 20 42 59 20 61 0a 20  a<5 ORDER BY a. 
1cd0: 20 7d 0a 7d 20 7b 31 20 31 20 32 20 32 20 33 20   }.} {1 1 2 2 3 
1ce0: 33 20 34 20 32 20 34 20 34 20 30 20 30 7d 0a 64  3 4 2 4 4 0 0}.d
1cf0: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e  o_test where8-3.
1d00: 31 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73  12 {.  execsql_s
1d10: 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45  tatus {.    SELE
1d20: 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74 31 2c  CT a, d FROM t1,
1d30: 20 74 32 20 57 48 45 52 45 20 28 61 3d 64 20 4f   t2 WHERE (a=d O
1d40: 52 20 62 3d 65 29 20 41 4e 44 20 2b 61 3c 35 20  R b=e) AND +a<5 
1d50: 4f 52 44 45 52 20 42 59 20 61 0a 20 20 7d 0a 7d  ORDER BY a.  }.}
1d60: 20 7b 31 20 31 20 32 20 32 20 33 20 33 20 34 20   {1 1 2 2 3 3 4 
1d70: 32 20 34 20 34 20 30 20 30 7d 0a 64 6f 5f 74 65  2 4 4 0 0}.do_te
1d80: 73 74 20 77 68 65 72 65 38 2d 33 2e 31 33 20 7b  st where8-3.13 {
1d90: 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75  .  execsql_statu
1da0: 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  s {.    SELECT a
1db0: 2c 20 64 20 46 52 4f 4d 20 74 31 2c 20 74 32 20  , d FROM t1, t2 
1dc0: 57 48 45 52 45 20 28 61 3d 64 20 4f 52 20 62 3d  WHERE (a=d OR b=
1dd0: 65 29 20 41 4e 44 20 2b 61 3c 35 0a 20 20 7d 0a  e) AND +a<5.  }.
1de0: 7d 20 7b 31 20 31 20 32 20 32 20 33 20 33 20 34  } {1 1 2 2 3 3 4
1df0: 20 32 20 34 20 34 20 39 20 30 7d 0a 0a 64 6f 5f   2 4 4 9 0}..do_
1e00: 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e 31 34  test where8-3.14
1e10: 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61   {.  execsql_sta
1e20: 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  tus {.    SELECT
1e30: 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45   c FROM t1 WHERE
1e40: 20 61 20 3e 20 28 53 45 4c 45 43 54 20 64 20 46   a > (SELECT d F
1e50: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 65 20 3d  ROM t2 WHERE e =
1e60: 20 62 29 20 4f 52 20 61 20 3d 20 35 0a 20 20 7d   b) OR a = 5.  }
1e70: 0a 7d 20 7b 49 56 20 56 20 39 20 30 7d 0a 0a 64  .} {IV V 9 0}..d
1e80: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e  o_test where8-3.
1e90: 31 35 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73  15 {.  execsql_s
1ea0: 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c 45  tatus {.    SELE
1eb0: 43 54 20 63 20 46 52 4f 4d 20 74 31 2c 20 74 32  CT c FROM t1, t2
1ec0: 20 57 48 45 52 45 20 61 20 42 45 54 57 45 45 4e   WHERE a BETWEEN
1ed0: 20 31 20 41 4e 44 20 32 20 4f 52 20 61 20 3d 20   1 AND 2 OR a = 
1ee0: 28 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 73  (.      SELECT s
1ef0: 75 6d 28 65 20 49 53 20 4e 55 4c 4c 29 20 46 52  um(e IS NULL) FR
1f00: 4f 4d 20 74 32 20 41 53 20 69 6e 6e 65 72 20 57  OM t2 AS inner W
1f10: 48 45 52 45 20 74 32 2e 64 3e 69 6e 6e 65 72 2e  HERE t2.d>inner.
1f20: 64 0a 20 20 20 20 29 0a 20 20 20 20 4f 52 44 45  d.    ).    ORDE
1f30: 52 20 42 59 20 63 0a 20 20 7d 0a 7d 20 7b 49 20  R BY c.  }.} {I 
1f40: 49 20 49 20 49 20 49 20 49 20 49 20 49 20 49 20  I I I I I I I I 
1f50: 49 20 49 49 20 49 49 20 49 49 20 49 49 20 49 49  I II II II II II
1f60: 20 49 49 20 49 49 20 49 49 20 49 49 20 49 49 20   II II II II II 
1f70: 49 49 49 20 49 49 49 20 49 49 49 20 49 49 49 20  III III III III 
1f80: 49 49 49 20 39 20 31 7d 0a 0a 23 2d 2d 2d 2d 2d  III 9 1}..#-----
1f90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1fa0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1fb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1fc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1fd0: 2d 2d 0a 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69  --.# The followi
1fe0: 6e 67 20 74 65 73 74 73 20 2d 20 77 68 65 72 65  ng tests - where
1ff0: 38 2d 34 2e 2a 20 2d 20 76 65 72 69 66 79 20 74  8-4.* - verify t
2000: 68 61 74 20 61 64 64 69 6e 67 20 6f 72 20 72 65  hat adding or re
2010: 6d 6f 76 69 6e 67 20 0a 23 20 69 6e 64 65 78 65  moving .# indexe
2020: 73 20 64 6f 65 73 20 6e 6f 74 20 63 68 61 6e 67  s does not chang
2030: 65 20 74 68 65 20 72 65 73 75 6c 74 73 20 72 65  e the results re
2040: 74 75 72 6e 65 64 20 62 79 20 76 61 72 69 6f 75  turned by variou
2050: 73 20 71 75 65 72 69 65 73 2e 0a 23 0a 64 6f 5f  s queries..#.do_
2060: 74 65 73 74 20 77 68 65 72 65 38 2d 34 2e 31 20  test where8-4.1 
2070: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
2080: 20 20 42 45 47 49 4e 3b 0a 20 20 20 20 43 52 45    BEGIN;.    CRE
2090: 41 54 45 20 54 41 42 4c 45 20 74 33 28 61 20 49  ATE TABLE t3(a I
20a0: 4e 54 45 47 45 52 2c 20 62 20 52 45 41 4c 2c 20  NTEGER, b REAL, 
20b0: 63 20 54 45 58 54 29 3b 0a 20 20 20 20 43 52 45  c TEXT);.    CRE
20c0: 41 54 45 20 54 41 42 4c 45 20 74 34 28 66 20 49  ATE TABLE t4(f I
20d0: 4e 54 45 47 45 52 2c 20 67 20 52 45 41 4c 2c 20  NTEGER, g REAL, 
20e0: 68 20 54 45 58 54 29 3b 0a 20 20 20 20 49 4e 53  h TEXT);.    INS
20f0: 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55  ERT INTO t3 VALU
2100: 45 53 28 27 68 69 6c 6c 73 27 2c 20 4e 55 4c 4c  ES('hills', NULL
2110: 2c 20 31 34 31 35 39 32 36 35 33 35 29 3b 0a 20  , 1415926535);. 
2120: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2130: 33 20 56 41 4c 55 45 53 28 27 61 6e 64 27 2c 20  3 VALUES('and', 
2140: 27 6f 66 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20  'of', NULL);.   
2150: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
2160: 56 41 4c 55 45 53 28 27 68 61 76 65 27 2c 20 27  VALUES('have', '
2170: 74 6f 77 65 72 69 6e 67 27 2c 20 35 33 35 39 34  towering', 53594
2180: 2e 30 38 31 32 38 29 3b 0a 20 20 20 20 49 4e 53  .08128);.    INS
2190: 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55  ERT INTO t3 VALU
21a0: 45 53 28 4e 55 4c 4c 2c 20 34 35 2e 36 34 38 35  ES(NULL, 45.6485
21b0: 36 36 39 32 2c 20 27 4e 6f 74 27 29 3b 0a 20 20  6692, 'Not');.  
21c0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
21d0: 20 56 41 4c 55 45 53 28 27 73 61 6d 65 27 2c 20   VALUES('same', 
21e0: 35 30 32 38 38 34 31 39 37 31 2c 20 4e 55 4c 4c  5028841971, NULL
21f0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
2200: 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 6f 6e  TO t3 VALUES('on
2210: 6c 6f 6f 6b 65 72 73 27 2c 20 27 69 6e 27 2c 20  lookers', 'in', 
2220: 38 32 31 34 38 30 38 36 35 31 29 3b 0a 20 20 20  8214808651);.   
2230: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
2240: 56 41 4c 55 45 53 28 33 34 36 2e 30 33 34 38 36  VALUES(346.03486
2250: 31 30 2c 20 32 36 34 33 33 38 33 32 37 39 2c 20  10, 2643383279, 
2260: 4e 55 4c 4c 29 3b 0a 20 20 20 20 49 4e 53 45 52  NULL);.    INSER
2270: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
2280: 28 31 34 31 35 39 32 36 35 33 35 2c 20 27 6f 66  (1415926535, 'of
2290: 27 2c 20 27 61 72 65 27 29 3b 0a 20 20 20 20 49  ', 'are');.    I
22a0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
22b0: 4c 55 45 53 28 4e 55 4c 4c 2c 20 30 2e 34 38 31  LUES(NULL, 0.481
22c0: 31 31 37 34 35 30 32 2c 20 27 73 6e 61 70 73 68  1174502, 'snapsh
22d0: 6f 74 73 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  ots');.    INSER
22e0: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
22f0: 28 27 6f 76 65 72 27 2c 20 27 74 68 65 27 2c 20  ('over', 'the', 
2300: 38 36 32 38 30 33 34 38 32 35 29 3b 0a 20 20 20  8628034825);.   
2310: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
2320: 56 41 4c 55 45 53 28 38 36 32 38 30 33 34 38 32  VALUES(862803482
2330: 35 2c 20 36 36 2e 35 39 33 33 34 34 36 31 2c 20  5, 66.59334461, 
2340: 32 38 34 37 35 36 34 2e 38 32 33 29 3b 0a 20 20  2847564.823);.  
2350: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
2360: 20 56 41 4c 55 45 53 28 27 6f 6e 6c 6f 6f 6b 65   VALUES('onlooke
2370: 72 73 27 2c 20 27 73 61 6d 65 27 2c 20 27 61 6e  rs', 'same', 'an
2380: 64 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  d');.    INSERT 
2390: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 4e  INTO t3 VALUES(N
23a0: 55 4c 4c 2c 20 27 6c 69 67 68 74 27 2c 20 36 39  ULL, 'light', 69
23b0: 33 39 39 33 37 35 31 30 29 3b 0a 20 20 20 20 49  39937510);.    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 66 72 6f 6d 27 2c 20 27 74 68  LUES('from', 'th
23e0: 65 69 72 27 2c 20 27 76 69 65 77 65 64 27 29 3b  eir', 'viewed');
23f0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2400: 20 74 33 20 56 41 4c 55 45 53 28 27 66 72 6f 6d   t3 VALUES('from
2410: 27 2c 20 27 41 6c 70 69 6e 65 27 2c 20 27 73 6e  ', 'Alpine', 'sn
2420: 61 70 73 68 6f 74 73 27 29 3b 0a 20 20 20 20 49  apshots');.    I
2430: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2440: 4c 55 45 53 28 27 66 72 6f 6d 27 2c 20 27 73 6f  LUES('from', 'so
2450: 6d 65 74 69 6d 65 73 27 2c 20 27 75 6e 61 6c 69  metimes', 'unali
2460: 6b 65 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ke');.    INSERT
2470: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2480: 31 33 33 39 2e 33 36 30 37 32 36 2c 20 27 6c 69  1339.360726, 'li
2490: 67 68 74 27 2c 20 27 68 61 76 65 27 29 3b 0a 20  ght', 'have');. 
24a0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
24b0: 33 20 56 41 4c 55 45 53 28 36 39 33 39 39 33 37  3 VALUES(6939937
24c0: 35 31 30 2c 20 33 32 38 32 33 30 36 36 34 37 2c  510, 3282306647,
24d0: 20 27 6f 74 68 65 72 27 29 3b 0a 20 20 20 20 49   'other');.    I
24e0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
24f0: 4c 55 45 53 28 27 70 61 69 6e 74 69 6e 67 73 27  LUES('paintings'
2500: 2c 20 38 36 32 38 30 33 34 38 32 35 2c 20 27 61  , 8628034825, 'a
2510: 6c 6c 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ll');.    INSERT
2520: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2530: 27 70 61 69 6e 74 69 6e 67 73 27 2c 20 4e 55 4c  'paintings', NUL
2540: 4c 2c 20 27 73 61 6d 65 27 29 3b 0a 20 20 20 20  L, 'same');.    
2550: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2560: 41 4c 55 45 53 28 27 41 6c 70 69 6e 65 27 2c 20  ALUES('Alpine', 
2570: 33 37 38 36 37 38 33 31 36 2e 35 2c 20 27 75 6e  378678316.5, 'un
2580: 61 6c 69 6b 65 27 29 3b 0a 20 20 20 20 49 4e 53  alike');.    INS
2590: 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55  ERT INTO t3 VALU
25a0: 45 53 28 27 41 6c 70 69 6e 65 27 2c 20 4e 55 4c  ES('Alpine', NUL
25b0: 4c 2c 20 27 73 61 6d 65 27 29 3b 0a 20 20 20 20  L, 'same');.    
25c0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
25d0: 41 4c 55 45 53 28 31 33 33 39 2e 33 36 30 37 32  ALUES(1339.36072
25e0: 36 2c 20 32 38 34 37 35 36 34 2e 38 32 33 2c 20  6, 2847564.823, 
25f0: 27 6f 76 65 72 27 29 3b 0a 20 20 20 20 49 4e 53  'over');.    INS
2600: 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55  ERT INTO t3 VALU
2610: 45 53 28 27 76 69 6c 6c 61 67 65 73 27 2c 20 27  ES('villages', '
2620: 74 68 65 69 72 27 2c 20 27 68 61 76 65 27 29 3b  their', 'have');
2630: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2640: 20 74 33 20 56 41 4c 55 45 53 28 27 75 6e 61 6c   t3 VALUES('unal
2650: 69 6b 65 27 2c 20 27 72 65 6d 61 72 6b 61 62 6c  ike', 'remarkabl
2660: 79 27 2c 20 27 69 6e 27 29 3b 0a 20 20 20 20 49  y', 'in');.    I
2670: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2680: 4c 55 45 53 28 27 61 6e 64 27 2c 20 38 39 37 39  LUES('and', 8979
2690: 33 32 33 38 34 36 2c 20 27 61 6e 64 27 29 3b 0a  323846, 'and');.
26a0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
26b0: 74 33 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 20  t3 VALUES(NULL, 
26c0: 31 34 31 35 39 32 36 35 33 35 2c 20 27 61 6e 27  1415926535, 'an'
26d0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
26e0: 54 4f 20 74 33 20 56 41 4c 55 45 53 28 32 37 31  TO t3 VALUES(271
26f0: 2e 32 30 31 39 30 39 31 2c 20 38 36 32 38 30 33  .2019091, 862803
2700: 34 38 32 35 2c 20 30 2e 34 38 31 31 31 37 34 35  4825, 0.48111745
2710: 30 32 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  02);.    INSERT 
2720: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27  INTO t3 VALUES('
2730: 61 6c 6c 27 2c 20 33 34 32 31 31 37 30 36 37 39  all', 3421170679
2740: 2c 20 27 74 68 65 27 29 3b 0a 20 20 20 20 49 4e  , 'the');.    IN
2750: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
2760: 55 45 53 28 27 4e 6f 74 27 2c 20 27 61 6e 64 27  UES('Not', 'and'
2770: 2c 20 31 34 31 35 39 32 36 35 33 35 29 3b 0a 20  , 1415926535);. 
2780: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2790: 33 20 56 41 4c 55 45 53 28 27 6f 66 27 2c 20 27  3 VALUES('of', '
27a0: 6f 74 68 65 72 27 2c 20 27 6c 69 67 68 74 27 29  other', 'light')
27b0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
27c0: 4f 20 74 33 20 56 41 4c 55 45 53 28 4e 55 4c 4c  O t3 VALUES(NULL
27d0: 2c 20 27 74 6f 77 65 72 69 6e 67 27 2c 20 27 4e  , 'towering', 'N
27e0: 6f 74 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ot');.    INSERT
27f0: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2800: 33 34 36 2e 30 33 34 38 36 31 30 2c 20 4e 55 4c  346.0348610, NUL
2810: 4c 2c 20 27 6f 74 68 65 72 27 29 3b 0a 20 20 20  L, 'other');.   
2820: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
2830: 56 41 4c 55 45 53 28 27 4e 6f 74 27 2c 20 33 37  VALUES('Not', 37
2840: 38 36 37 38 33 31 36 2e 35 2c 20 4e 55 4c 4c 29  8678316.5, NULL)
2850: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
2860: 4f 20 74 33 20 56 41 4c 55 45 53 28 27 73 6e 61  O t3 VALUES('sna
2870: 70 73 68 6f 74 73 27 2c 20 38 36 32 38 30 33 34  pshots', 8628034
2880: 38 32 35 2c 20 27 6f 66 27 29 3b 0a 20 20 20 20  825, 'of');.    
2890: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
28a0: 41 4c 55 45 53 28 33 32 38 32 33 30 36 36 34 37  ALUES(3282306647
28b0: 2c 20 32 37 31 2e 32 30 31 39 30 39 31 2c 20 27  , 271.2019091, '
28c0: 61 6e 64 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  and');.    INSER
28d0: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
28e0: 28 35 30 2e 35 38 32 32 33 31 37 32 2c 20 33 37  (50.58223172, 37
28f0: 38 36 37 38 33 31 36 2e 35 2c 20 35 30 32 38 38  8678316.5, 50288
2900: 34 31 39 37 31 29 3b 0a 20 20 20 20 49 4e 53 45  41971);.    INSE
2910: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
2920: 53 28 35 30 2e 35 38 32 32 33 31 37 32 2c 20 32  S(50.58223172, 2
2930: 36 34 33 33 38 33 32 37 39 2c 20 27 73 6e 61 70  643383279, 'snap
2940: 73 68 6f 74 73 27 29 3b 0a 20 20 20 20 49 4e 53  shots');.    INS
2950: 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55  ERT INTO t3 VALU
2960: 45 53 28 27 77 72 69 74 69 6e 67 73 27 2c 20 38  ES('writings', 8
2970: 39 37 39 33 32 33 38 34 36 2c 20 38 39 37 39 33  979323846, 89793
2980: 32 33 38 34 36 29 3b 0a 20 20 20 20 49 4e 53 45  23846);.    INSE
2990: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
29a0: 53 28 27 6f 6e 6c 6f 6f 6b 65 72 73 27 2c 20 27  S('onlookers', '
29b0: 68 69 73 27 2c 20 27 69 6e 27 29 3b 0a 20 20 20  his', 'in');.   
29c0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
29d0: 56 41 4c 55 45 53 28 27 75 6e 61 6c 69 6b 65 27  VALUES('unalike'
29e0: 2c 20 38 36 32 38 30 33 34 38 32 35 2c 20 31 33  , 8628034825, 13
29f0: 33 39 2e 33 36 30 37 32 36 29 3b 0a 20 20 20 20  39.360726);.    
2a00: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2a10: 41 4c 55 45 53 28 27 6f 66 27 2c 20 27 41 6c 70  ALUES('of', 'Alp
2a20: 69 6e 65 27 2c 20 27 61 6e 64 27 29 3b 0a 20 20  ine', 'and');.  
2a30: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
2a40: 20 56 41 4c 55 45 53 28 27 6f 6e 6c 6f 6f 6b 65   VALUES('onlooke
2a50: 72 73 27 2c 20 4e 55 4c 4c 2c 20 27 66 72 6f 6d  rs', NULL, 'from
2a60: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
2a70: 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 77  NTO t3 VALUES('w
2a80: 72 69 74 69 6e 67 73 27 2c 20 27 69 74 27 2c 20  ritings', 'it', 
2a90: 31 33 33 39 2e 33 36 30 37 32 36 29 3b 0a 20 20  1339.360726);.  
2aa0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
2ab0: 20 56 41 4c 55 45 53 28 27 69 74 27 2c 20 27 61   VALUES('it', 'a
2ac0: 6e 64 27 2c 20 27 76 69 6c 6c 61 67 65 73 27 29  nd', 'villages')
2ad0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
2ae0: 4f 20 74 33 20 56 41 4c 55 45 53 28 27 61 6e 27  O t3 VALUES('an'
2af0: 2c 20 27 74 68 65 27 2c 20 27 76 69 6c 6c 61 67  , 'the', 'villag
2b00: 65 73 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  es');.    INSERT
2b10: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2b20: 38 32 31 34 38 30 38 36 35 31 2c 20 38 32 31 34  8214808651, 8214
2b30: 38 30 38 36 35 31 2c 20 27 73 61 6d 65 27 29 3b  808651, 'same');
2b40: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2b50: 20 74 33 20 56 41 4c 55 45 53 28 33 34 36 2e 30   t3 VALUES(346.0
2b60: 33 34 38 36 31 30 2c 20 27 6c 69 67 68 74 27 2c  348610, 'light',
2b70: 20 31 34 31 35 39 32 36 35 33 35 29 3b 0a 20 20   1415926535);.  
2b80: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
2b90: 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 20 38 39   VALUES(NULL, 89
2ba0: 37 39 33 32 33 38 34 36 2c 20 27 61 6e 64 27 29  79323846, 'and')
2bb0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
2bc0: 4f 20 74 33 20 56 41 4c 55 45 53 28 4e 55 4c 4c  O t3 VALUES(NULL
2bd0: 2c 20 27 73 61 6d 65 27 2c 20 31 33 33 39 2e 33  , 'same', 1339.3
2be0: 36 30 37 32 36 29 3b 0a 20 20 20 20 49 4e 53 45  60726);.    INSE
2bf0: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
2c00: 53 28 27 68 69 73 27 2c 20 27 66 72 6f 6d 27 2c  S('his', 'from',
2c10: 20 27 61 6e 27 29 3b 0a 20 20 20 20 49 4e 53 45   'an');.    INSE
2c20: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
2c30: 53 28 27 73 6e 61 70 73 68 6f 74 73 27 2c 20 27  S('snapshots', '
2c40: 6f 72 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 20  or', NULL);.    
2c50: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56  INSERT INTO t4 V
2c60: 41 4c 55 45 53 28 27 41 6c 70 69 6e 65 27 2c 20  ALUES('Alpine', 
2c70: 27 68 61 76 65 27 2c 20 27 69 74 27 29 3b 0a 20  'have', 'it');. 
2c80: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2c90: 34 20 56 41 4c 55 45 53 28 27 68 61 76 65 27 2c  4 VALUES('have',
2ca0: 20 27 70 65 61 6b 27 2c 20 27 72 65 6d 61 72 6b   'peak', 'remark
2cb0: 61 62 6c 79 27 29 3b 0a 20 20 20 20 49 4e 53 45  ably');.    INSE
2cc0: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
2cd0: 53 28 27 68 69 6c 6c 73 27 2c 20 4e 55 4c 4c 2c  S('hills', NULL,
2ce0: 20 27 4e 6f 74 27 29 3b 0a 20 20 20 20 49 4e 53   'Not');.    INS
2cf0: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
2d00: 45 53 28 27 73 61 6d 65 27 2c 20 27 66 72 6f 6d  ES('same', 'from
2d10: 27 2c 20 32 36 34 33 33 38 33 32 37 39 29 3b 0a  ', 2643383279);.
2d20: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
2d30: 74 34 20 56 41 4c 55 45 53 28 27 68 61 76 65 27  t4 VALUES('have'
2d40: 2c 20 27 61 6e 67 6c 65 27 2c 20 38 36 32 38 30  , 'angle', 86280
2d50: 33 34 38 32 35 29 3b 0a 20 20 20 20 49 4e 53 45  34825);.    INSE
2d60: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
2d70: 53 28 27 73 6f 6d 65 74 69 6d 65 73 27 2c 20 27  S('sometimes', '
2d80: 69 74 27 2c 20 32 38 34 37 35 36 34 2e 38 32 33  it', 2847564.823
2d90: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
2da0: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 30 39 33  TO t4 VALUES(093
2db0: 38 34 34 36 30 39 35 2c 20 27 70 65 61 6b 27 2c  8446095, 'peak',
2dc0: 20 27 6f 66 27 29 3b 0a 20 20 20 20 49 4e 53 45   'of');.    INSE
2dd0: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
2de0: 53 28 38 36 32 38 30 33 34 38 32 35 2c 20 27 61  S(8628034825, 'a
2df0: 6e 64 27 2c 20 27 73 61 6d 65 27 29 3b 0a 20 20  nd', 'same');.  
2e00: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
2e10: 20 56 41 4c 55 45 53 28 27 61 6e 64 27 2c 20 32   VALUES('and', 2
2e20: 37 31 2e 32 30 31 39 30 39 31 2c 20 27 74 68 65  71.2019091, 'the
2e30: 69 72 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ir');.    INSERT
2e40: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
2e50: 27 74 68 65 27 2c 20 27 6f 66 27 2c 20 27 72 65  'the', 'of', 're
2e60: 6d 61 72 6b 61 62 6c 79 27 29 3b 0a 20 20 20 20  markably');.    
2e70: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56  INSERT INTO t4 V
2e80: 41 4c 55 45 53 28 27 61 6e 64 27 2c 20 33 34 32  ALUES('and', 342
2e90: 31 31 37 30 36 37 39 2c 20 31 34 31 35 39 32 36  1170679, 1415926
2ea0: 35 33 35 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  535);.    INSERT
2eb0: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
2ec0: 27 61 6e 64 27 2c 20 27 69 6e 27 2c 20 27 61 6c  'and', 'in', 'al
2ed0: 6c 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  l');.    INSERT 
2ee0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 33  INTO t4 VALUES(3
2ef0: 37 38 36 37 38 33 31 36 2e 35 2c 20 30 2e 34 38  78678316.5, 0.48
2f00: 31 31 31 37 34 35 30 32 2c 20 27 73 6e 61 70 73  11174502, 'snaps
2f10: 68 6f 74 73 27 29 3b 0a 20 20 20 20 49 4e 53 45  hots');.    INSE
2f20: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
2f30: 53 28 27 69 74 27 2c 20 27 61 72 65 27 2c 20 27  S('it', 'are', '
2f40: 68 61 76 65 27 29 3b 0a 20 20 20 20 49 4e 53 45  have');.    INSE
2f50: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
2f60: 53 28 27 61 6e 67 6c 65 27 2c 20 27 73 6e 61 70  S('angle', 'snap
2f70: 73 68 6f 74 73 27 2c 20 33 37 38 36 37 38 33 31  shots', 37867831
2f80: 36 2e 35 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  6.5);.    INSERT
2f90: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
2fa0: 27 66 72 6f 6d 27 2c 20 31 34 31 35 39 32 36 35  'from', 14159265
2fb0: 33 35 2c 20 38 36 32 38 30 33 34 38 32 35 29 3b  35, 8628034825);
2fc0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2fd0: 20 74 34 20 56 41 4c 55 45 53 28 27 73 6e 61 70   t4 VALUES('snap
2fe0: 73 68 6f 74 73 27 2c 20 27 61 6e 67 6c 65 27 2c  shots', 'angle',
2ff0: 20 27 68 61 76 65 27 29 3b 0a 20 20 20 20 49 4e   'have');.    IN
3000: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
3010: 55 45 53 28 33 34 32 31 31 37 30 36 37 39 2c 20  UES(3421170679, 
3020: 30 39 33 38 34 34 36 30 39 35 2c 20 27 4e 6f 74  0938446095, 'Not
3030: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
3040: 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 70  NTO t4 VALUES('p
3050: 65 61 6b 27 2c 20 4e 55 4c 4c 2c 20 30 2e 34 38  eak', NULL, 0.48
3060: 31 31 31 37 34 35 30 32 29 3b 0a 20 20 20 20 49  11174502);.    I
3070: 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41  NSERT INTO t4 VA
3080: 4c 55 45 53 28 27 73 61 6d 65 27 2c 20 27 68 61  LUES('same', 'ha
3090: 76 65 27 2c 20 27 41 6c 70 69 6e 65 27 29 3b 0a  ve', 'Alpine');.
30a0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
30b0: 74 34 20 56 41 4c 55 45 53 28 32 37 31 2e 32 30  t4 VALUES(271.20
30c0: 31 39 30 39 31 2c 20 36 36 2e 35 39 33 33 34 34  19091, 66.593344
30d0: 36 31 2c 20 30 39 33 38 34 34 36 30 39 35 29 3b  61, 0938446095);
30e0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
30f0: 20 74 34 20 56 41 4c 55 45 53 28 38 39 37 39 33   t4 VALUES(89793
3100: 32 33 38 34 36 2c 20 27 68 69 73 27 2c 20 27 61  23846, 'his', 'a
3110: 6e 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  n');.    INSERT 
3120: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 4e  INTO t4 VALUES(N
3130: 55 4c 4c 2c 20 27 61 6e 64 27 2c 20 33 32 38 32  ULL, 'and', 3282
3140: 33 30 36 36 34 37 29 3b 0a 20 20 20 20 49 4e 53  306647);.    INS
3150: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
3160: 45 53 28 27 72 65 6d 61 72 6b 61 62 6c 79 27 2c  ES('remarkably',
3170: 20 4e 55 4c 4c 2c 20 27 4e 6f 74 27 29 3b 0a 20   NULL, 'Not');. 
3180: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3190: 34 20 56 41 4c 55 45 53 28 27 76 69 6c 6c 61 67  4 VALUES('villag
31a0: 65 73 27 2c 20 34 35 34 33 2e 32 36 36 34 38 32  es', 4543.266482
31b0: 2c 20 27 68 69 73 27 29 3b 0a 20 20 20 20 49 4e  , 'his');.    IN
31c0: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
31d0: 55 45 53 28 32 36 34 33 33 38 33 32 37 39 2c 20  UES(2643383279, 
31e0: 27 70 61 69 6e 74 69 6e 67 73 27 2c 20 27 6f 6e  'paintings', 'on
31f0: 6c 6f 6f 6b 65 72 73 27 29 3b 0a 20 20 20 20 49  lookers');.    I
3200: 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41  NSERT INTO t4 VA
3210: 4c 55 45 53 28 31 33 33 39 2e 33 36 30 37 32 36  LUES(1339.360726
3220: 2c 20 27 6f 66 27 2c 20 27 74 68 65 27 29 3b 0a  , 'of', 'the');.
3230: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
3240: 74 34 20 56 41 4c 55 45 53 28 27 70 65 61 6b 27  t4 VALUES('peak'
3250: 2c 20 27 6f 74 68 65 72 27 2c 20 27 70 65 61 6b  , 'other', 'peak
3260: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
3270: 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 69  NTO t4 VALUES('i
3280: 74 27 2c 20 27 6f 72 27 2c 20 38 39 37 39 33 32  t', 'or', 897932
3290: 33 38 34 36 29 3b 0a 20 20 20 20 49 4e 53 45 52  3846);.    INSER
32a0: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
32b0: 28 27 6f 6e 6c 6f 6f 6b 65 72 73 27 2c 20 27 4e  ('onlookers', 'N
32c0: 6f 74 27 2c 20 27 74 6f 77 65 72 69 6e 67 27 29  ot', 'towering')
32d0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
32e0: 4f 20 74 34 20 56 41 4c 55 45 53 28 4e 55 4c 4c  O t4 VALUES(NULL
32f0: 2c 20 27 70 65 61 6b 27 2c 20 27 4e 6f 74 27 29  , 'peak', 'Not')
3300: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
3310: 4f 20 74 34 20 56 41 4c 55 45 53 28 27 6f 66 27  O t4 VALUES('of'
3320: 2c 20 27 68 61 76 65 27 2c 20 36 39 33 39 39 33  , 'have', 693993
3330: 37 35 31 30 29 3b 0a 20 20 20 20 49 4e 53 45 52  7510);.    INSER
3340: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
3350: 28 27 6c 69 67 68 74 27 2c 20 27 68 69 6c 6c 73  ('light', 'hills
3360: 27 2c 20 30 2e 34 38 31 31 31 37 34 35 30 32 29  ', 0.4811174502)
3370: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
3380: 4f 20 74 34 20 56 41 4c 55 45 53 28 35 30 32 38  O t4 VALUES(5028
3390: 38 34 31 39 37 31 2c 20 27 4e 6f 74 27 2c 20 27  841971, 'Not', '
33a0: 69 74 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  it');.    INSERT
33b0: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
33c0: 27 61 6e 64 27 2c 20 27 4e 6f 74 27 2c 20 4e 55  'and', 'Not', NU
33d0: 4c 4c 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  LL);.    INSERT 
33e0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 33  INTO t4 VALUES(3
33f0: 34 36 2e 30 33 34 38 36 31 30 2c 20 27 76 69 6c  46.0348610, 'vil
3400: 6c 61 67 65 73 27 2c 20 4e 55 4c 4c 29 3b 0a 20  lages', NULL);. 
3410: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3420: 34 20 56 41 4c 55 45 53 28 38 39 37 39 33 32 33  4 VALUES(8979323
3430: 38 34 36 2c 20 4e 55 4c 4c 2c 20 36 39 33 39 39  846, NULL, 69399
3440: 33 37 35 31 30 29 3b 0a 20 20 20 20 49 4e 53 45  37510);.    INSE
3450: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
3460: 53 28 27 61 6e 27 2c 20 27 6c 69 67 68 74 27 2c  S('an', 'light',
3470: 20 27 70 65 61 6b 27 29 3b 0a 20 20 20 20 49 4e   'peak');.    IN
3480: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
3490: 55 45 53 28 35 30 32 38 38 34 31 39 37 31 2c 20  UES(5028841971, 
34a0: 36 39 33 39 39 33 37 35 31 30 2c 20 27 6c 69 67  6939937510, 'lig
34b0: 68 74 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ht');.    INSERT
34c0: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
34d0: 27 73 6f 6d 65 74 69 6d 65 73 27 2c 20 27 70 65  'sometimes', 'pe
34e0: 61 6b 27 2c 20 27 70 65 61 6b 27 29 3b 0a 20 20  ak', 'peak');.  
34f0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
3500: 20 56 41 4c 55 45 53 28 33 37 38 36 37 38 33 31   VALUES(37867831
3510: 36 2e 35 2c 20 35 30 32 38 38 34 31 39 37 31 2c  6.5, 5028841971,
3520: 20 27 61 6e 27 29 3b 0a 20 20 20 20 49 4e 53 45   'an');.    INSE
3530: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
3540: 53 28 33 37 38 36 37 38 33 31 36 2e 35 2c 20 27  S(378678316.5, '
3550: 68 69 73 27 2c 20 27 41 6c 70 69 6e 65 27 29 3b  his', 'Alpine');
3560: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3570: 20 74 34 20 56 41 4c 55 45 53 28 27 66 72 6f 6d   t4 VALUES('from
3580: 27 2c 20 27 6f 66 27 2c 20 27 61 6c 6c 27 29 3b  ', 'of', 'all');
3590: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
35a0: 20 74 34 20 56 41 4c 55 45 53 28 30 39 33 38 34   t4 VALUES(09384
35b0: 34 36 30 39 35 2c 20 27 73 61 6d 65 27 2c 20 4e  46095, 'same', N
35c0: 55 4c 4c 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ULL);.    INSERT
35d0: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
35e0: 30 39 33 38 34 34 36 30 39 35 2c 20 27 41 6c 70  0938446095, 'Alp
35f0: 69 6e 65 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20  ine', NULL);.   
3600: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20   INSERT INTO t4 
3610: 56 41 4c 55 45 53 28 27 68 69 73 27 2c 20 27 6f  VALUES('his', 'o
3620: 66 27 2c 20 33 37 38 36 37 38 33 31 36 2e 35 29  f', 378678316.5)
3630: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
3640: 4f 20 74 34 20 56 41 4c 55 45 53 28 32 37 31 2e  O t4 VALUES(271.
3650: 32 30 31 39 30 39 31 2c 20 27 76 69 65 77 65 64  2019091, 'viewed
3660: 27 2c 20 33 32 38 32 33 30 36 36 34 37 29 3b 0a  ', 3282306647);.
3670: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
3680: 74 34 20 56 41 4c 55 45 53 28 27 68 69 6c 6c 73  t4 VALUES('hills
3690: 27 2c 20 27 61 6c 6c 27 2c 20 27 70 65 61 6b 27  ', 'all', 'peak'
36a0: 29 3b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41  );.    CREATE TA
36b0: 42 4c 45 20 74 35 28 73 29 3b 0a 20 20 20 20 49  BLE t5(s);.    I
36c0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 35 20 56 41  NSERT INTO t5 VA
36d0: 4c 55 45 53 28 27 74 61 62 2d 74 35 27 29 3b 0a  LUES('tab-t5');.
36e0: 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45      CREATE TABLE
36f0: 20 74 36 28 74 29 3b 0a 20 20 20 20 49 4e 53 45   t6(t);.    INSE
3700: 52 54 20 49 4e 54 4f 20 74 36 20 56 41 4c 55 45  RT INTO t6 VALUE
3710: 53 28 31 32 33 34 35 36 29 3b 0a 20 20 20 20 43  S(123456);.    C
3720: 4f 4d 4d 49 54 3b 0a 20 20 7d 0a 7d 20 7b 7d 0a  OMMIT;.  }.} {}.
3730: 0a 63 61 74 63 68 20 7b 75 6e 73 65 74 20 72 65  .catch {unset re
3740: 73 75 6c 74 73 7d 0a 63 61 74 63 68 20 7b 75 6e  sults}.catch {un
3750: 73 65 74 20 41 7d 0a 63 61 74 63 68 20 7b 75 6e  set A}.catch {un
3760: 73 65 74 20 42 7d 0a 0a 73 65 74 20 41 20 32 0a  set B}..set A 2.
3770: 66 6f 72 65 61 63 68 20 69 64 78 73 71 6c 20 7b  foreach idxsql {
3780: 0a 20 20 7b 20 0a 20 20 20 20 2f 2a 20 4e 6f 20  .  { .    /* No 
3790: 69 6e 64 65 78 65 73 20 2a 2f 20 0a 20 20 7d 20  indexes */ .  } 
37a0: 7b 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e 44  {.    CREATE IND
37b0: 45 58 20 69 35 20 4f 4e 20 74 33 28 61 29 3b 0a  EX i5 ON t3(a);.
37c0: 20 20 7d 20 7b 0a 20 20 20 20 43 52 45 41 54 45    } {.    CREATE
37d0: 20 49 4e 44 45 58 20 69 35 20 4f 4e 20 74 33 28   INDEX i5 ON t3(
37e0: 61 2c 20 62 29 3b 0a 20 20 20 20 43 52 45 41 54  a, b);.    CREAT
37f0: 45 20 49 4e 44 45 58 20 69 36 20 4f 4e 20 74 34  E INDEX i6 ON t4
3800: 28 66 29 3b 0a 20 20 7d 20 7b 0a 20 20 20 20 43  (f);.  } {.    C
3810: 52 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e 44  REATE UNIQUE IND
3820: 45 58 20 69 35 20 4f 4e 20 74 33 28 61 2c 20 62  EX i5 ON t3(a, b
3830: 29 3b 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e  );.    CREATE IN
3840: 44 45 58 20 69 37 20 4f 4e 20 74 33 28 63 29 3b  DEX i7 ON t3(c);
3850: 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45  .    CREATE INDE
3860: 58 20 69 36 20 4f 4e 20 74 34 28 66 29 3b 0a 20  X i6 ON t4(f);. 
3870: 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20     CREATE INDEX 
3880: 69 38 20 4f 4e 20 74 34 28 68 29 3b 0a 20 20 7d  i8 ON t4(h);.  }
3890: 20 7b 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e   {.    CREATE IN
38a0: 44 45 58 20 69 35 20 4f 4e 20 74 33 28 61 2c 20  DEX i5 ON t3(a, 
38b0: 62 2c 20 63 29 3b 0a 20 20 20 20 43 52 45 41 54  b, c);.    CREAT
38c0: 45 20 49 4e 44 45 58 20 69 36 20 4f 4e 20 74 34  E INDEX i6 ON t4
38d0: 28 66 2c 20 67 2c 20 68 29 3b 0a 20 20 20 20 43  (f, g, h);.    C
38e0: 52 45 41 54 45 20 49 4e 44 45 58 20 69 37 20 4f  REATE INDEX i7 O
38f0: 4e 20 74 33 28 63 2c 20 62 2c 20 61 29 3b 0a 20  N t3(c, b, a);. 
3900: 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20     CREATE INDEX 
3910: 69 38 20 4f 4e 20 74 34 28 68 2c 20 67 2c 20 66  i8 ON t4(h, g, f
3920: 29 3b 0a 20 20 7d 0a 7d 20 7b 0a 0a 20 20 65 78  );.  }.} {..  ex
3930: 65 63 73 71 6c 20 7b 0a 20 20 20 20 44 52 4f 50  ecsql {.    DROP
3940: 20 49 4e 44 45 58 20 49 46 20 45 58 49 53 54 53   INDEX IF EXISTS
3950: 20 69 35 3b 0a 20 20 20 20 44 52 4f 50 20 49 4e   i5;.    DROP IN
3960: 44 45 58 20 49 46 20 45 58 49 53 54 53 20 69 36  DEX IF EXISTS i6
3970: 3b 0a 20 20 20 20 44 52 4f 50 20 49 4e 44 45 58  ;.    DROP INDEX
3980: 20 49 46 20 45 58 49 53 54 53 20 69 37 3b 0a 20   IF EXISTS i7;. 
3990: 20 20 20 44 52 4f 50 20 49 4e 44 45 58 20 49 46     DROP INDEX IF
39a0: 20 45 58 49 53 54 53 20 69 38 3b 0a 20 20 7d 0a   EXISTS i8;.  }.
39b0: 20 20 65 78 65 63 73 71 6c 20 24 69 64 78 73 71    execsql $idxsq
39c0: 6c 0a 0a 20 20 66 6f 72 65 61 63 68 20 7b 42 20  l..  foreach {B 
39d0: 73 71 6c 7d 20 7b 0a 20 31 20 20 7b 20 53 45 4c  sql} {. 1  { SEL
39e0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
39f0: 45 52 45 20 63 20 4c 49 4b 45 20 62 20 7d 0a 20  ERE c LIKE b }. 
3a00: 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  2  { SELECT * FR
3a10: 4f 4d 20 74 33 20 57 48 45 52 45 20 63 7c 7c 27  OM t3 WHERE c||'
3a20: 27 20 4c 49 4b 45 20 27 74 68 65 25 27 20 7d 0a  ' LIKE 'the%' }.
3a30: 20 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46   3  { SELECT * F
3a40: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 72 6f 77  ROM t3 WHERE row
3a50: 69 64 20 4c 49 4b 45 20 27 31 32 25 27 20 7d 0a  id LIKE '12%' }.
3a60: 20 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46   4  { SELECT * F
3a70: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 2b 63 20  ROM t3 WHERE +c 
3a80: 4c 49 4b 45 20 27 74 68 65 25 27 20 7d 0a 20 35  LIKE 'the%' }. 5
3a90: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
3aa0: 4d 20 74 33 20 57 48 45 52 45 20 63 20 4c 49 4b  M t3 WHERE c LIK
3ab0: 45 20 27 74 68 65 25 27 20 7d 0a 20 36 20 20 7b  E 'the%' }. 6  {
3ac0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
3ad0: 33 20 57 48 45 52 45 20 63 20 47 4c 4f 42 20 27  3 WHERE c GLOB '
3ae0: 2a 6c 6c 6f 27 20 7d 0a 0a 20 37 20 20 7b 20 53  *llo' }.. 7  { S
3af0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
3b00: 57 48 45 52 45 20 61 20 3d 20 27 61 6e 67 6c 65  WHERE a = 'angle
3b10: 27 20 7d 0a 20 38 20 20 7b 20 53 45 4c 45 43 54  ' }. 8  { SELECT
3b20: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
3b30: 20 61 20 3d 20 27 69 74 27 20 4f 52 20 62 20 3d   a = 'it' OR b =
3b40: 20 36 39 33 39 39 33 37 35 31 30 20 7d 0a 20 39   6939937510 }. 9
3b50: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
3b60: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61  M t3, t4 WHERE a
3b70: 20 3d 20 27 70 61 69 6e 74 69 6e 67 27 20 4f 52   = 'painting' OR
3b80: 20 61 20 3d 20 27 61 72 65 27 20 4f 52 20 61 20   a = 'are' OR a 
3b90: 3d 20 66 20 7d 0a 31 30 20 20 7b 20 53 45 4c 45  = f }.10  { SELE
3ba0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
3bb0: 20 57 48 45 52 45 20 61 20 3d 20 27 61 6c 6c 27   WHERE a = 'all'
3bc0: 20 4f 52 20 61 20 3d 20 27 61 6e 64 27 20 4f 52   OR a = 'and' OR
3bd0: 20 61 20 3d 20 68 20 7d 0a 31 31 20 20 7b 20 53   a = h }.11  { S
3be0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
3bf0: 20 74 34 20 57 48 45 52 45 20 61 20 3c 20 27 6f   t4 WHERE a < 'o
3c00: 66 27 20 4f 52 20 62 20 3e 20 33 34 36 20 41 4e  f' OR b > 346 AN
3c10: 44 20 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 32  D c IS NULL }.12
3c20: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
3c30: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 27  M t3, t4 WHERE '
3c40: 74 68 65 27 20 3e 20 61 20 4f 52 20 62 20 3e 20  the' > a OR b > 
3c50: 27 68 61 76 65 27 20 41 4e 44 20 63 20 3d 20 31  'have' AND c = 1
3c60: 34 31 35 39 32 36 35 33 35 20 7d 0a 0a 31 33 20  415926535 }..13 
3c70: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
3c80: 20 74 33 20 57 48 45 52 45 20 61 20 42 45 54 57   t3 WHERE a BETW
3c90: 45 45 4e 20 27 6f 6e 65 27 20 41 4e 44 20 27 74  EEN 'one' AND 't
3ca0: 77 6f 27 20 4f 52 20 61 20 3d 20 33 34 32 31 31  wo' OR a = 34211
3cb0: 37 30 36 37 39 20 7d 0a 31 34 20 20 7b 20 53 45  70679 }.14  { 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 61 20 42 45 54 57 45 45 4e 20 27  HERE a BETWEEN '
3ce0: 6f 6e 65 27 20 41 4e 44 20 27 74 77 6f 27 20 4f  one' AND 'two' O
3cf0: 52 20 61 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 35  R a IS NULL }.15
3d00: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
3d10: 4d 20 74 33 20 57 48 45 52 45 20 63 20 3e 20 27  M t3 WHERE c > '
3d20: 6f 6e 65 27 20 4f 52 20 63 20 3e 3d 20 27 6f 6e  one' OR c >= 'on
3d30: 65 27 20 4f 52 20 63 20 4c 49 4b 45 20 27 6f 6e  e' OR c LIKE 'on
3d40: 65 25 27 20 7d 0a 31 36 20 20 7b 20 53 45 4c 45  e%' }.16  { SELE
3d50: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
3d60: 52 45 20 63 20 3e 20 27 6f 6e 65 27 20 4f 52 20  RE c > 'one' OR 
3d70: 63 20 3d 20 63 20 4f 52 20 63 20 3d 20 61 20 7d  c = c OR c = a }
3d80: 0a 31 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .17  { SELECT * 
3d90: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
3da0: 49 53 20 4e 55 4c 4c 20 4f 52 20 61 20 3e 3d 20  IS NULL OR a >= 
3db0: 27 70 65 61 6b 27 20 7d 0a 31 38 20 20 7b 20 53  'peak' }.18  { S
3dc0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
3dd0: 57 48 45 52 45 20 63 20 49 4e 20 28 27 6f 74 68  WHERE c IN ('oth
3de0: 65 72 27 2c 20 27 61 6c 6c 27 2c 20 27 73 6e 61  er', 'all', 'sna
3df0: 70 73 68 6f 74 73 27 29 20 4f 52 20 61 3e 31 20  pshots') OR a>1 
3e00: 7d 0a 31 39 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.19  { SELECT *
3e10: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63   FROM t3 WHERE c
3e20: 20 49 4e 20 28 27 6f 74 68 65 72 27 2c 20 27 61   IN ('other', 'a
3e30: 6c 6c 27 2c 20 27 73 6e 61 70 73 68 6f 74 73 27  ll', 'snapshots'
3e40: 29 20 41 4e 44 20 61 3e 31 20 7d 0a 32 30 20 20  ) AND a>1 }.20  
3e50: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
3e60: 74 33 20 57 48 45 52 45 20 63 20 49 53 20 4e 55  t3 WHERE c IS NU
3e70: 4c 4c 20 41 4e 44 20 61 3e 27 6f 6e 65 27 20 7d  LL AND a>'one' }
3e80: 0a 32 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .21  { SELECT * 
3e90: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
3ea0: 49 53 20 4e 55 4c 4c 20 4f 52 20 61 3e 27 6f 6e  IS NULL OR a>'on
3eb0: 65 27 20 7d 0a 32 32 20 20 7b 20 53 45 4c 45 43  e' }.22  { 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 62 20 3d 20 62 20 41 4e 44 20 61 20 3e 20  E b = b AND a > 
3ee0: 27 61 72 65 27 20 7d 0a 32 33 20 20 7b 20 53 45  'are' }.23  { SE
3ef0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
3f00: 48 45 52 45 20 63 20 3c 3d 20 62 20 4f 52 20 62  HERE c <= b OR b
3f10: 20 3c 20 27 73 6e 61 70 73 68 6f 74 73 27 20 7d   < 'snapshots' }
3f20: 0a 32 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .24  { SELECT * 
3f30: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27 6f  FROM t3 WHERE 'o
3f40: 6e 6c 6f 6f 6b 65 72 73 27 20 3e 3d 20 63 20 41  nlookers' >= c A
3f50: 4e 44 20 61 20 3c 3d 20 62 20 4f 52 20 62 20 3d  ND a <= b OR b =
3f60: 20 27 61 6e 67 6c 65 27 20 7d 0a 32 35 20 20 7b   'angle' }.25  {
3f70: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
3f80: 33 20 57 48 45 52 45 20 62 20 3d 20 27 66 72 6f  3 WHERE b = 'fro
3f90: 6d 27 20 7d 0a 32 36 20 20 7b 20 53 45 4c 45 43  m' }.26  { SELEC
3fa0: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
3fb0: 45 20 62 20 3d 20 34 35 34 33 2e 32 36 36 34 38  E b = 4543.26648
3fc0: 32 20 7d 0a 32 37 20 20 7b 20 53 45 4c 45 43 54  2 }.27  { SELECT
3fd0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
3fe0: 20 63 20 3c 20 33 32 38 32 33 30 36 36 34 37 20   c < 3282306647 
3ff0: 7d 0a 32 38 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.28  { SELECT *
4000: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63   FROM t3 WHERE c
4010: 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20 62 20 3e   IS NULL AND b >
4020: 3d 20 63 20 7d 0a 32 39 20 20 7b 20 53 45 4c 45  = c }.29  { SELE
4030: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4040: 52 45 20 62 20 3e 20 30 2e 34 38 31 31 31 37 34  RE b > 0.4811174
4050: 35 30 32 20 41 4e 44 20 63 20 3d 20 27 6f 74 68  502 AND c = 'oth
4060: 65 72 27 20 41 4e 44 20 27 76 69 65 77 65 64 27  er' AND 'viewed'
4070: 20 3e 20 61 20 7d 0a 33 30 20 20 7b 20 53 45 4c   > a }.30  { SEL
4080: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4090: 45 52 45 20 63 20 3d 20 27 70 65 61 6b 27 20 7d  ERE c = 'peak' }
40a0: 0a 33 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .31  { SELECT * 
40b0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
40c0: 3c 20 35 33 35 39 34 2e 30 38 31 32 38 20 4f 52  < 53594.08128 OR
40d0: 20 63 20 3c 3d 20 62 20 7d 0a 33 32 20 20 7b 20   c <= b }.32  { 
40e0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
40f0: 20 57 48 45 52 45 20 27 77 72 69 74 69 6e 67 73   WHERE 'writings
4100: 27 20 3c 3d 20 62 20 7d 0a 33 33 20 20 7b 20 53  ' <= b }.33  { S
4110: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4120: 57 48 45 52 45 20 32 36 34 33 33 38 33 32 37 39  WHERE 2643383279
4130: 20 3d 20 62 20 4f 52 20 63 20 3c 20 62 20 41 4e   = b OR c < b AN
4140: 44 20 62 20 3c 3d 20 33 32 38 32 33 30 36 36 34  D b <= 328230664
4150: 37 20 7d 0a 33 34 20 20 7b 20 53 45 4c 45 43 54  7 }.34  { SELECT
4160: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
4170: 20 61 20 49 53 20 4e 55 4c 4c 20 7d 0a 33 35 20   a IS NULL }.35 
4180: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4190: 20 74 33 20 57 48 45 52 45 20 27 77 72 69 74 69   t3 WHERE 'writi
41a0: 6e 67 73 27 20 3d 20 61 20 4f 52 20 62 20 3d 20  ngs' = a OR b = 
41b0: 33 37 38 36 37 38 33 31 36 2e 35 20 7d 0a 33 36  378678316.5 }.36
41c0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
41d0: 4d 20 74 33 20 57 48 45 52 45 20 27 61 6e 64 27  M t3 WHERE 'and'
41e0: 20 3e 3d 20 63 20 7d 0a 33 37 20 20 7b 20 53 45   >= c }.37  { SE
41f0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4200: 48 45 52 45 20 63 20 3c 20 27 66 72 6f 6d 27 20  HERE c < 'from' 
4210: 7d 0a 33 38 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.38  { SELECT *
4220: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27   FROM t3 WHERE '
4230: 68 69 73 27 20 3c 20 63 20 4f 52 20 62 20 3c 20  his' < c OR b < 
4240: 62 20 7d 0a 33 39 20 20 7b 20 53 45 4c 45 43 54  b }.39  { SELECT
4250: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
4260: 20 35 33 35 39 34 2e 30 38 31 32 38 20 3d 20 62   53594.08128 = b
4270: 20 41 4e 44 20 63 20 3e 3d 20 62 20 7d 0a 34 30   AND c >= b }.40
4280: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4290: 4d 20 74 33 20 57 48 45 52 45 20 27 75 6e 61 6c  M t3 WHERE 'unal
42a0: 69 6b 65 27 20 3c 20 63 20 41 4e 44 20 27 61 72  ike' < c AND 'ar
42b0: 65 27 20 3e 3d 20 63 20 41 4e 44 20 61 20 3c 3d  e' >= c AND a <=
42c0: 20 62 20 7d 0a 34 31 20 20 7b 20 53 45 4c 45 43   b }.41  { SELEC
42d0: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
42e0: 45 20 62 20 3e 3d 20 34 35 34 33 2e 32 36 36 34  E b >= 4543.2664
42f0: 38 32 20 4f 52 20 27 41 6c 70 69 6e 65 27 20 3e  82 OR 'Alpine' >
4300: 20 61 20 4f 52 20 32 37 31 2e 32 30 31 39 30 39   a OR 271.201909
4310: 31 20 3c 3d 20 61 20 7d 0a 34 32 20 20 7b 20 53  1 <= a }.42  { S
4320: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4330: 57 48 45 52 45 20 62 20 3d 20 63 20 7d 0a 34 33  WHERE b = c }.43
4340: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4350: 4d 20 74 33 20 57 48 45 52 45 20 63 20 3e 20 61  M t3 WHERE c > a
4360: 20 41 4e 44 20 62 20 3c 20 27 61 6c 6c 27 20 7d   AND b < 'all' }
4370: 0a 34 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .44  { SELECT * 
4380: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
4390: 42 45 54 57 45 45 4e 20 27 68 69 6c 6c 73 27 20  BETWEEN 'hills' 
43a0: 41 4e 44 20 27 73 6e 61 70 73 68 6f 74 73 27 20  AND 'snapshots' 
43b0: 41 4e 44 20 63 20 3c 3d 20 27 74 68 65 27 20 4f  AND c <= 'the' O
43c0: 52 20 63 20 3d 20 61 20 7d 0a 34 35 20 20 7b 20  R c = a }.45  { 
43d0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
43e0: 20 57 48 45 52 45 20 62 20 3e 20 63 20 41 4e 44   WHERE b > c AND
43f0: 20 63 20 3e 3d 20 27 68 69 6c 6c 73 27 20 7d 0a   c >= 'hills' }.
4400: 34 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  46  { SELECT * F
4410: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20 3e  ROM t3 WHERE b >
4420: 20 27 6f 72 27 20 4f 52 20 61 20 3c 3d 20 27 68   'or' OR a <= 'h
4430: 69 6c 6c 73 27 20 4f 52 20 63 20 49 53 20 4e 55  ills' OR c IS NU
4440: 4c 4c 20 7d 0a 34 37 20 20 7b 20 53 45 4c 45 43  LL }.47  { SELEC
4450: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
4460: 45 20 63 20 3e 20 62 20 4f 52 20 62 20 42 45 54  E c > b OR b BET
4470: 57 45 45 4e 20 31 33 33 39 2e 33 36 30 37 32 36  WEEN 1339.360726
4480: 20 41 4e 44 20 27 6f 6e 6c 6f 6f 6b 65 72 73 27   AND 'onlookers'
4490: 20 4f 52 20 31 34 31 35 39 32 36 35 33 35 20 3e   OR 1415926535 >
44a0: 3d 20 62 20 7d 0a 34 38 20 20 7b 20 53 45 4c 45  = b }.48  { SELE
44b0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
44c0: 52 45 20 61 20 49 53 20 4e 55 4c 4c 20 7d 0a 34  RE a IS NULL }.4
44d0: 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  9  { SELECT * FR
44e0: 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20 3e 20  OM t3 WHERE a > 
44f0: 27 6f 74 68 65 72 27 20 7d 0a 35 30 20 20 7b 20  'other' }.50  { 
4500: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4510: 20 57 48 45 52 45 20 27 74 68 65 27 20 3c 3d 20   WHERE 'the' <= 
4520: 63 20 41 4e 44 20 61 20 3c 3d 20 63 20 7d 0a 35  c AND a <= c }.5
4530: 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  1  { SELECT * FR
4540: 4f 4d 20 74 33 20 57 48 45 52 45 20 33 34 36 2e  OM t3 WHERE 346.
4550: 30 33 34 38 36 31 30 20 3d 20 61 20 41 4e 44 20  0348610 = a AND 
4560: 63 20 3d 20 62 20 7d 0a 35 32 20 20 7b 20 53 45  c = b }.52  { SE
4570: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4580: 48 45 52 45 20 63 20 42 45 54 57 45 45 4e 20 35  HERE c BETWEEN 5
4590: 30 2e 35 38 32 32 33 31 37 32 20 41 4e 44 20 27  0.58223172 AND '
45a0: 73 61 6d 65 27 20 41 4e 44 20 61 20 3c 20 62 20  same' AND a < b 
45b0: 7d 0a 35 33 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.53  { SELECT *
45c0: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27   FROM t3 WHERE '
45d0: 41 6c 70 69 6e 65 27 20 3c 3d 20 62 20 41 4e 44  Alpine' <= b AND
45e0: 20 63 20 3e 3d 20 27 61 6e 67 6c 65 27 20 4f 52   c >= 'angle' OR
45f0: 20 62 20 3c 3d 20 32 37 31 2e 32 30 31 39 30 39   b <= 271.201909
4600: 31 20 7d 0a 35 34 20 20 7b 20 53 45 4c 45 43 54  1 }.54  { SELECT
4610: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
4620: 20 61 20 3c 20 61 20 41 4e 44 20 31 34 31 35 39   a < a AND 14159
4630: 32 36 35 33 35 20 3e 20 62 20 7d 0a 35 35 20 20  26535 > b }.55  
4640: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4650: 74 33 20 57 48 45 52 45 20 63 20 3e 20 61 20 41  t3 WHERE c > a A
4660: 4e 44 20 27 68 61 76 65 27 20 3e 3d 20 63 20 7d  ND 'have' >= c }
4670: 0a 35 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .56  { SELECT * 
4680: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20  FROM t3 WHERE b 
4690: 3c 3d 20 62 20 41 4e 44 20 63 20 3e 20 62 20 7d  <= b AND c > b }
46a0: 0a 35 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .57  { SELECT * 
46b0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20  FROM t3 WHERE a 
46c0: 49 53 20 4e 55 4c 4c 20 41 4e 44 20 63 20 3c 3d  IS NULL AND c <=
46d0: 20 63 20 7d 0a 35 38 20 20 7b 20 53 45 4c 45 43   c }.58  { SELEC
46e0: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
46f0: 45 20 62 20 3c 20 63 20 4f 52 20 62 20 3d 20 63  E b < c OR b = c
4700: 20 7d 0a 35 39 20 20 7b 20 53 45 4c 45 43 54 20   }.59  { SELECT 
4710: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4720: 63 20 3c 20 62 20 41 4e 44 20 62 20 3e 3d 20 27  c < b AND b >= '
4730: 69 74 27 20 7d 0a 36 30 20 20 7b 20 53 45 4c 45  it' }.60  { SELE
4740: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4750: 52 45 20 61 20 3d 20 62 20 41 4e 44 20 61 20 3c  RE a = b AND a <
4760: 3d 20 62 20 4f 52 20 62 20 3e 3d 20 61 20 7d 0a  = b OR b >= a }.
4770: 36 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  61  { SELECT * F
4780: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20 3d  ROM t3 WHERE b =
4790: 20 63 20 7d 0a 36 32 20 20 7b 20 53 45 4c 45 43   c }.62  { SELEC
47a0: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
47b0: 45 20 63 20 42 45 54 57 45 45 4e 20 27 74 68 65  E c BETWEEN 'the
47c0: 27 20 41 4e 44 20 32 37 31 2e 32 30 31 39 30 39  ' AND 271.201909
47d0: 31 20 4f 52 20 63 20 3c 3d 20 33 32 38 32 33 30  1 OR c <= 328230
47e0: 36 36 34 37 20 41 4e 44 20 63 20 3e 3d 20 62 20  6647 AND c >= b 
47f0: 7d 0a 36 33 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.63  { SELECT *
4800: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63   FROM t3 WHERE c
4810: 20 3e 3d 20 63 20 41 4e 44 20 63 20 3c 20 27 77   >= c AND c < 'w
4820: 72 69 74 69 6e 67 73 27 20 7d 0a 36 34 20 20 7b  ritings' }.64  {
4830: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4840: 33 20 57 48 45 52 45 20 63 20 3c 3d 20 33 32 38  3 WHERE c <= 328
4850: 32 33 30 36 36 34 37 20 41 4e 44 20 62 20 3e 20  2306647 AND b > 
4860: 61 20 4f 52 20 27 75 6e 61 6c 69 6b 65 27 20 3c  a OR 'unalike' <
4870: 3d 20 61 20 7d 0a 36 35 20 20 7b 20 53 45 4c 45  = a }.65  { SELE
4880: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4890: 52 45 20 61 20 3e 20 63 20 7d 0a 36 36 20 20 7b  RE a > c }.66  {
48a0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
48b0: 33 20 57 48 45 52 45 20 63 20 3d 20 27 69 74 27  3 WHERE c = 'it'
48c0: 20 4f 52 20 62 20 3e 3d 20 62 20 7d 0a 36 37 20   OR b >= b }.67 
48d0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
48e0: 20 74 33 20 57 48 45 52 45 20 63 20 3d 20 61 20   t3 WHERE c = a 
48f0: 4f 52 20 62 20 3c 20 63 20 7d 0a 36 38 20 20 7b  OR b < c }.68  {
4900: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4910: 33 20 57 48 45 52 45 20 62 20 3e 20 61 20 7d 0a  3 WHERE b > a }.
4920: 36 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  69  { SELECT * F
4930: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20 3c  ROM t3 WHERE a <
4940: 20 62 20 4f 52 20 61 20 3e 20 34 35 34 33 2e 32   b OR a > 4543.2
4950: 36 36 34 38 32 20 4f 52 20 27 73 61 6d 65 27 20  66482 OR 'same' 
4960: 3d 20 62 20 7d 0a 37 30 20 20 7b 20 53 45 4c 45  = b }.70  { SELE
4970: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4980: 52 45 20 63 20 3c 20 63 20 4f 52 20 62 20 3c 3d  RE c < c OR b <=
4990: 20 63 20 4f 52 20 61 20 3c 3d 20 62 20 7d 0a 37   c OR a <= b }.7
49a0: 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  1  { SELECT * FR
49b0: 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 3e 20  OM t3 WHERE c > 
49c0: 61 20 7d 0a 37 32 20 20 7b 20 53 45 4c 45 43 54  a }.72  { SELECT
49d0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
49e0: 20 63 20 3e 20 62 20 7d 0a 37 33 20 20 7b 20 53   c > b }.73  { S
49f0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4a00: 57 48 45 52 45 20 62 20 3c 3d 20 61 20 7d 0a 37  WHERE b <= a }.7
4a10: 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  4  { SELECT * FR
4a20: 4f 4d 20 74 33 20 57 48 45 52 45 20 33 32 38 32  OM t3 WHERE 3282
4a30: 33 30 36 36 34 37 20 3c 20 62 20 41 4e 44 20 61  306647 < b AND a
4a40: 20 3e 3d 20 27 6f 72 27 20 4f 52 20 61 20 3e 3d   >= 'or' OR a >=
4a50: 20 33 37 38 36 37 38 33 31 36 2e 35 20 7d 0a 37   378678316.5 }.7
4a60: 35 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  5  { SELECT * FR
4a70: 4f 4d 20 74 33 20 57 48 45 52 45 20 35 30 2e 35  OM t3 WHERE 50.5
4a80: 38 32 32 33 31 37 32 20 3c 3d 20 63 20 4f 52 20  8223172 <= c OR 
4a90: 63 20 3d 20 63 20 41 4e 44 20 62 20 3c 20 62 20  c = c AND b < b 
4aa0: 7d 0a 37 36 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.76  { SELECT *
4ab0: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27   FROM t3 WHERE '
4ac0: 61 6e 64 27 20 3c 20 62 20 4f 52 20 62 20 3c 20  and' < b OR b < 
4ad0: 63 20 4f 52 20 63 20 3e 20 31 33 33 39 2e 33 36  c OR c > 1339.36
4ae0: 30 37 32 36 20 7d 0a 37 37 20 20 7b 20 53 45 4c  0726 }.77  { SEL
4af0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4b00: 45 52 45 20 62 20 3c 3d 20 63 20 7d 0a 37 38 20  ERE b <= c }.78 
4b10: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4b20: 20 74 33 20 57 48 45 52 45 20 27 69 6e 27 20 3c   t3 WHERE 'in' <
4b30: 3d 20 63 20 7d 0a 37 39 20 20 7b 20 53 45 4c 45  = c }.79  { SELE
4b40: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4b50: 52 45 20 63 20 3c 3d 20 62 20 41 4e 44 20 61 20  RE c <= b AND a 
4b60: 3e 20 61 20 41 4e 44 20 63 20 3c 20 62 20 7d 0a  > a AND c < b }.
4b70: 38 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  80  { SELECT * F
4b80: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27 6f 76  ROM t3 WHERE 'ov
4b90: 65 72 27 20 3c 20 62 20 7d 0a 38 31 20 20 7b 20  er' < b }.81  { 
4ba0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4bb0: 20 57 48 45 52 45 20 62 20 3e 3d 20 62 20 4f 52   WHERE b >= b OR
4bc0: 20 62 20 3c 20 63 20 4f 52 20 61 20 3c 20 62 20   b < c OR a < b 
4bd0: 7d 0a 38 32 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.82  { SELECT *
4be0: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27   FROM t3 WHERE '
4bf0: 74 6f 77 65 72 69 6e 67 27 20 3c 3d 20 62 20 4f  towering' <= b O
4c00: 52 20 27 74 6f 77 65 72 69 6e 67 27 20 3d 20 61  R 'towering' = a
4c10: 20 41 4e 44 20 63 20 3e 20 62 20 7d 0a 38 33 20   AND c > b }.83 
4c20: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4c30: 20 74 33 20 57 48 45 52 45 20 27 70 65 61 6b 27   t3 WHERE 'peak'
4c40: 20 3d 20 61 20 4f 52 20 62 20 42 45 54 57 45 45   = a OR b BETWEE
4c50: 4e 20 32 36 34 33 33 38 33 32 37 39 20 41 4e 44  N 2643383279 AND
4c60: 20 27 74 68 65 27 20 7d 0a 38 34 20 20 7b 20 53   'the' }.84  { S
4c70: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4c80: 57 48 45 52 45 20 27 61 6e 27 20 3c 20 63 20 41  WHERE 'an' < c A
4c90: 4e 44 20 63 20 3e 20 27 74 68 65 27 20 41 4e 44  ND c > 'the' AND
4ca0: 20 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 38 35 20   c IS NULL }.85 
4cb0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4cc0: 20 74 33 20 57 48 45 52 45 20 61 20 3c 3d 20 27   t3 WHERE a <= '
4cd0: 73 6f 6d 65 74 69 6d 65 73 27 20 41 4e 44 20 61  sometimes' AND a
4ce0: 20 42 45 54 57 45 45 4e 20 27 75 6e 61 6c 69 6b   BETWEEN 'unalik
4cf0: 65 27 20 41 4e 44 20 31 33 33 39 2e 33 36 30 37  e' AND 1339.3607
4d00: 32 36 20 7d 0a 38 36 20 20 7b 20 53 45 4c 45 43  26 }.86  { SELEC
4d10: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
4d20: 45 20 31 33 33 39 2e 33 36 30 37 32 36 20 3c 20  E 1339.360726 < 
4d30: 63 20 41 4e 44 20 63 20 49 53 20 4e 55 4c 4c 20  c AND c IS NULL 
4d40: 7d 0a 38 37 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.87  { SELECT *
4d50: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62   FROM t3 WHERE b
4d60: 20 3e 20 27 74 68 65 27 20 7d 0a 38 38 20 20 7b   > 'the' }.88  {
4d70: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4d80: 33 20 57 48 45 52 45 20 27 61 6e 64 27 20 3d 20  3 WHERE 'and' = 
4d90: 61 20 7d 0a 38 39 20 20 7b 20 53 45 4c 45 43 54  a }.89  { SELECT
4da0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
4db0: 20 62 20 3e 3d 20 62 20 7d 0a 39 30 20 20 7b 20   b >= b }.90  { 
4dc0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4dd0: 20 57 48 45 52 45 20 62 20 3e 3d 20 38 39 37 39   WHERE b >= 8979
4de0: 33 32 33 38 34 36 20 7d 0a 39 31 20 20 7b 20 53  323846 }.91  { S
4df0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4e00: 57 48 45 52 45 20 63 20 3c 3d 20 61 20 7d 0a 39  WHERE c <= a }.9
4e10: 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  2  { SELECT * FR
4e20: 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20 42 45  OM t3 WHERE a BE
4e30: 54 57 45 45 4e 20 27 68 61 76 65 27 20 41 4e 44  TWEEN 'have' AND
4e40: 20 27 6c 69 67 68 74 27 20 4f 52 20 61 20 3e 20   'light' OR a > 
4e50: 62 20 4f 52 20 61 20 3e 3d 20 33 37 38 36 37 38  b OR a >= 378678
4e60: 33 31 36 2e 35 20 7d 0a 39 33 20 20 7b 20 53 45  316.5 }.93  { SE
4e70: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4e80: 48 45 52 45 20 63 20 3e 20 33 32 38 32 33 30 36  HERE c > 3282306
4e90: 36 34 37 20 7d 0a 39 34 20 20 7b 20 53 45 4c 45  647 }.94  { SELE
4ea0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4eb0: 52 45 20 62 20 3e 20 63 20 7d 0a 39 35 20 20 7b  RE b > c }.95  {
4ec0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4ed0: 33 20 57 48 45 52 45 20 62 20 3e 3d 20 61 20 41  3 WHERE b >= a A
4ee0: 4e 44 20 27 76 69 6c 6c 61 67 65 73 27 20 3e 20  ND 'villages' > 
4ef0: 61 20 41 4e 44 20 62 20 3e 3d 20 63 20 7d 0a 39  a AND b >= c }.9
4f00: 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  6  { SELECT * FR
4f10: 4f 4d 20 74 33 20 57 48 45 52 45 20 27 61 6e 67  OM t3 WHERE 'ang
4f20: 6c 65 27 20 3e 20 61 20 7d 0a 39 37 20 20 7b 20  le' > a }.97  { 
4f30: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4f40: 20 57 48 45 52 45 20 27 70 61 69 6e 74 69 6e 67   WHERE 'painting
4f50: 73 27 20 3e 3d 20 61 20 7d 0a 39 38 20 20 7b 20  s' >= a }.98  { 
4f60: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4f70: 20 57 48 45 52 45 20 27 6f 72 27 20 3e 3d 20 63   WHERE 'or' >= c
4f80: 20 7d 0a 39 39 20 20 7b 20 53 45 4c 45 43 54 20   }.99  { SELECT 
4f90: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4fa0: 63 20 3c 20 62 20 7d 0a 0a 0a 31 30 31 20 20 7b  c < b }...101  {
4fb0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4fc0: 33 2c 20 74 34 20 57 48 45 52 45 20 66 20 3c 20  3, t4 WHERE f < 
4fd0: 27 73 6f 6d 65 74 69 6d 65 73 27 20 4f 52 20 27  'sometimes' OR '
4fe0: 6f 76 65 72 27 20 3c 3d 20 67 20 41 4e 44 20 68  over' <= g AND h
4ff0: 20 3c 20 31 34 31 35 39 32 36 35 33 35 20 7d 0a   < 1415926535 }.
5000: 31 30 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  102  { SELECT * 
5010: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5020: 45 20 68 20 3e 3d 20 27 66 72 6f 6d 27 20 41 4e  E h >= 'from' AN
5030: 44 20 68 20 3c 20 36 39 33 39 39 33 37 35 31 30  D h < 6939937510
5040: 20 4f 52 20 67 20 3e 20 68 20 7d 0a 31 30 33 20   OR g > h }.103 
5050: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5060: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 63 20   t3, t4 WHERE c 
5070: 3c 3d 20 68 20 41 4e 44 20 67 20 3d 20 68 20 41  <= h AND g = h A
5080: 4e 44 20 63 20 3e 3d 20 27 61 6c 6c 27 20 7d 0a  ND c >= 'all' }.
5090: 31 30 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  104  { SELECT * 
50a0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
50b0: 45 20 63 20 3d 20 61 20 7d 0a 31 30 35 20 20 7b  E c = a }.105  {
50c0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
50d0: 33 2c 20 74 34 20 57 48 45 52 45 20 27 6f 66 27  3, t4 WHERE 'of'
50e0: 20 3e 3d 20 68 20 7d 0a 31 30 36 20 20 7b 20 53   >= h }.106  { S
50f0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5100: 20 74 34 20 57 48 45 52 45 20 66 20 3e 3d 20 62   t4 WHERE f >= b
5110: 20 41 4e 44 20 61 20 3c 20 67 20 41 4e 44 20 68   AND a < g AND h
5120: 20 3c 20 27 61 6e 64 27 20 7d 0a 31 30 37 20 20   < 'and' }.107  
5130: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
5140: 74 33 2c 20 74 34 20 57 48 45 52 45 20 66 20 3c  t3, t4 WHERE f <
5150: 3d 20 38 36 32 38 30 33 34 38 32 35 20 41 4e 44  = 8628034825 AND
5160: 20 30 39 33 38 34 34 36 30 39 35 20 3e 3d 20 62   0938446095 >= b
5170: 20 7d 0a 31 30 38 20 20 7b 20 53 45 4c 45 43 54   }.108  { SELECT
5180: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
5190: 48 45 52 45 20 61 20 3c 20 27 74 68 65 27 20 7d  HERE a < 'the' }
51a0: 0a 31 30 39 20 20 7b 20 53 45 4c 45 43 54 20 2a  .109  { SELECT *
51b0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
51c0: 52 45 20 66 20 3d 20 27 73 6f 6d 65 74 69 6d 65  RE f = 'sometime
51d0: 73 27 20 4f 52 20 62 20 3c 20 27 6f 66 27 20 7d  s' OR b < 'of' }
51e0: 0a 31 31 30 20 20 7b 20 53 45 4c 45 43 54 20 2a  .110  { SELECT *
51f0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5200: 52 45 20 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 31  RE c IS NULL }.1
5210: 31 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  11  { SELECT * F
5220: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5230: 20 27 68 61 76 65 27 20 3d 20 62 20 4f 52 20 67   'have' = b OR g
5240: 20 3c 3d 20 33 34 36 2e 30 33 34 38 36 31 30 20   <= 346.0348610 
5250: 7d 0a 31 31 32 20 20 7b 20 53 45 4c 45 43 54 20  }.112  { SELECT 
5260: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5270: 45 52 45 20 66 20 3e 20 62 20 41 4e 44 20 62 20  ERE f > b AND b 
5280: 3c 3d 20 68 20 7d 0a 31 31 33 20 20 7b 20 53 45  <= h }.113  { SE
5290: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
52a0: 74 34 20 57 48 45 52 45 20 66 20 3e 20 63 20 4f  t4 WHERE f > c O
52b0: 52 20 27 74 68 65 27 20 3d 20 61 20 4f 52 20 35  R 'the' = a OR 5
52c0: 30 2e 35 38 32 32 33 31 37 32 20 3d 20 61 20 7d  0.58223172 = a }
52d0: 0a 31 31 34 20 20 7b 20 53 45 4c 45 43 54 20 2a  .114  { SELECT *
52e0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
52f0: 52 45 20 32 36 34 33 33 38 33 32 37 39 20 3c 3d  RE 2643383279 <=
5300: 20 61 20 41 4e 44 20 63 20 3d 20 61 20 7d 0a 31   a AND c = a }.1
5310: 31 35 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  15  { SELECT * F
5320: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5330: 20 68 20 3e 3d 20 62 20 41 4e 44 20 27 69 74 27   h >= b AND 'it'
5340: 20 3c 3d 20 62 20 7d 0a 31 31 36 20 20 7b 20 53   <= b }.116  { S
5350: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5360: 20 74 34 20 57 48 45 52 45 20 67 20 42 45 54 57   t4 WHERE g BETW
5370: 45 45 4e 20 27 66 72 6f 6d 27 20 41 4e 44 20 27  EEN 'from' AND '
5380: 70 65 61 6b 27 20 7d 0a 31 31 37 20 20 7b 20 53  peak' }.117  { S
5390: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
53a0: 20 74 34 20 57 48 45 52 45 20 27 74 68 65 69 72   t4 WHERE 'their
53b0: 27 20 3e 20 61 20 41 4e 44 20 67 20 3e 20 62 20  ' > a AND g > b 
53c0: 41 4e 44 20 66 20 3c 3d 20 63 20 7d 0a 31 31 38  AND f <= c }.118
53d0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
53e0: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 68  M t3, t4 WHERE h
53f0: 20 3d 20 35 30 32 38 38 34 31 39 37 31 20 41 4e   = 5028841971 AN
5400: 44 20 27 75 6e 61 6c 69 6b 65 27 20 3c 3d 20 66  D 'unalike' <= f
5410: 20 7d 0a 31 31 39 20 20 7b 20 53 45 4c 45 43 54   }.119  { SELECT
5420: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
5430: 48 45 52 45 20 63 20 49 53 20 4e 55 4c 4c 20 41  HERE c IS NULL A
5440: 4e 44 20 61 20 3d 20 33 32 38 32 33 30 36 36 34  ND a = 328230664
5450: 37 20 4f 52 20 61 20 3c 3d 20 27 41 6c 70 69 6e  7 OR a <= 'Alpin
5460: 65 27 20 7d 0a 31 32 30 20 20 7b 20 53 45 4c 45  e' }.120  { SELE
5470: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5480: 20 57 48 45 52 45 20 27 73 6f 6d 65 74 69 6d 65   WHERE 'sometime
5490: 73 27 20 3c 3d 20 66 20 4f 52 20 38 32 31 34 38  s' <= f OR 82148
54a0: 30 38 36 35 31 20 3e 3d 20 61 20 41 4e 44 20 62  08651 >= a AND b
54b0: 20 3c 3d 20 35 33 35 39 34 2e 30 38 31 32 38 20   <= 53594.08128 
54c0: 7d 0a 31 32 31 20 20 7b 20 53 45 4c 45 43 54 20  }.121  { SELECT 
54d0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
54e0: 45 52 45 20 36 39 33 39 39 33 37 35 31 30 20 3c  ERE 6939937510 <
54f0: 3d 20 66 20 4f 52 20 63 20 3c 20 66 20 4f 52 20  = f OR c < f OR 
5500: 27 73 6f 6d 65 74 69 6d 65 73 27 20 3d 20 63 20  'sometimes' = c 
5510: 7d 0a 31 32 32 20 20 7b 20 53 45 4c 45 43 54 20  }.122  { SELECT 
5520: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5530: 45 52 45 20 62 20 3c 20 27 6f 6e 6c 6f 6f 6b 65  ERE b < 'onlooke
5540: 72 73 27 20 41 4e 44 20 27 70 61 69 6e 74 69 6e  rs' AND 'paintin
5550: 67 73 27 20 3d 20 67 20 41 4e 44 20 63 20 3c 3d  gs' = g AND c <=
5560: 20 68 20 7d 0a 31 32 33 20 20 7b 20 53 45 4c 45   h }.123  { SELE
5570: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5580: 20 57 48 45 52 45 20 61 20 42 45 54 57 45 45 4e   WHERE a BETWEEN
5590: 20 27 61 6c 6c 27 20 41 4e 44 20 27 66 72 6f 6d   'all' AND 'from
55a0: 27 20 4f 52 20 63 20 3e 20 33 34 36 2e 30 33 34  ' OR c > 346.034
55b0: 38 36 31 30 20 7d 0a 31 32 34 20 20 7b 20 53 45  8610 }.124  { SE
55c0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
55d0: 74 34 20 57 48 45 52 45 20 27 66 72 6f 6d 27 20  t4 WHERE 'from' 
55e0: 3c 3d 20 62 20 4f 52 20 61 20 42 45 54 57 45 45  <= b OR a BETWEE
55f0: 4e 20 35 33 35 39 34 2e 30 38 31 32 38 20 41 4e  N 53594.08128 AN
5600: 44 20 27 74 68 65 69 72 27 20 41 4e 44 20 63 20  D 'their' AND c 
5610: 3e 20 61 20 7d 0a 31 32 35 20 20 7b 20 53 45 4c  > a }.125  { SEL
5620: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
5630: 34 20 57 48 45 52 45 20 68 20 3d 20 32 36 34 33  4 WHERE h = 2643
5640: 33 38 33 32 37 39 20 7d 0a 31 32 36 20 20 7b 20  383279 }.126  { 
5650: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5660: 2c 20 74 34 20 57 48 45 52 45 20 61 20 3c 3d 20  , t4 WHERE a <= 
5670: 27 74 68 65 27 20 7d 0a 31 32 37 20 20 7b 20 53  'the' }.127  { S
5680: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5690: 20 74 34 20 57 48 45 52 45 20 68 20 3c 3d 20 63   t4 WHERE h <= c
56a0: 20 7d 0a 31 32 38 20 20 7b 20 53 45 4c 45 43 54   }.128  { SELECT
56b0: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
56c0: 48 45 52 45 20 67 20 3c 3d 20 33 34 36 2e 30 33  HERE g <= 346.03
56d0: 34 38 36 31 30 20 41 4e 44 20 36 36 2e 35 39 33  48610 AND 66.593
56e0: 33 34 34 36 31 20 3e 3d 20 66 20 41 4e 44 20 66  34461 >= f AND f
56f0: 20 3c 3d 20 66 20 7d 0a 31 32 39 20 20 7b 20 53   <= f }.129  { S
5700: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5710: 20 74 34 20 57 48 45 52 45 20 67 20 3e 3d 20 63   t4 WHERE g >= c
5720: 20 4f 52 20 27 69 6e 27 20 3c 20 62 20 4f 52 20   OR 'in' < b OR 
5730: 62 20 3e 20 67 20 7d 0a 31 33 30 20 20 7b 20 53  b > g }.130  { S
5740: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5750: 20 74 34 20 57 48 45 52 45 20 27 6f 76 65 72 27   t4 WHERE 'over'
5760: 20 3e 20 67 20 41 4e 44 20 62 20 42 45 54 57 45   > g AND b BETWE
5770: 45 4e 20 27 75 6e 61 6c 69 6b 65 27 20 41 4e 44  EN 'unalike' AND
5780: 20 27 72 65 6d 61 72 6b 61 62 6c 79 27 20 7d 0a   'remarkably' }.
5790: 31 33 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  131  { SELECT * 
57a0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
57b0: 45 20 68 20 3c 3d 20 32 38 34 37 35 36 34 2e 38  E h <= 2847564.8
57c0: 32 33 20 7d 0a 31 33 32 20 20 7b 20 53 45 4c 45  23 }.132  { SELE
57d0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
57e0: 20 57 48 45 52 45 20 68 20 3c 3d 20 27 72 65 6d   WHERE h <= 'rem
57f0: 61 72 6b 61 62 6c 79 27 20 41 4e 44 20 34 35 34  arkably' AND 454
5800: 33 2e 32 36 36 34 38 32 20 3e 20 68 20 7d 0a 31  3.266482 > h }.1
5810: 33 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  33  { SELECT * F
5820: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5830: 20 61 20 3e 3d 20 63 20 41 4e 44 20 27 69 74 27   a >= c AND 'it'
5840: 20 3e 20 67 20 41 4e 44 20 63 20 3c 20 63 20 7d   > g AND c < c }
5850: 0a 31 33 34 20 20 7b 20 53 45 4c 45 43 54 20 2a  .134  { SELECT *
5860: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5870: 52 45 20 68 20 3c 3d 20 36 36 2e 35 39 33 33 34  RE h <= 66.59334
5880: 34 36 31 20 41 4e 44 20 62 20 3e 20 33 34 32 31  461 AND b > 3421
5890: 31 37 30 36 37 39 20 7d 0a 31 33 35 20 20 7b 20  170679 }.135  { 
58a0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
58b0: 2c 20 74 34 20 57 48 45 52 45 20 68 20 3c 20 27  , t4 WHERE h < '
58c0: 61 72 65 27 20 4f 52 20 66 20 42 45 54 57 45 45  are' OR f BETWEE
58d0: 4e 20 30 39 33 38 34 34 36 30 39 35 20 41 4e 44  N 0938446095 AND
58e0: 20 27 61 72 65 27 20 4f 52 20 62 20 3d 20 62 20   'are' OR b = b 
58f0: 7d 0a 31 33 36 20 20 7b 20 53 45 4c 45 43 54 20  }.136  { SELECT 
5900: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5910: 45 52 45 20 68 20 3d 20 61 20 4f 52 20 36 36 2e  ERE h = a OR 66.
5920: 35 39 33 33 34 34 36 31 20 3c 3d 20 66 20 7d 0a  59334461 <= f }.
5930: 31 33 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  137  { SELECT * 
5940: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5950: 45 20 66 20 3e 20 27 6f 66 27 20 4f 52 20 68 20  E f > 'of' OR h 
5960: 3c 3d 20 68 20 4f 52 20 61 20 3d 20 66 20 7d 0a  <= h OR a = f }.
5970: 31 33 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  138  { SELECT * 
5980: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5990: 45 20 27 6f 74 68 65 72 27 20 3e 3d 20 67 20 7d  E 'other' >= g }
59a0: 0a 31 33 39 20 20 7b 20 53 45 4c 45 43 54 20 2a  .139  { SELECT *
59b0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
59c0: 52 45 20 62 20 3c 3d 20 33 34 32 31 31 37 30 36  RE b <= 34211706
59d0: 37 39 20 7d 0a 31 34 30 20 20 7b 20 53 45 4c 45  79 }.140  { SELE
59e0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
59f0: 20 57 48 45 52 45 20 27 61 6c 6c 27 20 3d 20 66   WHERE 'all' = f
5a00: 20 41 4e 44 20 34 35 34 33 2e 32 36 36 34 38 32   AND 4543.266482
5a10: 20 3d 20 62 20 4f 52 20 66 20 42 45 54 57 45 45   = b OR f BETWEE
5a20: 4e 20 27 61 6e 64 27 20 41 4e 44 20 27 61 6e 67  N 'and' AND 'ang
5a30: 6c 65 27 20 7d 0a 31 34 31 20 20 7b 20 53 45 4c  le' }.141  { SEL
5a40: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
5a50: 34 20 57 48 45 52 45 20 27 6c 69 67 68 74 27 20  4 WHERE 'light' 
5a60: 3d 20 66 20 4f 52 20 68 20 42 45 54 57 45 45 4e  = f OR h BETWEEN
5a70: 20 27 72 65 6d 61 72 6b 61 62 6c 79 27 20 41 4e   'remarkably' AN
5a80: 44 20 31 34 31 35 39 32 36 35 33 35 20 7d 0a 31  D 1415926535 }.1
5a90: 34 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  42  { SELECT * F
5aa0: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5ab0: 20 27 68 69 6c 6c 73 27 20 3d 20 66 20 4f 52 20   'hills' = f OR 
5ac0: 27 74 68 65 27 20 3e 3d 20 66 20 7d 0a 31 34 33  'the' >= f }.143
5ad0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
5ae0: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61  M t3, t4 WHERE a
5af0: 20 3e 20 33 34 36 2e 30 33 34 38 36 31 30 20 7d   > 346.0348610 }
5b00: 0a 31 34 34 20 20 7b 20 53 45 4c 45 43 54 20 2a  .144  { SELECT *
5b10: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5b20: 52 45 20 35 30 32 38 38 34 31 39 37 31 20 3d 20  RE 5028841971 = 
5b30: 68 20 7d 0a 31 34 35 20 20 7b 20 53 45 4c 45 43  h }.145  { SELEC
5b40: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
5b50: 57 48 45 52 45 20 62 20 3e 3d 20 63 20 41 4e 44  WHERE b >= c AND
5b60: 20 27 74 68 65 27 20 3e 3d 20 67 20 4f 52 20 34   'the' >= g OR 4
5b70: 35 2e 36 34 38 35 36 36 39 32 20 3c 3d 20 67 20  5.64856692 <= g 
5b80: 7d 0a 31 34 36 20 20 7b 20 53 45 4c 45 43 54 20  }.146  { SELECT 
5b90: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5ba0: 45 52 45 20 63 20 3c 20 35 30 32 38 38 34 31 39  ERE c < 50288419
5bb0: 37 31 20 7d 0a 31 34 37 20 20 7b 20 53 45 4c 45  71 }.147  { SELE
5bc0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5bd0: 20 57 48 45 52 45 20 61 20 3e 20 61 20 7d 0a 31   WHERE a > a }.1
5be0: 34 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  48  { SELECT * F
5bf0: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5c00: 20 63 20 3d 20 27 73 6e 61 70 73 68 6f 74 73 27   c = 'snapshots'
5c10: 20 7d 0a 31 34 39 20 20 7b 20 53 45 4c 45 43 54   }.149  { SELECT
5c20: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
5c30: 48 45 52 45 20 68 20 3e 20 31 33 33 39 2e 33 36  HERE h > 1339.36
5c40: 30 37 32 36 20 41 4e 44 20 27 61 6e 64 27 20 3e  0726 AND 'and' >
5c50: 20 63 20 7d 0a 31 35 30 20 20 7b 20 53 45 4c 45   c }.150  { SELE
5c60: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5c70: 20 57 48 45 52 45 20 27 61 6e 64 27 20 3e 20 67   WHERE 'and' > g
5c80: 20 4f 52 20 27 73 6f 6d 65 74 69 6d 65 73 27 20   OR 'sometimes' 
5c90: 3d 20 63 20 7d 0a 31 35 31 20 20 7b 20 53 45 4c  = c }.151  { SEL
5ca0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
5cb0: 34 20 57 48 45 52 45 20 67 20 3e 3d 20 27 74 68  4 WHERE g >= 'th
5cc0: 65 27 20 41 4e 44 20 62 20 3e 3d 20 27 6f 6e 6c  e' AND b >= 'onl
5cd0: 6f 6f 6b 65 72 73 27 20 7d 0a 31 35 32 20 20 7b  ookers' }.152  {
5ce0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5cf0: 33 2c 20 74 34 20 57 48 45 52 45 20 68 20 42 45  3, t4 WHERE h BE
5d00: 54 57 45 45 4e 20 27 6f 74 68 65 72 27 20 41 4e  TWEEN 'other' AN
5d10: 44 20 32 36 34 33 33 38 33 32 37 39 20 7d 0a 31  D 2643383279 }.1
5d20: 35 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  53  { SELECT * F
5d30: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5d40: 20 27 69 74 27 20 3d 20 62 20 7d 0a 31 35 34 20   'it' = b }.154 
5d50: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5d60: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 66 20   t3, t4 WHERE f 
5d70: 3d 20 63 20 4f 52 20 63 20 42 45 54 57 45 45 4e  = c OR c BETWEEN
5d80: 20 27 61 6e 64 27 20 41 4e 44 20 30 2e 34 38 31   'and' AND 0.481
5d90: 31 31 37 34 35 30 32 20 7d 0a 31 35 35 20 20 7b  1174502 }.155  {
5da0: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5db0: 33 2c 20 74 34 20 57 48 45 52 45 20 62 20 3c 3d  3, t4 WHERE b <=
5dc0: 20 27 73 6f 6d 65 74 69 6d 65 73 27 20 4f 52 20   'sometimes' OR 
5dd0: 63 20 3c 3d 20 30 39 33 38 34 34 36 30 39 35 20  c <= 0938446095 
5de0: 7d 0a 31 35 36 20 20 7b 20 53 45 4c 45 43 54 20  }.156  { SELECT 
5df0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5e00: 45 52 45 20 27 61 6e 64 27 20 3c 3d 20 62 20 7d  ERE 'and' <= b }
5e10: 0a 31 35 37 20 20 7b 20 53 45 4c 45 43 54 20 2a  .157  { SELECT *
5e20: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5e30: 52 45 20 67 20 3e 20 61 20 41 4e 44 20 66 20 3d  RE g > a AND f =
5e40: 20 27 74 68 65 27 20 41 4e 44 20 62 20 3c 20 61   'the' AND b < a
5e50: 20 7d 0a 31 35 38 20 20 7b 20 53 45 4c 45 43 54   }.158  { SELECT
5e60: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
5e70: 48 45 52 45 20 61 20 3c 20 27 61 6e 27 20 7d 0a  HERE a < 'an' }.
5e80: 31 35 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  159  { SELECT * 
5e90: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5ea0: 45 20 61 20 42 45 54 57 45 45 4e 20 27 68 69 73  E a BETWEEN 'his
5eb0: 27 20 41 4e 44 20 27 73 61 6d 65 27 20 4f 52 20  ' AND 'same' OR 
5ec0: 38 36 32 38 30 33 34 38 32 35 20 3e 20 66 20 7d  8628034825 > f }
5ed0: 0a 31 36 30 20 20 7b 20 53 45 4c 45 43 54 20 2a  .160  { SELECT *
5ee0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5ef0: 52 45 20 62 20 3d 20 27 70 65 61 6b 27 20 7d 0a  RE b = 'peak' }.
5f00: 31 36 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  161  { SELECT * 
5f10: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5f20: 45 20 66 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20  E f IS NULL AND 
5f30: 61 20 3e 3d 20 68 20 7d 0a 31 36 32 20 20 7b 20  a >= h }.162  { 
5f40: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5f50: 2c 20 74 34 20 57 48 45 52 45 20 61 20 49 53 20  , t4 WHERE a IS 
5f60: 4e 55 4c 4c 20 4f 52 20 32 36 34 33 33 38 33 32  NULL OR 26433832
5f70: 37 39 20 3d 20 63 20 7d 0a 31 36 33 20 20 7b 20  79 = c }.163  { 
5f80: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5f90: 2c 20 74 34 20 57 48 45 52 45 20 62 20 3e 3d 20  , t4 WHERE b >= 
5fa0: 35 30 32 38 38 34 31 39 37 31 20 41 4e 44 20 66  5028841971 AND f
5fb0: 20 3c 20 63 20 41 4e 44 20 61 20 49 53 20 4e 55   < c AND a IS NU
5fc0: 4c 4c 20 7d 0a 31 36 34 20 20 7b 20 53 45 4c 45  LL }.164  { SELE
5fd0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5fe0: 20 57 48 45 52 45 20 61 20 3e 3d 20 67 20 7d 0a   WHERE a >= g }.
5ff0: 31 36 35 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  165  { SELECT * 
6000: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
6010: 45 20 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 36  E c IS NULL }.16
6020: 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  6  { SELECT * FR
6030: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6040: 68 20 3e 3d 20 68 20 7d 0a 31 36 37 20 20 7b 20  h >= h }.167  { 
6050: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6060: 2c 20 74 34 20 57 48 45 52 45 20 27 6f 76 65 72  , t4 WHERE 'over
6070: 27 20 3c 3d 20 68 20 7d 0a 31 36 38 20 20 7b 20  ' <= h }.168  { 
6080: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6090: 2c 20 74 34 20 57 48 45 52 45 20 62 20 3c 20 34  , t4 WHERE b < 4
60a0: 35 34 33 2e 32 36 36 34 38 32 20 4f 52 20 62 20  543.266482 OR b 
60b0: 3d 20 32 36 34 33 33 38 33 32 37 39 20 4f 52 20  = 2643383279 OR 
60c0: 38 36 32 38 30 33 34 38 32 35 20 3c 20 62 20 7d  8628034825 < b }
60d0: 0a 31 36 39 20 20 7b 20 53 45 4c 45 43 54 20 2a  .169  { SELECT *
60e0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
60f0: 52 45 20 67 20 3e 3d 20 36 39 33 39 39 33 37 35  RE g >= 69399375
6100: 31 30 20 7d 0a 31 37 30 20 20 7b 20 53 45 4c 45  10 }.170  { SELE
6110: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
6120: 20 57 48 45 52 45 20 27 6f 72 27 20 3c 20 61 20   WHERE 'or' < a 
6130: 4f 52 20 62 20 3c 20 67 20 7d 0a 31 37 31 20 20  OR b < g }.171  
6140: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6150: 74 33 2c 20 74 34 20 57 48 45 52 45 20 68 20 3c  t3, t4 WHERE h <
6160: 20 27 68 69 6c 6c 73 27 20 4f 52 20 27 61 6e 64   'hills' OR 'and
6170: 27 20 3e 20 67 20 7d 0a 31 37 32 20 20 7b 20 53  ' > g }.172  { S
6180: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
6190: 20 74 34 20 57 48 45 52 45 20 27 66 72 6f 6d 27   t4 WHERE 'from'
61a0: 20 3e 20 66 20 4f 52 20 66 20 3c 3d 20 66 20 7d   > f OR f <= f }
61b0: 0a 31 37 33 20 20 7b 20 53 45 4c 45 43 54 20 2a  .173  { SELECT *
61c0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
61d0: 52 45 20 27 76 69 65 77 65 64 27 20 3e 20 62 20  RE 'viewed' > b 
61e0: 41 4e 44 20 66 20 3c 20 63 20 7d 0a 31 37 34 20  AND f < c }.174 
61f0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
6200: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 27 6f   t3, t4 WHERE 'o
6210: 66 27 20 3c 3d 20 61 20 7d 0a 31 37 35 20 20 7b  f' <= a }.175  {
6220: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6230: 33 2c 20 74 34 20 57 48 45 52 45 20 66 20 3e 20  3, t4 WHERE f > 
6240: 30 39 33 38 34 34 36 30 39 35 20 7d 0a 31 37 36  0938446095 }.176
6250: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
6260: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61  M t3, t4 WHERE a
6270: 20 3d 20 67 20 7d 0a 31 37 37 20 20 7b 20 53 45   = g }.177  { SE
6280: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
6290: 74 34 20 57 48 45 52 45 20 67 20 3e 3d 20 62 20  t4 WHERE g >= b 
62a0: 41 4e 44 20 66 20 42 45 54 57 45 45 4e 20 27 70  AND f BETWEEN 'p
62b0: 65 61 6b 27 20 41 4e 44 20 27 61 6e 64 27 20 7d  eak' AND 'and' }
62c0: 0a 31 37 38 20 20 7b 20 53 45 4c 45 43 54 20 2a  .178  { SELECT *
62d0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
62e0: 52 45 20 67 20 3d 20 61 20 41 4e 44 20 27 69 74  RE g = a AND 'it
62f0: 27 20 3e 20 66 20 7d 0a 31 37 39 20 20 7b 20 53  ' > f }.179  { S
6300: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
6310: 20 74 34 20 57 48 45 52 45 20 61 20 3c 3d 20 62   t4 WHERE a <= b
6320: 20 4f 52 20 27 66 72 6f 6d 27 20 3e 20 66 20 7d   OR 'from' > f }
6330: 0a 31 38 30 20 20 7b 20 53 45 4c 45 43 54 20 2a  .180  { SELECT *
6340: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
6350: 52 45 20 66 20 3c 20 27 61 6e 64 27 20 7d 0a 31  RE f < 'and' }.1
6360: 38 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  81  { SELECT * F
6370: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
6380: 20 36 39 33 39 39 33 37 35 31 30 20 3c 20 62 20   6939937510 < b 
6390: 4f 52 20 27 73 6f 6d 65 74 69 6d 65 73 27 20 3c  OR 'sometimes' <
63a0: 20 68 20 7d 0a 31 38 32 20 20 7b 20 53 45 4c 45   h }.182  { SELE
63b0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
63c0: 20 57 48 45 52 45 20 66 20 3e 20 67 20 41 4e 44   WHERE f > g AND
63d0: 20 66 20 3c 20 27 70 65 61 6b 27 20 7d 0a 31 38   f < 'peak' }.18
63e0: 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  3  { SELECT * FR
63f0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6400: 61 20 3c 3d 20 35 33 35 39 34 2e 30 38 31 32 38  a <= 53594.08128
6410: 20 41 4e 44 20 63 20 3c 3d 20 66 20 41 4e 44 20   AND c <= f AND 
6420: 66 20 3e 3d 20 63 20 7d 0a 31 38 34 20 20 7b 20  f >= c }.184  { 
6430: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6440: 2c 20 74 34 20 57 48 45 52 45 20 66 20 3d 20 63  , t4 WHERE f = c
6450: 20 4f 52 20 27 69 74 27 20 3e 20 62 20 4f 52 20   OR 'it' > b OR 
6460: 67 20 42 45 54 57 45 45 4e 20 27 74 68 65 27 20  g BETWEEN 'the' 
6470: 41 4e 44 20 27 61 6c 6c 27 20 7d 0a 31 38 35 20  AND 'all' }.185 
6480: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
6490: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 63 20   t3, t4 WHERE c 
64a0: 3c 3d 20 67 20 4f 52 20 61 20 3d 20 68 20 7d 0a  <= g OR a = h }.
64b0: 31 38 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  186  { SELECT * 
64c0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
64d0: 45 20 27 73 61 6d 65 27 20 3d 20 62 20 4f 52 20  E 'same' = b OR 
64e0: 63 20 3e 3d 20 32 36 34 33 33 38 33 32 37 39 20  c >= 2643383279 
64f0: 7d 0a 31 38 37 20 20 7b 20 53 45 4c 45 43 54 20  }.187  { SELECT 
6500: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
6510: 45 52 45 20 68 20 3c 3d 20 67 20 4f 52 20 63 20  ERE h <= g OR c 
6520: 3e 20 36 36 2e 35 39 33 33 34 34 36 31 20 4f 52  > 66.59334461 OR
6530: 20 61 20 3c 3d 20 66 20 7d 0a 31 38 38 20 20 7b   a <= f }.188  {
6540: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6550: 33 2c 20 74 34 20 57 48 45 52 45 20 62 20 3c 20  3, t4 WHERE b < 
6560: 63 20 41 4e 44 20 66 20 3d 20 27 77 72 69 74 69  c AND f = 'writi
6570: 6e 67 73 27 20 7d 0a 31 38 39 20 20 7b 20 53 45  ngs' }.189  { SE
6580: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
6590: 74 34 20 57 48 45 52 45 20 62 20 3c 20 61 20 7d  t4 WHERE b < a }
65a0: 0a 31 39 30 20 20 7b 20 53 45 4c 45 43 54 20 2a  .190  { SELECT *
65b0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
65c0: 52 45 20 63 20 3e 3d 20 66 20 4f 52 20 63 20 3d  RE c >= f OR c =
65d0: 20 27 61 6e 64 27 20 7d 0a 31 39 31 20 20 7b 20   'and' }.191  { 
65e0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
65f0: 2c 20 74 34 20 57 48 45 52 45 20 66 20 3e 3d 20  , t4 WHERE f >= 
6600: 27 70 65 61 6b 27 20 41 4e 44 20 67 20 3e 20 66  'peak' AND g > f
6610: 20 41 4e 44 20 68 20 3e 20 67 20 7d 0a 31 39 32   AND h > g }.192
6620: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
6630: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61  M t3, t4 WHERE a
6640: 20 3e 3d 20 38 39 37 39 33 32 33 38 34 36 20 41   >= 8979323846 A
6650: 4e 44 20 27 73 61 6d 65 27 20 3e 20 62 20 4f 52  ND 'same' > b OR
6660: 20 63 20 3d 20 27 61 6e 64 27 20 7d 0a 31 39 33   c = 'and' }.193
6670: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
6680: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 63  M t3, t4 WHERE c
6690: 20 3e 3d 20 67 20 4f 52 20 27 77 72 69 74 69 6e   >= g OR 'writin
66a0: 67 73 27 20 3e 3d 20 63 20 41 4e 44 20 62 20 3d  gs' >= c AND b =
66b0: 20 27 61 6c 6c 27 20 7d 0a 31 39 34 20 20 7b 20   'all' }.194  { 
66c0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
66d0: 2c 20 74 34 20 57 48 45 52 45 20 27 72 65 6d 61  , t4 WHERE 'rema
66e0: 72 6b 61 62 6c 79 27 20 3c 20 67 20 7d 0a 31 39  rkably' < g }.19
66f0: 35 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  5  { SELECT * FR
6700: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6710: 61 20 42 45 54 57 45 45 4e 20 27 6f 72 27 20 41  a BETWEEN 'or' A
6720: 4e 44 20 27 70 61 69 6e 74 69 6e 67 73 27 20 41  ND 'paintings' A
6730: 4e 44 20 67 20 3c 3d 20 66 20 7d 0a 31 39 36 20  ND g <= f }.196 
6740: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
6750: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 30 39   t3, t4 WHERE 09
6760: 33 38 34 34 36 30 39 35 20 3e 20 62 20 4f 52 20  38446095 > b OR 
6770: 67 20 3c 3d 20 61 20 4f 52 20 68 20 3e 20 62 20  g <= a OR h > b 
6780: 7d 0a 31 39 37 20 20 7b 20 53 45 4c 45 43 54 20  }.197  { SELECT 
6790: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
67a0: 45 52 45 20 67 20 3d 20 32 36 34 33 33 38 33 32  ERE g = 26433832
67b0: 37 39 20 41 4e 44 20 66 20 3d 20 67 20 7d 0a 31  79 AND f = g }.1
67c0: 39 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  98  { SELECT * F
67d0: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
67e0: 20 67 20 3c 20 38 39 37 39 33 32 33 38 34 36 20   g < 8979323846 
67f0: 7d 0a 31 39 39 20 20 7b 20 53 45 4c 45 43 54 20  }.199  { SELECT 
6800: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
6810: 45 52 45 20 27 61 72 65 27 20 3c 3d 20 62 20 7d  ERE 'are' <= b }
6820: 0a 32 30 30 20 20 7b 20 53 45 4c 45 43 54 20 2a  .200  { SELECT *
6830: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
6840: 52 45 20 28 61 3d 31 34 31 35 39 32 36 35 33 35  RE (a=1415926535
6850: 20 41 4e 44 20 66 3d 38 36 32 38 30 33 34 38 32   AND f=862803482
6860: 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  5).             
6870: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6880: 20 20 4f 52 20 28 61 3d 36 39 33 39 39 33 37 35    OR (a=69399375
6890: 31 30 20 41 4e 44 20 66 3d 32 36 34 33 33 38 33  10 AND f=2643383
68a0: 32 37 39 29 20 7d 0a 32 30 31 20 20 7b 20 53 45  279) }.201  { SE
68b0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
68c0: 74 34 2c 20 74 35 2c 20 74 36 0a 20 20 20 20 20  t4, t5, t6.     
68d0: 20 20 20 57 48 45 52 45 20 28 61 3d 31 34 31 35     WHERE (a=1415
68e0: 39 32 36 35 33 35 20 41 4e 44 20 66 3d 38 36 32  926535 AND f=862
68f0: 38 30 33 34 38 32 35 20 41 4e 44 20 73 21 3d 27  8034825 AND s!='
6900: 68 65 6c 6c 6f 27 20 41 4e 44 20 74 21 3d 35 29  hello' AND t!=5)
6910: 0a 20 20 20 20 20 20 20 20 20 20 20 4f 52 20 28  .           OR (
6920: 61 3d 36 39 33 39 39 33 37 35 31 30 20 41 4e 44  a=6939937510 AND
6930: 20 66 3d 32 36 34 33 33 38 33 32 37 39 20 41 4e   f=2643383279 AN
6940: 44 20 73 3d 27 74 61 62 2d 74 35 27 20 41 4e 44  D s='tab-t5' AND
6950: 20 74 3d 31 32 33 34 35 36 29 20 7d 0a 32 30 32   t=123456) }.202
6960: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
6970: 4d 20 74 33 2c 20 74 34 2c 20 74 35 2c 20 74 36  M t3, t4, t5, t6
6980: 0a 20 20 20 20 20 20 20 20 57 48 45 52 45 20 28  .        WHERE (
6990: 61 3d 31 34 31 35 39 32 36 35 33 35 20 41 4e 44  a=1415926535 AND
69a0: 20 66 3d 38 36 32 38 30 33 34 38 32 35 20 41 4e   f=8628034825 AN
69b0: 44 20 73 21 3d 27 68 65 6c 6c 6f 27 20 41 4e 44  D s!='hello' AND
69c0: 20 74 3d 3d 35 29 0a 20 20 20 20 20 20 20 20 20   t==5).         
69d0: 20 20 4f 52 20 28 61 3d 36 39 33 39 39 33 37 35    OR (a=69399375
69e0: 31 30 20 41 4e 44 20 66 3d 32 36 34 33 33 38 33  10 AND f=2643383
69f0: 32 37 39 20 41 4e 44 20 73 3d 27 74 61 62 2d 74  279 AND s='tab-t
6a00: 35 27 20 41 4e 44 20 74 21 3d 31 32 33 34 35 36  5' AND t!=123456
6a10: 29 20 7d 0a 0a 20 20 7d 20 7b 0a 20 20 20 20 64  ) }..  } {.    d
6a20: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 34 2e  o_test where8-4.
6a30: 24 41 2e 24 42 2e 31 20 7b 0a 20 20 20 20 20 20  $A.$B.1 {.      
6a40: 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69  unset -nocomplai
6a50: 6e 20 52 0a 20 20 20 20 20 20 73 65 74 20 52 20  n R.      set R 
6a60: 5b 65 78 65 63 73 71 6c 20 24 73 71 6c 5d 0a 20  [execsql $sql]. 
6a70: 20 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20       if {![info 
6a80: 65 78 69 73 74 73 20 72 65 73 75 6c 74 73 28 24  exists results($
6a90: 42 29 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 73  B)]} {.        s
6aa0: 65 74 20 72 65 73 75 6c 74 73 28 24 42 29 20 24  et results($B) $
6ab0: 52 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20  R.      }.      
6ac0: 6c 69 73 74 0a 20 20 20 20 7d 20 7b 7d 0a 0a 20  list.    } {}.. 
6ad0: 20 20 20 64 6f 5f 74 65 73 74 20 77 68 65 72 65     do_test where
6ae0: 38 2d 34 2e 24 41 2e 24 42 2e 32 20 7b 20 6c 73  8-4.$A.$B.2 { ls
6af0: 6f 72 74 20 24 52 20 7d 20 5b 6c 73 6f 72 74 20  ort $R } [lsort 
6b00: 24 72 65 73 75 6c 74 73 28 24 42 29 5d 0a 20 20  $results($B)].  
6b10: 7d 0a 20 20 69 6e 63 72 20 41 0a 7d 0a 63 61 74  }.  incr A.}.cat
6b20: 63 68 20 7b 75 6e 73 65 74 20 72 65 73 75 6c 74  ch {unset result
6b30: 73 7d 0a 63 61 74 63 68 20 7b 75 6e 73 65 74 20  s}.catch {unset 
6b40: 41 7d 0a 63 61 74 63 68 20 7b 75 6e 73 65 74 20  A}.catch {unset 
6b50: 42 7d 0a 0a 23 20 41 74 20 6f 6e 65 20 70 6f 69  B}..# At one poi
6b60: 6e 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  nt the following
6b70: 20 74 65 73 74 73 20 70 72 6f 76 6f 6b 65 64 20   tests provoked 
6b80: 61 6e 20 69 6e 76 61 6c 69 64 20 77 72 69 74 65  an invalid write
6b90: 20 65 72 72 6f 72 20 28 77 72 69 74 69 6e 67 0a   error (writing.
6ba0: 23 20 74 6f 20 6d 65 6d 6f 72 79 20 74 68 61 74  # to memory that
6bb0: 20 68 61 64 20 61 6c 72 65 61 64 79 20 62 65 65   had already bee
6bc0: 6e 20 66 72 65 65 64 29 2e 20 49 74 20 77 61 73  n freed). It was
6bd0: 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 20 74 6f   not possible to
6be0: 20 64 65 6d 6f 6e 73 74 72 61 74 65 0a 23 20 74   demonstrate.# t
6bf0: 68 61 74 20 74 68 69 73 20 62 75 67 20 63 6f 75  hat this bug cou
6c00: 6c 64 20 63 61 75 73 65 20 61 20 71 75 65 72 79  ld cause a query
6c10: 20 74 6f 20 72 65 74 75 72 6e 20 62 61 64 20 64   to return bad d
6c20: 61 74 61 2e 0a 23 20 0a 64 6f 5f 74 65 73 74 20  ata..# .do_test 
6c30: 77 68 65 72 65 38 2d 35 2e 31 20 7b 0a 20 20 64  where8-5.1 {.  d
6c40: 62 20 63 6c 6f 73 65 0a 20 20 73 71 6c 69 74 65  b close.  sqlite
6c50: 34 20 64 62 20 74 65 73 74 2e 64 62 0a 20 20 73  4 db test.db.  s
6c60: 71 6c 69 74 65 34 5f 64 62 5f 63 6f 6e 66 69 67  qlite4_db_config
6c70: 5f 6c 6f 6f 6b 61 73 69 64 65 20 64 62 20 30 20  _lookaside db 0 
6c80: 30 20 30 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  0 0.  execsql {.
6c90: 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45      CREATE TABLE
6ca0: 20 74 41 28 0a 20 20 20 20 20 20 61 2c 20 62 2c   tA(.      a, b,
6cb0: 20 63 2c 20 64 2c 20 65 2c 20 66 2c 20 67 2c 20   c, d, e, f, g, 
6cc0: 68 2c 20 0a 20 20 20 20 20 20 69 2c 20 6a 2c 20  h, .      i, j, 
6cd0: 6b 2c 20 6c 2c 20 6d 2c 20 6e 2c 20 6f 2c 20 70  k, l, m, n, o, p
6ce0: 0a 20 20 20 20 29 3b 0a 20 20 7d 0a 20 20 65 78  .    );.  }.  ex
6cf0: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
6d00: 43 54 20 2a 20 46 52 4f 4d 20 74 41 20 57 48 45  CT * FROM tA WHE
6d10: 52 45 0a 20 20 20 20 20 20 61 3d 31 20 41 4e 44  RE.      a=1 AND
6d20: 20 62 3d 32 20 41 4e 44 20 63 3d 33 20 41 4e 44   b=2 AND c=3 AND
6d30: 20 64 3d 34 20 41 4e 44 20 65 3d 35 20 41 4e 44   d=4 AND e=5 AND
6d40: 20 66 3d 36 20 41 4e 44 20 67 3d 37 20 41 4e 44   f=6 AND g=7 AND
6d50: 20 68 3d 38 20 41 4e 44 0a 20 20 20 20 20 20 69   h=8 AND.      i
6d60: 3d 31 20 41 4e 44 20 6a 3d 32 20 41 4e 44 20 6b  =1 AND j=2 AND k
6d70: 3d 33 20 41 4e 44 20 6c 3d 34 20 41 4e 44 20 6d  =3 AND l=4 AND m
6d80: 3d 35 20 41 4e 44 20 6e 3d 36 20 41 4e 44 20 6f  =5 AND n=6 AND o
6d90: 3d 37 20 41 4e 44 0a 20 20 20 20 20 20 28 70 20  =7 AND.      (p 
6da0: 3d 20 31 20 4f 52 20 70 20 3d 20 32 20 4f 52 20  = 1 OR p = 2 OR 
6db0: 70 20 3d 20 33 29 0a 20 20 7d 0a 7d 20 7b 7d 0a  p = 3).  }.} {}.
6dc0: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 35  do_test where8-5
6dd0: 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .2 {.  execsql {
6de0: 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20 46 52  .    SELECT * FR
6df0: 4f 4d 20 74 41 20 57 48 45 52 45 0a 20 20 20 20  OM tA WHERE.    
6e00: 20 20 61 3d 31 20 41 4e 44 20 62 3d 32 20 41 4e    a=1 AND b=2 AN
6e10: 44 20 63 3d 33 20 41 4e 44 20 64 3d 34 20 41 4e  D c=3 AND d=4 AN
6e20: 44 20 65 3d 35 20 41 4e 44 20 66 3d 36 20 41 4e  D e=5 AND f=6 AN
6e30: 44 20 67 3d 37 20 41 4e 44 20 68 3d 38 20 41 4e  D g=7 AND h=8 AN
6e40: 44 0a 20 20 20 20 20 20 69 3d 31 20 41 4e 44 20  D.      i=1 AND 
6e50: 6a 3d 32 20 41 4e 44 20 6b 3d 33 20 41 4e 44 20  j=2 AND k=3 AND 
6e60: 6c 3d 34 20 41 4e 44 20 6d 3d 35 20 41 4e 44 0a  l=4 AND m=5 AND.
6e70: 20 20 20 20 20 20 28 70 20 3d 20 31 20 4f 52 20        (p = 1 OR 
6e80: 70 20 3d 20 32 20 4f 52 20 70 20 3d 20 33 29 20  p = 2 OR p = 3) 
6e90: 41 4e 44 20 6e 3d 36 20 41 4e 44 20 6f 3d 37 0a  AND n=6 AND o=7.
6ea0: 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74    }.} {}.do_test
6eb0: 20 77 68 65 72 65 38 2d 35 2e 33 20 7b 0a 20 20   where8-5.3 {.  
6ec0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 49 4e  execsql {.    IN
6ed0: 53 45 52 54 20 49 4e 54 4f 20 74 41 20 56 41 4c  SERT INTO tA VAL
6ee0: 55 45 53 28 31 2c 20 32 2c 20 33 2c 20 34 2c 20  UES(1, 2, 3, 4, 
6ef0: 35 2c 20 36 2c 20 37 2c 20 38 2c 20 31 2c 20 32  5, 6, 7, 8, 1, 2
6f00: 2c 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 37 2c  , 3, 4, 5, 6, 7,
6f10: 20 38 29 3b 20 0a 20 20 20 20 43 52 45 41 54 45   8); .    CREATE
6f20: 20 55 4e 49 51 55 45 20 49 4e 44 45 58 20 74 41   UNIQUE INDEX tA
6f30: 49 20 4f 4e 20 74 41 28 70 29 3b 0a 20 20 20 20  I ON tA(p);.    
6f40: 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 42 28  CREATE TABLE tB(
6f50: 78 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  x);.    INSERT I
6f60: 4e 54 4f 20 74 42 20 56 41 4c 55 45 53 28 27 78  NTO tB VALUES('x
6f70: 27 29 3b 0a 20 20 7d 0a 20 20 65 78 65 63 73 71  ');.  }.  execsq
6f80: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  l {.    SELECT a
6f90: 2c 20 78 20 46 52 4f 4d 20 74 41 20 4c 45 46 54  , x FROM tA LEFT
6fa0: 20 4a 4f 49 4e 20 74 42 20 4f 4e 20 28 0a 20 20   JOIN tB ON (.  
6fb0: 20 20 20 20 61 3d 31 20 41 4e 44 20 62 3d 32 20      a=1 AND b=2 
6fc0: 41 4e 44 20 63 3d 33 20 41 4e 44 20 64 3d 34 20  AND c=3 AND d=4 
6fd0: 41 4e 44 20 65 3d 35 20 41 4e 44 20 66 3d 36 20  AND e=5 AND f=6 
6fe0: 41 4e 44 20 67 3d 37 20 41 4e 44 20 68 3d 38 20  AND g=7 AND h=8 
6ff0: 41 4e 44 0a 20 20 20 20 20 20 69 3d 31 20 41 4e  AND.      i=1 AN
7000: 44 20 6a 3d 32 20 41 4e 44 20 6b 3d 33 20 41 4e  D j=2 AND k=3 AN
7010: 44 20 6c 3d 34 20 41 4e 44 20 6d 3d 35 20 41 4e  D l=4 AND m=5 AN
7020: 44 20 6e 3d 36 20 41 4e 44 20 6f 3d 37 20 41 4e  D n=6 AND o=7 AN
7030: 44 0a 20 20 20 20 20 20 28 70 20 3d 20 31 20 4f  D.      (p = 1 O
7040: 52 20 70 20 3d 20 32 20 4f 52 20 70 20 3d 20 33  R p = 2 OR p = 3
7050: 29 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 31  ).    ).  }.} {1
7060: 20 7b 7d 7d 0a 0a 66 69 6e 69 73 68 5f 74 65 73   {}}..finish_tes
7070: 74 0a                                            t.