/ Hex Artifact Content
Login

Artifact 84033c4da466d90fe7ef0152661ff67fd218105f:


0000: 23 20 32 30 30 38 20 44 65 63 65 6d 62 65 72 20  # 2008 December 
0010: 32 33 0a 23 0a 23 20 54 68 65 20 61 75 74 68 6f  23.#.# The autho
0020: 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70 79  r disclaims copy
0030: 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73 6f  right to this so
0040: 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20 70  urce code.  In p
0050: 6c 61 63 65 20 6f 66 0a 23 20 61 20 6c 65 67 61  lace of.# a lega
0060: 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20 69  l notice, here i
0070: 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23 0a  s a blessing:.#.
0080: 23 20 20 20 20 4d 61 79 20 79 6f 75 20 64 6f 20  #    May you do 
0090: 67 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76 69  good and not evi
00a0: 6c 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20  l..#    May you 
00b0: 66 69 6e 64 20 66 6f 72 67 69 76 65 6e 65 73 73  find forgiveness
00c0: 20 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 61 6e   for yourself an
00d0: 64 20 66 6f 72 67 69 76 65 20 6f 74 68 65 72 73  d forgive others
00e0: 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 73  ..#    May you s
00f0: 68 61 72 65 20 66 72 65 65 6c 79 2c 20 6e 65 76  hare freely, nev
0100: 65 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20 74  er taking more t
0110: 68 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23 0a  han you give..#.
0120: 23 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  #***************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 2a 2a 2a 0a 23 20 54 68 69 73 20  ********.# This 
0170: 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20  file implements 
0180: 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74 73  regression tests
0190: 20 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62 72   for SQLite libr
01a0: 61 72 79 2e 20 54 68 65 20 66 6f 63 75 73 0a 23  ary. The focus.#
01b0: 20 69 73 20 74 65 73 74 69 6e 67 20 6f 66 20 77   is testing of w
01c0: 68 65 72 65 2e 63 2e 20 4d 6f 72 65 20 73 70 65  here.c. More spe
01d0: 63 69 66 69 63 61 6c 6c 79 2c 20 74 68 65 20 66  cifically, the f
01e0: 6f 63 75 73 20 69 73 20 74 68 65 20 6f 70 74 69  ocus is the opti
01f0: 6d 69 7a 61 74 69 6f 6e 0a 23 20 6f 66 20 57 48  mization.# of WH
0200: 45 52 45 20 63 6c 61 75 73 65 73 20 74 68 61 74  ERE clauses that
0210: 20 66 65 61 74 75 72 65 20 74 68 65 20 4f 52 20   feature the OR 
0220: 6f 70 65 72 61 74 6f 72 2e 0a 23 0a 0a 73 65 74  operator..#..set
0230: 20 74 65 73 74 64 69 72 20 5b 66 69 6c 65 20 64   testdir [file d
0240: 69 72 6e 61 6d 65 20 24 61 72 67 76 30 5d 0a 73  irname $argv0].s
0250: 6f 75 72 63 65 20 24 74 65 73 74 64 69 72 2f 74  ource $testdir/t
0260: 65 73 74 65 72 2e 74 63 6c 0a 0a 23 20 54 65 73  ester.tcl..# Tes
0270: 74 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 3a 0a  t organization:.
0280: 23 0a 23 20 20 20 77 68 65 72 65 38 2d 31 2e 2a  #.#   where8-1.*
0290: 3a 20 54 65 73 74 73 20 74 6f 20 64 65 6d 6f 6e  : Tests to demon
02a0: 73 74 72 61 74 65 20 73 69 6d 70 6c 65 20 63 61  strate simple ca
02b0: 73 65 73 20 77 6f 72 6b 20 77 69 74 68 20 61 20  ses work with a 
02c0: 73 69 6e 67 6c 65 20 74 61 62 6c 65 0a 23 20 20  single table.#  
02d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 20               in 
02e0: 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e  the FROM clause.
02f0: 0a 23 0a 23 20 20 20 77 68 65 72 65 38 2d 32 2e  .#.#   where8-2.
0300: 2a 3a 20 54 65 73 74 73 20 73 75 72 72 6f 75 6e  *: Tests surroun
0310: 64 69 6e 67 20 76 69 72 74 75 61 6c 20 74 61 62  ding virtual tab
0320: 6c 65 73 20 61 6e 64 20 74 68 65 20 4f 52 20 6f  les and the OR o
0330: 70 74 69 6d 69 7a 61 74 69 6f 6e 2e 0a 23 0a 23  ptimization..#.#
0340: 20 20 20 77 68 65 72 65 38 2d 33 2e 2a 3a 20 54     where8-3.*: T
0350: 65 73 74 73 20 77 69 74 68 20 6d 6f 72 65 20 74  ests with more t
0360: 68 61 6e 20 6f 6e 65 20 74 61 62 6c 65 20 69 6e  han one table in
0370: 20 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73 65   the FROM clause
0380: 2e 0a 23 20 0a 0a 70 72 6f 63 20 65 78 65 63 73  ..# ..proc execs
0390: 71 6c 5f 73 74 61 74 75 73 20 7b 73 71 6c 20 7b  ql_status {sql {
03a0: 64 62 20 64 62 7d 7d 20 7b 0a 20 20 73 65 74 20  db db}} {.  set 
03b0: 72 65 73 75 6c 74 20 5b 75 70 6c 65 76 65 6c 20  result [uplevel 
03c0: 24 64 62 20 65 76 61 6c 20 5b 6c 69 73 74 20 24  $db eval [list $
03d0: 73 71 6c 5d 5d 0a 20 20 63 6f 6e 63 61 74 20 24  sql]].  concat $
03e0: 72 65 73 75 6c 74 20 5b 64 62 20 73 74 61 74 75  result [db statu
03f0: 73 20 73 74 65 70 5d 20 5b 64 62 20 73 74 61 74  s step] [db stat
0400: 75 73 20 73 6f 72 74 5d 0a 7d 0a 0a 70 72 6f 63  us sort].}..proc
0410: 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32   execsql_status2
0420: 20 7b 73 71 6c 20 7b 64 62 20 64 62 7d 7d 20 7b   {sql {db db}} {
0430: 0a 20 20 73 65 74 20 3a 3a 73 71 6c 69 74 65 5f  .  set ::sqlite_
0440: 73 65 61 72 63 68 5f 63 6f 75 6e 74 20 30 0a 20  search_count 0. 
0450: 20 73 65 74 20 72 65 73 75 6c 74 20 5b 75 70 6c   set result [upl
0460: 65 76 65 6c 20 5b 6c 69 73 74 20 65 78 65 63 73  evel [list execs
0470: 71 6c 5f 73 74 61 74 75 73 20 24 73 71 6c 20 24  ql_status $sql $
0480: 64 62 5d 5d 0a 20 20 63 6f 6e 63 61 74 20 24 72  db]].  concat $r
0490: 65 73 75 6c 74 20 24 3a 3a 73 71 6c 69 74 65 5f  esult $::sqlite_
04a0: 73 65 61 72 63 68 5f 63 6f 75 6e 74 0a 7d 0a 0a  search_count.}..
04b0: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31  do_test where8-1
04c0: 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .1 {.  execsql {
04d0: 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c  .    CREATE TABL
04e0: 45 20 74 31 28 61 2c 20 62 20 54 45 58 54 2c 20  E t1(a, b TEXT, 
04f0: 63 29 3b 0a 20 20 20 20 43 52 45 41 54 45 20 49  c);.    CREATE I
0500: 4e 44 45 58 20 69 31 20 4f 4e 20 74 31 28 61 29  NDEX i1 ON t1(a)
0510: 3b 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e 44  ;.    CREATE IND
0520: 45 58 20 69 32 20 4f 4e 20 74 31 28 62 29 3b 0a  EX i2 ON t1(b);.
0530: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
0540: 20 74 31 20 56 41 4c 55 45 53 28 31 2c 20 20 27   t1 VALUES(1,  '
0550: 6f 6e 65 27 2c 20 20 20 27 49 27 29 3b 0a 20 20  one',   'I');.  
0560: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
0570: 20 56 41 4c 55 45 53 28 32 2c 20 20 27 74 77 6f   VALUES(2,  'two
0580: 27 2c 20 20 20 27 49 49 27 29 3b 0a 20 20 20 20  ',   'II');.    
0590: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56  INSERT INTO t1 V
05a0: 41 4c 55 45 53 28 33 2c 20 20 27 74 68 72 65 65  ALUES(3,  'three
05b0: 27 2c 20 27 49 49 49 27 29 3b 0a 20 20 20 20 49  ', 'III');.    I
05c0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41  NSERT INTO t1 VA
05d0: 4c 55 45 53 28 34 2c 20 20 27 66 6f 75 72 27 2c  LUES(4,  'four',
05e0: 20 20 27 49 56 27 29 3b 0a 20 20 20 20 49 4e 53    'IV');.    INS
05f0: 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55  ERT INTO t1 VALU
0600: 45 53 28 35 2c 20 20 27 66 69 76 65 27 2c 20 20  ES(5,  'five',  
0610: 27 56 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  'V');.    INSERT
0620: 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28   INTO t1 VALUES(
0630: 36 2c 20 20 27 73 69 78 27 2c 20 20 20 27 56 49  6,  'six',   'VI
0640: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
0650: 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28 37 2c  NTO t1 VALUES(7,
0660: 20 20 27 73 65 76 65 6e 27 2c 20 27 56 49 49 27    'seven', 'VII'
0670: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
0680: 54 4f 20 74 31 20 56 41 4c 55 45 53 28 38 2c 20  TO t1 VALUES(8, 
0690: 20 27 65 69 67 68 74 27 2c 20 27 56 49 49 49 27   'eight', 'VIII'
06a0: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
06b0: 54 4f 20 74 31 20 56 41 4c 55 45 53 28 39 2c 20  TO t1 VALUES(9, 
06c0: 20 27 6e 69 6e 65 27 2c 20 20 27 49 58 27 29 3b   'nine',  'IX');
06d0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
06e0: 20 74 31 20 56 41 4c 55 45 53 28 31 30 2c 20 27   t1 VALUES(10, '
06f0: 74 65 6e 27 2c 20 20 20 27 58 27 29 3b 0a 20 20  ten',   'X');.  
0700: 7d 0a 7d 20 7b 7d 0a 0a 64 6f 5f 74 65 73 74 20  }.} {}..do_test 
0710: 77 68 65 72 65 38 2d 31 2e 32 20 7b 20 0a 20 20  where8-1.2 { .  
0720: 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20  execsql_status2 
0730: 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20  { SELECT c FROM 
0740: 74 31 20 57 48 45 52 45 20 61 20 3d 20 31 20 4f  t1 WHERE a = 1 O
0750: 52 20 62 20 3d 20 27 6e 69 6e 65 27 20 7d 0a 7d  R b = 'nine' }.}
0760: 20 7b 49 20 49 58 20 30 20 30 20 36 7d 0a 0a 64   {I IX 0 0 6}..d
0770: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e  o_test where8-1.
0780: 33 20 7b 20 0a 20 20 65 78 65 63 73 71 6c 5f 73  3 { .  execsql_s
0790: 74 61 74 75 73 32 20 7b 20 53 45 4c 45 43 54 20  tatus2 { SELECT 
07a0: 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45 20  c FROM t1 WHERE 
07b0: 61 20 3e 20 38 20 4f 52 20 62 20 3d 20 27 74 77  a > 8 OR b = 'tw
07c0: 6f 27 20 7d 0a 7d 20 7b 49 58 20 58 20 49 49 20  o' }.} {IX X II 
07d0: 30 20 30 20 36 7d 0a 0a 64 6f 5f 74 65 73 74 20  0 0 6}..do_test 
07e0: 77 68 65 72 65 38 2d 31 2e 34 20 7b 20 0a 20 20  where8-1.4 { .  
07f0: 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20  execsql_status2 
0800: 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20  { SELECT c FROM 
0810: 74 31 20 57 48 45 52 45 20 61 20 3e 20 38 20 4f  t1 WHERE a > 8 O
0820: 52 20 62 20 47 4c 4f 42 20 27 74 2a 27 20 7d 0a  R b GLOB 't*' }.
0830: 7d 20 7b 49 58 20 58 20 49 49 49 20 49 49 20 30  } {IX X III II 0
0840: 20 30 20 39 7d 0a 0a 64 6f 5f 74 65 73 74 20 77   0 9}..do_test w
0850: 68 65 72 65 38 2d 31 2e 35 20 7b 20 0a 20 20 65  here8-1.5 { .  e
0860: 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b  xecsql_status2 {
0870: 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74   SELECT c FROM t
0880: 31 20 57 48 45 52 45 20 61 20 3e 20 38 20 4f 52  1 WHERE a > 8 OR
0890: 20 62 20 47 4c 4f 42 20 27 66 2a 27 20 7d 0a 7d   b GLOB 'f*' }.}
08a0: 20 7b 49 58 20 58 20 56 20 49 56 20 30 20 30 20   {IX X V IV 0 0 
08b0: 39 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72  9}..do_test wher
08c0: 65 38 2d 31 2e 36 20 7b 20 0a 20 20 65 78 65 63  e8-1.6 { .  exec
08d0: 73 71 6c 5f 73 74 61 74 75 73 20 7b 20 53 45 4c  sql_status { SEL
08e0: 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20 57 48  ECT c FROM t1 WH
08f0: 45 52 45 20 61 20 3d 20 31 20 4f 52 20 62 20 3d  ERE a = 1 OR b =
0900: 20 27 74 68 72 65 65 27 20 4f 52 44 45 52 20 42   'three' ORDER B
0910: 59 20 72 6f 77 69 64 20 7d 0a 7d 20 7b 49 20 49  Y rowid }.} {I I
0920: 49 49 20 30 20 31 7d 0a 0a 64 6f 5f 74 65 73 74  II 0 1}..do_test
0930: 20 77 68 65 72 65 38 2d 31 2e 37 20 7b 20 0a 20   where8-1.7 { . 
0940: 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 20   execsql_status 
0950: 7b 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20  { SELECT c FROM 
0960: 74 31 20 57 48 45 52 45 20 61 20 3d 20 31 20 4f  t1 WHERE a = 1 O
0970: 52 20 62 20 3d 20 27 74 68 72 65 65 27 20 4f 52  R b = 'three' OR
0980: 44 45 52 20 42 59 20 61 20 7d 0a 7d 20 7b 49 20  DER BY a }.} {I 
0990: 49 49 49 20 30 20 31 7d 0a 0a 64 6f 5f 74 65 73  III 0 1}..do_tes
09a0: 74 20 77 68 65 72 65 38 2d 31 2e 38 20 7b 0a 20  t where8-1.8 {. 
09b0: 20 23 20 31 38 20 73 65 61 72 63 68 65 73 2e 20   # 18 searches. 
09c0: 39 20 6f 6e 20 74 68 65 20 69 6e 64 65 78 20 63  9 on the index c
09d0: 75 72 73 6f 72 20 61 6e 64 20 39 20 6f 6e 20 74  ursor and 9 on t
09e0: 68 65 20 74 61 62 6c 65 20 63 75 72 73 6f 72 2e  he table cursor.
09f0: 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75  .  execsql_statu
0a00: 73 32 20 7b 20 53 45 4c 45 43 54 20 63 20 46 52  s2 { SELECT c FR
0a10: 4f 4d 20 74 31 20 57 48 45 52 45 20 61 20 3e 20  OM t1 WHERE a > 
0a20: 31 20 41 4e 44 20 63 20 4c 49 4b 45 20 27 49 25  1 AND c LIKE 'I%
0a30: 27 20 7d 0a 7d 20 7b 49 49 20 49 49 49 20 49 56  ' }.} {II III IV
0a40: 20 49 58 20 30 20 30 20 31 38 7d 0a 0a 64 6f 5f   IX 0 0 18}..do_
0a50: 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e 39 20  test where8-1.9 
0a60: 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74  {.  execsql_stat
0a70: 75 73 32 20 7b 20 53 45 4c 45 43 54 20 63 20 46  us2 { SELECT c F
0a80: 52 4f 4d 20 74 31 20 57 48 45 52 45 20 61 20 3e  ROM t1 WHERE a >
0a90: 3d 20 39 20 4f 52 20 62 20 3c 3d 20 27 65 69 67  = 9 OR b <= 'eig
0aa0: 68 74 27 20 7d 0a 7d 20 7b 49 58 20 58 20 56 49  ht' }.} {IX X VI
0ab0: 49 49 20 30 20 30 20 36 7d 0a 0a 64 6f 5f 74 65  II 0 0 6}..do_te
0ac0: 73 74 20 77 68 65 72 65 38 2d 31 2e 31 30 20 7b  st where8-1.10 {
0ad0: 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75  .  execsql_statu
0ae0: 73 32 20 7b 20 0a 20 20 20 20 53 45 4c 45 43 54  s2 { .    SELECT
0af0: 20 63 20 46 52 4f 4d 20 74 31 20 57 48 45 52 45   c FROM t1 WHERE
0b00: 20 28 61 20 3e 3d 20 39 20 41 4e 44 20 63 20 21   (a >= 9 AND c !
0b10: 3d 20 27 58 27 29 20 4f 52 20 62 20 3c 3d 20 27  = 'X') OR b <= '
0b20: 65 69 67 68 74 27 20 0a 20 20 7d 0a 7d 20 7b 49  eight' .  }.} {I
0b30: 58 20 56 49 49 49 20 30 20 30 20 36 7d 0a 0a 64  X VIII 0 0 6}..d
0b40: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e  o_test where8-1.
0b50: 31 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73  11 {.  execsql_s
0b60: 74 61 74 75 73 32 20 7b 20 0a 20 20 20 20 53 45  tatus2 { .    SE
0b70: 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20 57  LECT c FROM t1 W
0b80: 48 45 52 45 20 28 61 20 3e 3d 20 34 20 41 4e 44  HERE (a >= 4 AND
0b90: 20 61 20 3c 3d 20 36 29 20 4f 52 20 62 20 3d 20   a <= 6) OR b = 
0ba0: 27 6e 69 6e 65 27 20 0a 20 20 7d 0a 7d 20 7b 49  'nine' .  }.} {I
0bb0: 56 20 56 20 56 49 20 49 58 20 30 20 30 20 31 30  V V VI IX 0 0 10
0bc0: 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65  }..do_test where
0bd0: 38 2d 31 2e 31 32 2e 31 20 7b 0a 20 20 65 78 65  8-1.12.1 {.  exe
0be0: 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b 20 0a  csql_status2 { .
0bf0: 20 20 20 20 53 45 4c 45 43 54 20 63 20 46 52 4f      SELECT c FRO
0c00: 4d 20 74 31 20 57 48 45 52 45 20 61 20 49 4e 28  M t1 WHERE a IN(
0c10: 31 2c 20 32 2c 20 33 29 20 4f 52 20 61 20 3d 20  1, 2, 3) OR a = 
0c20: 35 0a 20 20 7d 0a 7d 20 7b 49 20 49 49 20 49 49  5.  }.} {I II II
0c30: 49 20 56 20 30 20 30 20 31 34 7d 0a 0a 64 6f 5f  I V 0 0 14}..do_
0c40: 74 65 73 74 20 77 68 65 72 65 38 2d 31 2e 31 32  test where8-1.12
0c50: 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f 73  .2 {.  execsql_s
0c60: 74 61 74 75 73 32 20 7b 20 0a 20 20 20 20 53 45  tatus2 { .    SE
0c70: 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31 20 57  LECT c FROM t1 W
0c80: 48 45 52 45 20 2b 61 20 49 4e 28 31 2c 20 32 2c  HERE +a IN(1, 2,
0c90: 20 33 29 20 4f 52 20 2b 61 20 3d 20 35 0a 20 20   3) OR +a = 5.  
0ca0: 7d 0a 7d 20 7b 49 20 49 49 20 49 49 49 20 56 20  }.} {I II III V 
0cb0: 39 20 30 20 39 7d 0a 0a 64 6f 5f 74 65 73 74 20  9 0 9}..do_test 
0cc0: 77 68 65 72 65 38 2d 31 2e 31 33 20 7b 0a 20 20  where8-1.13 {.  
0cd0: 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20  execsql_status2 
0ce0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 63 20 46  {.    SELECT c F
0cf0: 52 4f 4d 20 74 31 0a 20 20 20 20 57 48 45 52 45  ROM t1.    WHERE
0d00: 20 61 20 3d 20 32 20 4f 52 20 62 20 3d 20 27 74   a = 2 OR b = 't
0d10: 68 72 65 65 27 20 4f 52 20 61 20 3d 20 34 20 4f  hree' OR a = 4 O
0d20: 52 20 62 20 3d 20 27 66 69 76 65 27 20 4f 52 20  R b = 'five' OR 
0d30: 61 20 3d 20 36 0a 20 20 20 20 4f 52 44 45 52 20  a = 6.    ORDER 
0d40: 42 59 20 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  BY rowid.  }.} {
0d50: 49 49 20 49 49 49 20 49 56 20 56 20 56 49 20 30  II III IV V VI 0
0d60: 20 31 20 31 38 7d 0a 64 6f 5f 74 65 73 74 20 77   1 18}.do_test w
0d70: 68 65 72 65 38 2d 31 2e 31 34 20 7b 0a 20 20 65  here8-1.14 {.  e
0d80: 78 65 63 73 71 6c 5f 73 74 61 74 75 73 32 20 7b  xecsql_status2 {
0d90: 0a 20 20 20 20 53 45 4c 45 43 54 20 63 20 46 52  .    SELECT c FR
0da0: 4f 4d 20 74 31 0a 20 20 20 20 57 48 45 52 45 20  OM t1.    WHERE 
0db0: 0a 20 20 20 20 20 20 61 20 3d 20 32 20 4f 52 20  .      a = 2 OR 
0dc0: 62 20 3d 20 27 74 68 72 65 65 27 20 4f 52 20 61  b = 'three' OR a
0dd0: 20 3d 20 34 20 4f 52 20 62 20 3d 20 27 66 69 76   = 4 OR b = 'fiv
0de0: 65 27 20 4f 52 20 61 20 3d 20 36 20 4f 52 0a 20  e' OR a = 6 OR. 
0df0: 20 20 20 20 20 62 20 3d 20 27 73 65 76 65 6e 27       b = 'seven'
0e00: 20 4f 52 20 61 20 3d 20 38 20 4f 52 20 62 20 3d   OR a = 8 OR b =
0e10: 20 27 6e 69 6e 65 27 20 4f 52 20 61 20 3d 20 31   'nine' OR a = 1
0e20: 30 0a 20 20 20 20 4f 52 44 45 52 20 42 59 20 72  0.    ORDER BY r
0e30: 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 49 49 20 49  owid.  }.} {II I
0e40: 49 49 20 49 56 20 56 20 56 49 20 56 49 49 20 56  II IV V VI VII V
0e50: 49 49 49 20 49 58 20 58 20 30 20 31 20 33 33 7d  III IX X 0 1 33}
0e60: 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38  ..do_test where8
0e70: 2d 31 2e 31 35 20 7b 0a 20 20 65 78 65 63 73 71  -1.15 {.  execsq
0e80: 6c 5f 73 74 61 74 75 73 32 20 7b 0a 20 20 20 20  l_status2 {.    
0e90: 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74 31  SELECT c FROM t1
0ea0: 20 57 48 45 52 45 20 0a 20 20 20 20 20 20 61 20   WHERE .      a 
0eb0: 42 45 54 57 45 45 4e 20 32 20 41 4e 44 20 34 20  BETWEEN 2 AND 4 
0ec0: 4f 52 20 62 20 3d 20 27 6e 69 6e 65 27 0a 20 20  OR b = 'nine'.  
0ed0: 20 20 4f 52 44 45 52 20 42 59 20 72 6f 77 69 64    ORDER BY rowid
0ee0: 0a 20 20 7d 0a 7d 20 7b 49 49 20 49 49 49 20 49  .  }.} {II III I
0ef0: 56 20 49 58 20 30 20 31 20 31 32 7d 0a 0a 0a 23  V IX 0 1 12}...#
0f00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0f10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0f20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0f30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0f40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54 65 73  ----------.# Tes
0f50: 74 73 20 77 68 65 72 65 38 2d 32 2e 2a 3a 20 56  ts where8-2.*: V
0f60: 69 72 74 75 61 6c 20 74 61 62 6c 65 73 0a 23 20  irtual tables.# 
0f70: 0a 0a 69 66 20 30 20 7b 0a 69 66 63 61 70 61 62  ..if 0 {.ifcapab
0f80: 6c 65 20 76 74 61 62 20 7b 0a 20 20 23 20 52 65  le vtab {.  # Re
0f90: 67 69 73 74 65 72 20 74 68 65 20 27 65 63 68 6f  gister the 'echo
0fa0: 27 20 6d 6f 64 75 6c 65 20 75 73 65 64 20 66 6f  ' module used fo
0fb0: 72 20 74 65 73 74 69 6e 67 20 76 69 72 74 75 61  r testing virtua
0fc0: 6c 20 74 61 62 6c 65 73 2e 0a 20 20 23 0a 20 20  l tables..  #.  
0fd0: 72 65 67 69 73 74 65 72 5f 65 63 68 6f 5f 6d 6f  register_echo_mo
0fe0: 64 75 6c 65 20 5b 73 71 6c 69 74 65 33 5f 63 6f  dule [sqlite3_co
0ff0: 6e 6e 65 63 74 69 6f 6e 5f 70 6f 69 6e 74 65 72  nnection_pointer
1000: 20 64 62 5d 0a 0a 20 20 64 6f 5f 74 65 73 74 20   db]..  do_test 
1010: 77 68 65 72 65 38 2d 32 2e 31 20 7b 0a 20 20 20  where8-2.1 {.   
1020: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 20   execsql {.     
1030: 20 43 52 45 41 54 45 20 56 49 52 54 55 41 4c 20   CREATE VIRTUAL 
1040: 54 41 42 4c 45 20 65 31 20 55 53 49 4e 47 20 65  TABLE e1 USING e
1050: 63 68 6f 28 74 31 29 3b 0a 20 20 20 20 20 20 53  cho(t1);.      S
1060: 45 4c 45 43 54 20 62 20 46 52 4f 4d 20 65 31 3b  ELECT b FROM e1;
1070: 0a 20 20 20 20 7d 0a 20 20 7d 20 7b 6f 6e 65 20  .    }.  } {one 
1080: 74 77 6f 20 74 68 72 65 65 20 66 6f 75 72 20 66  two three four f
1090: 69 76 65 20 73 69 78 20 73 65 76 65 6e 20 65 69  ive six seven ei
10a0: 67 68 74 20 6e 69 6e 65 20 74 65 6e 7d 0a 0a 20  ght nine ten}.. 
10b0: 20 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d   do_test where8-
10c0: 32 2e 32 2e 31 20 7b 0a 20 20 20 20 73 65 74 20  2.2.1 {.    set 
10d0: 65 63 68 6f 5f 6d 6f 64 75 6c 65 20 22 22 0a 20  echo_module "". 
10e0: 20 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20     execsql {.   
10f0: 20 20 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d     SELECT c FROM
1100: 20 65 31 20 57 48 45 52 45 20 61 3d 31 20 4f 52   e1 WHERE a=1 OR
1110: 20 62 3d 27 74 68 72 65 65 27 3b 0a 20 20 20 20   b='three';.    
1120: 7d 0a 20 20 7d 20 7b 49 20 49 49 49 7d 0a 20 20  }.  } {I III}.  
1130: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 32  do_test where8-2
1140: 2e 32 2e 32 20 7b 0a 20 20 20 20 73 65 74 20 65  .2.2 {.    set e
1150: 63 68 6f 5f 6d 6f 64 75 6c 65 0a 20 20 7d 20 7b  cho_module.  } {
1160: 54 4f 44 4f 3a 20 57 68 61 74 20 73 68 6f 75 6c  TODO: What shoul
1170: 64 20 74 68 69 73 20 62 65 3f 7d 0a 7d 0a 7d 0a  d this be?}.}.}.
1180: 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .#--------------
1190: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54  ------------.# T
11d0: 65 73 74 73 20 77 68 65 72 65 38 2d 33 2e 2a 3a  ests where8-3.*:
11e0: 20 43 61 73 65 73 20 77 69 74 68 20 6d 75 6c 74   Cases with mult
11f0: 69 70 6c 65 20 74 61 62 6c 65 73 20 69 6e 20 74  iple tables in t
1200: 68 65 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e 0a  he FROM clause..
1210: 23 20 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65  # .do_test where
1220: 38 2d 33 2e 31 20 7b 0a 20 20 65 78 65 63 73 71  8-3.1 {.  execsq
1230: 6c 20 7b 0a 20 20 20 20 43 52 45 41 54 45 20 54  l {.    CREATE T
1240: 41 42 4c 45 20 74 32 28 64 2c 20 65 2c 20 66 29  ABLE t2(d, e, f)
1250: 3b 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e 44  ;.    CREATE IND
1260: 45 58 20 69 33 20 4f 4e 20 74 32 28 64 29 3b 0a  EX i3 ON t2(d);.
1270: 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58      CREATE INDEX
1280: 20 69 34 20 4f 4e 20 74 32 28 65 29 3b 0a 0a 20   i4 ON t2(e);.. 
1290: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
12a0: 32 20 56 41 4c 55 45 53 28 31 2c 20 20 4e 55 4c  2 VALUES(1,  NUL
12b0: 4c 2c 20 20 20 20 20 20 20 20 20 27 49 27 29 3b  L,         'I');
12c0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
12d0: 20 74 32 20 56 41 4c 55 45 53 28 32 2c 20 20 27   t2 VALUES(2,  '
12e0: 66 6f 75 72 27 2c 20 20 20 20 20 20 20 27 49 56  four',       'IV
12f0: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
1300: 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28 33 2c  NTO t2 VALUES(3,
1310: 20 20 4e 55 4c 4c 2c 20 20 20 20 20 20 20 20 20    NULL,         
1320: 27 49 58 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  'IX');.    INSER
1330: 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53  T INTO t2 VALUES
1340: 28 34 2c 20 20 27 73 69 78 74 65 65 6e 27 2c 20  (4,  'sixteen', 
1350: 20 20 20 27 58 56 49 27 29 3b 0a 20 20 20 20 49     'XVI');.    I
1360: 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41  NSERT INTO t2 VA
1370: 4c 55 45 53 28 35 2c 20 20 4e 55 4c 4c 2c 20 20  LUES(5,  NULL,  
1380: 20 20 20 20 20 20 20 27 58 58 56 27 29 3b 0a 20         'XXV');. 
1390: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
13a0: 32 20 56 41 4c 55 45 53 28 36 2c 20 20 27 74 68  2 VALUES(6,  'th
13b0: 69 72 74 79 73 69 78 27 2c 20 20 27 58 58 58 56  irtysix',  'XXXV
13c0: 49 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  I');.    INSERT 
13d0: 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28 37  INTO t2 VALUES(7
13e0: 2c 20 20 27 66 6f 72 74 79 6e 69 6e 65 27 2c 20  ,  'fortynine', 
13f0: 20 27 58 4c 49 58 27 29 3b 0a 20 20 20 20 49 4e   'XLIX');.    IN
1400: 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c  SERT INTO t2 VAL
1410: 55 45 53 28 38 2c 20 20 27 73 69 78 74 79 65 69  UES(8,  'sixtyei
1420: 67 68 74 27 2c 20 27 4c 58 49 56 27 29 3b 0a 20  ght', 'LXIV');. 
1430: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
1440: 32 20 56 41 4c 55 45 53 28 39 2c 20 20 27 65 69  2 VALUES(9,  'ei
1450: 67 68 74 79 6f 6e 65 27 2c 20 20 27 4c 58 58 58  ghtyone',  'LXXX
1460: 49 58 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  IX');.    INSERT
1470: 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28   INTO t2 VALUES(
1480: 31 30 2c 20 4e 55 4c 4c 2c 20 20 20 20 20 20 20  10, NULL,       
1490: 20 20 27 43 27 29 3b 0a 20 20 7d 0a 7d 20 7b 7d    'C');.  }.} {}
14a0: 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38  ..do_test where8
14b0: 2d 33 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c  -3.2 {.  execsql
14c0: 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45  _status {.    SE
14d0: 4c 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74  LECT a, d FROM t
14e0: 31 2c 20 74 32 20 57 48 45 52 45 20 62 3d 65 0a  1, t2 WHERE b=e.
14f0: 20 20 7d 0a 7d 20 7b 34 20 32 20 39 20 30 7d 0a    }.} {4 2 9 0}.
1500: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
1510: 33 2e 33 20 7b 0a 20 20 65 78 65 63 73 71 6c 5f  3.3 {.  execsql_
1520: 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c  status {.    SEL
1530: 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74 31  ECT a, d FROM t1
1540: 2c 20 74 32 20 57 48 45 52 45 20 28 61 20 3d 20  , t2 WHERE (a = 
1550: 32 20 4f 52 20 61 20 3d 20 33 29 20 41 4e 44 20  2 OR a = 3) AND 
1560: 64 20 3d 20 36 0a 20 20 7d 0a 7d 20 7b 32 20 36  d = 6.  }.} {2 6
1570: 20 33 20 36 20 30 20 30 7d 0a 0a 64 6f 5f 74 65   3 6 0 0}..do_te
1580: 73 74 20 77 68 65 72 65 38 2d 33 2e 34 20 7b 0a  st where8-3.4 {.
1590: 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75 73    execsql_status
15a0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
15b0: 20 64 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 57   d FROM t1, t2 W
15c0: 48 45 52 45 20 28 61 20 3d 20 32 20 4f 52 20 61  HERE (a = 2 OR a
15d0: 20 3d 20 33 29 20 41 4e 44 20 64 20 3d 20 61 0a   = 3) AND d = a.
15e0: 20 20 7d 0a 7d 20 7b 32 20 32 20 33 20 33 20 30    }.} {2 2 3 3 0
15f0: 20 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65   0}..do_test whe
1600: 72 65 38 2d 33 2e 35 20 7b 0a 20 20 65 78 65 63  re8-3.5 {.  exec
1610: 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20  sql_status {.   
1620: 20 53 45 4c 45 43 54 20 61 2c 20 64 20 46 52 4f   SELECT a, d FRO
1630: 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 28  M t1, t2 WHERE (
1640: 61 20 3d 20 32 20 4f 52 20 61 20 3d 20 33 29 20  a = 2 OR a = 3) 
1650: 41 4e 44 20 28 64 20 3d 20 2b 61 20 4f 52 20 65  AND (d = +a OR e
1660: 20 3d 20 27 73 69 78 74 65 65 6e 27 29 0a 20 20   = 'sixteen').  
1670: 20 20 20 4f 52 44 45 52 20 42 59 20 2b 61 2c 20     ORDER BY +a, 
1680: 2b 64 3b 0a 20 20 7d 0a 7d 20 7b 32 20 32 20 32  +d;.  }.} {2 2 2
1690: 20 34 20 33 20 33 20 33 20 34 20 30 20 31 7d 0a   4 3 3 3 4 0 1}.
16a0: 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d  .do_test where8-
16b0: 33 2e 36 20 7b 0a 20 20 23 20 54 68 65 20 66 69  3.6 {.  # The fi
16c0: 72 73 74 20 70 61 72 74 20 6f 66 20 74 68 65 20  rst part of the 
16d0: 57 48 45 52 45 20 63 6c 61 75 73 65 20 69 6e 20  WHERE clause in 
16e0: 74 68 69 73 20 71 75 65 72 79 2c 20 28 61 3d 32  this query, (a=2
16f0: 20 4f 52 20 61 3d 33 29 20 69 73 0a 20 20 23 20   OR a=3) is.  # 
1700: 74 72 61 6e 73 66 6f 72 6d 65 64 20 69 6e 74 6f  transformed into
1710: 20 22 61 20 49 4e 20 28 32 2c 20 33 29 22 2e 20   "a IN (2, 3)". 
1720: 54 68 69 73 20 69 73 20 77 68 79 20 74 68 65 20  This is why the 
1730: 73 6f 72 74 20 69 73 20 72 65 71 75 69 72 65 64  sort is required
1740: 2e 0a 20 20 23 0a 20 20 65 78 65 63 73 71 6c 5f  ..  #.  execsql_
1750: 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45 4c  status {.    SEL
1760: 45 43 54 20 61 2c 20 64 20 0a 20 20 20 20 46 52  ECT a, d .    FR
1770: 4f 4d 20 74 31 2c 20 74 32 20 0a 20 20 20 20 57  OM t1, t2 .    W
1780: 48 45 52 45 20 28 61 20 3d 20 32 20 4f 52 20 61  HERE (a = 2 OR a
1790: 20 3d 20 33 29 20 41 4e 44 20 28 64 20 3d 20 2b   = 3) AND (d = +
17a0: 61 20 4f 52 20 65 20 3d 20 27 73 69 78 74 65 65  a OR e = 'sixtee
17b0: 6e 27 29 0a 20 20 20 20 4f 52 44 45 52 20 42 59  n').    ORDER BY
17c0: 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
17d0: 7b 32 20 32 20 32 20 34 20 33 20 33 20 33 20 34  {2 2 2 4 3 3 3 4
17e0: 20 30 20 31 7d 0a 64 6f 5f 74 65 73 74 20 77 68   0 1}.do_test wh
17f0: 65 72 65 38 2d 33 2e 37 20 7b 0a 20 20 65 78 65  ere8-3.7 {.  exe
1800: 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20  csql_status {.  
1810: 20 20 53 45 4c 45 43 54 20 61 2c 20 64 20 0a 20    SELECT a, d . 
1820: 20 20 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 0a     FROM t1, t2 .
1830: 20 20 20 20 57 48 45 52 45 20 61 20 3d 20 32 20      WHERE a = 2 
1840: 41 4e 44 20 28 64 20 3d 20 61 20 4f 52 20 65 20  AND (d = a OR e 
1850: 3d 20 27 73 69 78 74 65 65 6e 27 29 0a 20 20 20  = 'sixteen').   
1860: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
1870: 69 64 0a 20 20 7d 0a 7d 20 7b 2f 32 20 32 20 32  id.  }.} {/2 2 2
1880: 20 34 20 30 20 5b 30 31 5d 2f 7d 0a 64 6f 5f 74   4 0 [01]/}.do_t
1890: 65 73 74 20 77 68 65 72 65 38 2d 33 2e 38 20 7b  est where8-3.8 {
18a0: 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75  .  execsql_statu
18b0: 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  s {.    SELECT a
18c0: 2c 20 64 20 0a 20 20 20 20 46 52 4f 4d 20 74 31  , d .    FROM t1
18d0: 2c 20 74 32 20 0a 20 20 20 20 57 48 45 52 45 20  , t2 .    WHERE 
18e0: 28 61 20 3d 20 32 20 4f 52 20 62 20 3d 20 27 74  (a = 2 OR b = 't
18f0: 68 72 65 65 27 29 20 41 4e 44 20 28 64 20 3d 20  hree') AND (d = 
1900: 61 20 4f 52 20 65 20 3d 20 27 73 69 78 74 65 65  a OR e = 'sixtee
1910: 6e 27 29 0a 20 20 20 20 4f 52 44 45 52 20 42 59  n').    ORDER BY
1920: 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
1930: 7b 32 20 32 20 32 20 34 20 33 20 33 20 33 20 34  {2 2 2 4 3 3 3 4
1940: 20 30 20 31 7d 0a 0a 64 6f 5f 74 65 73 74 20 77   0 1}..do_test w
1950: 68 65 72 65 38 2d 33 2e 39 20 7b 0a 20 20 23 20  here8-3.9 {.  # 
1960: 54 68 65 20 22 4f 52 20 63 20 3d 20 27 49 58 27  The "OR c = 'IX'
1970: 22 20 74 65 72 6d 20 66 6f 72 63 65 73 20 61 20  " term forces a 
1980: 6c 69 6e 65 61 72 20 73 63 61 6e 2e 0a 20 20 65  linear scan..  e
1990: 78 65 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a  xecsql_status {.
19a0: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 64 20      SELECT a, d 
19b0: 0a 20 20 20 20 46 52 4f 4d 20 74 31 2c 20 74 32  .    FROM t1, t2
19c0: 20 0a 20 20 20 20 57 48 45 52 45 20 28 61 20 3d   .    WHERE (a =
19d0: 20 32 20 4f 52 20 62 20 3d 20 27 74 68 72 65 65   2 OR b = 'three
19e0: 27 20 4f 52 20 63 20 3d 20 27 49 58 27 29 20 41  ' OR c = 'IX') A
19f0: 4e 44 20 28 64 20 3d 20 61 20 4f 52 20 65 20 3d  ND (d = a OR e =
1a00: 20 27 73 69 78 74 65 65 6e 27 29 0a 20 20 20 20   'sixteen').    
1a10: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
1a20: 64 0a 20 20 7d 0a 7d 20 7b 32 20 32 20 32 20 34  d.  }.} {2 2 2 4
1a30: 20 33 20 33 20 33 20 34 20 39 20 39 20 39 20 34   3 3 3 4 9 9 9 4
1a40: 20 39 20 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 77   9 0}..do_test w
1a50: 68 65 72 65 38 2d 33 2e 31 30 20 7b 0a 20 20 65  here8-3.10 {.  e
1a60: 78 65 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a  xecsql_status {.
1a70: 20 20 20 20 53 45 4c 45 43 54 20 64 20 46 52 4f      SELECT d FRO
1a80: 4d 20 74 32 20 57 48 45 52 45 20 65 20 49 53 20  M t2 WHERE e IS 
1a90: 4e 55 4c 4c 20 4f 52 20 65 20 3d 20 27 66 6f 75  NULL OR e = 'fou
1aa0: 72 27 0a 20 20 7d 0a 7d 20 7b 31 20 33 20 35 20  r'.  }.} {1 3 5 
1ab0: 31 30 20 32 20 30 20 30 7d 0a 0a 64 6f 5f 74 65  10 2 0 0}..do_te
1ac0: 73 74 20 77 68 65 72 65 38 2d 33 2e 31 31 20 7b  st where8-3.11 {
1ad0: 0a 20 20 65 78 65 63 73 71 6c 5f 73 74 61 74 75  .  execsql_statu
1ae0: 73 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  s {.    SELECT a
1af0: 2c 20 64 20 46 52 4f 4d 20 74 31 2c 20 74 32 20  , d FROM t1, t2 
1b00: 57 48 45 52 45 20 28 61 3d 64 20 4f 52 20 62 3d  WHERE (a=d OR b=
1b10: 65 29 20 41 4e 44 20 61 3c 35 20 4f 52 44 45 52  e) AND a<5 ORDER
1b20: 20 42 59 20 61 0a 20 20 7d 0a 7d 20 7b 31 20 31   BY a.  }.} {1 1
1b30: 20 32 20 32 20 33 20 33 20 34 20 32 20 34 20 34   2 2 3 3 4 2 4 4
1b40: 20 30 20 30 7d 0a 64 6f 5f 74 65 73 74 20 77 68   0 0}.do_test wh
1b50: 65 72 65 38 2d 33 2e 31 32 20 7b 0a 20 20 65 78  ere8-3.12 {.  ex
1b60: 65 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20  ecsql_status {. 
1b70: 20 20 20 53 45 4c 45 43 54 20 61 2c 20 64 20 46     SELECT a, d F
1b80: 52 4f 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45  ROM t1, t2 WHERE
1b90: 20 28 61 3d 64 20 4f 52 20 62 3d 65 29 20 41 4e   (a=d OR b=e) AN
1ba0: 44 20 2b 61 3c 35 20 4f 52 44 45 52 20 42 59 20  D +a<5 ORDER BY 
1bb0: 61 0a 20 20 7d 0a 7d 20 7b 31 20 31 20 32 20 32  a.  }.} {1 1 2 2
1bc0: 20 33 20 33 20 34 20 32 20 34 20 34 20 39 20 30   3 3 4 2 4 4 9 0
1bd0: 7d 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38  }.do_test where8
1be0: 2d 33 2e 31 33 20 7b 0a 20 20 65 78 65 63 73 71  -3.13 {.  execsq
1bf0: 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53  l_status {.    S
1c00: 45 4c 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20  ELECT a, d FROM 
1c10: 74 31 2c 20 74 32 20 57 48 45 52 45 20 28 61 3d  t1, t2 WHERE (a=
1c20: 64 20 4f 52 20 62 3d 65 29 20 41 4e 44 20 2b 61  d OR b=e) AND +a
1c30: 3c 35 0a 20 20 7d 0a 7d 20 7b 31 20 31 20 32 20  <5.  }.} {1 1 2 
1c40: 32 20 33 20 33 20 34 20 32 20 34 20 34 20 39 20  2 3 3 4 2 4 4 9 
1c50: 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72  0}..do_test wher
1c60: 65 38 2d 33 2e 31 34 20 7b 0a 20 20 65 78 65 63  e8-3.14 {.  exec
1c70: 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20  sql_status {.   
1c80: 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d 20 74   SELECT c FROM t
1c90: 31 20 57 48 45 52 45 20 61 20 3e 20 28 53 45 4c  1 WHERE a > (SEL
1ca0: 45 43 54 20 64 20 46 52 4f 4d 20 74 32 20 57 48  ECT d FROM t2 WH
1cb0: 45 52 45 20 65 20 3d 20 62 29 20 4f 52 20 61 20  ERE e = b) OR a 
1cc0: 3d 20 35 0a 20 20 7d 0a 7d 20 7b 49 56 20 56 20  = 5.  }.} {IV V 
1cd0: 39 20 30 7d 0a 0a 64 6f 5f 74 65 73 74 20 77 68  9 0}..do_test wh
1ce0: 65 72 65 38 2d 33 2e 31 35 20 7b 0a 20 20 65 78  ere8-3.15 {.  ex
1cf0: 65 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20  ecsql_status {. 
1d00: 20 20 20 53 45 4c 45 43 54 20 63 20 46 52 4f 4d     SELECT c FROM
1d10: 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 61 20   t1, t2 WHERE a 
1d20: 42 45 54 57 45 45 4e 20 31 20 41 4e 44 20 32 20  BETWEEN 1 AND 2 
1d30: 4f 52 20 61 20 3d 20 28 0a 20 20 20 20 20 20 53  OR a = (.      S
1d40: 45 4c 45 43 54 20 73 75 6d 28 65 20 49 53 20 4e  ELECT sum(e IS N
1d50: 55 4c 4c 29 20 46 52 4f 4d 20 74 32 20 41 53 20  ULL) FROM t2 AS 
1d60: 69 6e 6e 65 72 20 57 48 45 52 45 20 74 32 2e 64  inner WHERE t2.d
1d70: 3e 69 6e 6e 65 72 2e 64 0a 20 20 20 20 29 0a 20  >inner.d.    ). 
1d80: 20 20 20 4f 52 44 45 52 20 42 59 20 63 0a 20 20     ORDER BY c.  
1d90: 7d 0a 7d 20 7b 49 20 49 20 49 20 49 20 49 20 49  }.} {I I I I I I
1da0: 20 49 20 49 20 49 20 49 20 49 49 20 49 49 20 49   I I I I II II I
1db0: 49 20 49 49 20 49 49 20 49 49 20 49 49 20 49 49  I II II II II II
1dc0: 20 49 49 20 49 49 20 49 49 49 20 49 49 49 20 49   II II III III I
1dd0: 49 49 20 49 49 49 20 49 49 49 20 39 20 31 7d 0a  II III III 9 1}.
1de0: 0a 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38  ..do_test where8
1df0: 2d 33 2e 32 31 20 7b 0a 20 20 65 78 65 63 73 71  -3.21 {.  execsq
1e00: 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53  l_status {.    S
1e10: 45 4c 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20  ELECT a, d FROM 
1e20: 74 31 2c 20 28 74 32 29 20 57 48 45 52 45 20 28  t1, (t2) WHERE (
1e30: 61 3d 64 20 4f 52 20 62 3d 65 29 20 41 4e 44 20  a=d OR b=e) AND 
1e40: 61 3c 35 20 4f 52 44 45 52 20 42 59 20 61 0a 20  a<5 ORDER BY a. 
1e50: 20 7d 0a 7d 20 7b 31 20 31 20 32 20 32 20 33 20   }.} {1 1 2 2 3 
1e60: 33 20 34 20 32 20 34 20 34 20 30 20 30 7d 0a 64  3 4 2 4 4 0 0}.d
1e70: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33 2e  o_test where8-3.
1e80: 32 31 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c  21.1 {.  execsql
1e90: 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53 45  _status {.    SE
1ea0: 4c 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20 74  LECT a, d FROM t
1eb0: 31 2c 20 28 28 74 32 29 29 20 41 53 20 74 33 20  1, ((t2)) AS t3 
1ec0: 57 48 45 52 45 20 28 61 3d 64 20 4f 52 20 62 3d  WHERE (a=d OR b=
1ed0: 65 29 20 41 4e 44 20 61 3c 35 20 4f 52 44 45 52  e) AND a<5 ORDER
1ee0: 20 42 59 20 61 0a 20 20 7d 0a 7d 20 7b 31 20 31   BY a.  }.} {1 1
1ef0: 20 32 20 32 20 33 20 33 20 34 20 32 20 34 20 34   2 2 3 3 4 2 4 4
1f00: 20 30 20 30 7d 0a 69 66 20 7b 5b 70 65 72 6d 75   0 0}.if {[permu
1f10: 74 61 74 69 6f 6e 5d 20 21 3d 20 22 6e 6f 5f 6f  tation] != "no_o
1f20: 70 74 69 6d 69 7a 61 74 69 6f 6e 22 7d 20 7b 0a  ptimization"} {.
1f30: 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 33  do_test where8-3
1f40: 2e 32 31 2e 32 20 7b 0a 20 20 65 78 65 63 73 71  .21.2 {.  execsq
1f50: 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20 53  l_status {.    S
1f60: 45 4c 45 43 54 20 61 2c 20 64 20 46 52 4f 4d 20  ELECT a, d FROM 
1f70: 74 31 2c 20 28 28 53 45 4c 45 43 54 20 2a 20 46  t1, ((SELECT * F
1f80: 52 4f 4d 20 74 32 29 29 20 41 53 20 74 33 20 57  ROM t2)) AS t3 W
1f90: 48 45 52 45 20 28 61 3d 64 20 4f 52 20 62 3d 65  HERE (a=d OR b=e
1fa0: 29 20 41 4e 44 20 61 3c 35 20 4f 52 44 45 52 20  ) AND a<5 ORDER 
1fb0: 42 59 20 61 0a 20 20 7d 0a 7d 20 7b 31 20 31 20  BY a.  }.} {1 1 
1fc0: 32 20 32 20 33 20 33 20 34 20 32 20 34 20 34 20  2 2 3 3 4 2 4 4 
1fd0: 30 20 30 7d 0a 7d 0a 64 6f 5f 74 65 73 74 20 77  0 0}.}.do_test w
1fe0: 68 65 72 65 38 2d 33 2e 32 32 20 7b 0a 20 20 65  here8-3.22 {.  e
1ff0: 78 65 63 73 71 6c 5f 73 74 61 74 75 73 20 7b 0a  xecsql_status {.
2000: 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 64 20      SELECT a, d 
2010: 46 52 4f 4d 20 28 28 28 28 28 28 74 31 29 29 29  FROM ((((((t1)))
2020: 2c 20 28 28 28 74 32 29 29 29 29 29 29 0a 20 20  , (((t2)))))).  
2030: 20 20 20 57 48 45 52 45 20 28 61 3d 64 20 4f 52     WHERE (a=d OR
2040: 20 62 3d 65 29 20 41 4e 44 20 61 3c 35 20 4f 52   b=e) AND a<5 OR
2050: 44 45 52 20 42 59 20 61 0a 20 20 7d 0a 7d 20 7b  DER BY a.  }.} {
2060: 31 20 31 20 32 20 32 20 33 20 33 20 34 20 32 20  1 1 2 2 3 3 4 2 
2070: 34 20 34 20 30 20 30 7d 0a 69 66 20 7b 5b 70 65  4 4 0 0}.if {[pe
2080: 72 6d 75 74 61 74 69 6f 6e 5d 20 21 3d 20 22 6e  rmutation] != "n
2090: 6f 5f 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 22 7d  o_optimization"}
20a0: 20 7b 0a 64 6f 5f 74 65 73 74 20 77 68 65 72 65   {.do_test where
20b0: 38 2d 33 2e 32 33 20 7b 0a 20 20 65 78 65 63 73  8-3.23 {.  execs
20c0: 71 6c 5f 73 74 61 74 75 73 20 7b 0a 20 20 20 20  ql_status {.    
20d0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 28 28  SELECT * FROM ((
20e0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32  SELECT * FROM t2
20f0: 29 29 20 41 53 20 74 33 3b 0a 20 20 7d 0a 7d 20  )) AS t3;.  }.} 
2100: 7b 31 20 7b 7d 20 49 20 32 20 66 6f 75 72 20 49  {1 {} I 2 four I
2110: 56 20 33 20 7b 7d 20 49 58 20 34 20 73 69 78 74  V 3 {} IX 4 sixt
2120: 65 65 6e 20 58 56 49 20 35 20 7b 7d 20 58 58 56  een XVI 5 {} XXV
2130: 20 36 20 74 68 69 72 74 79 73 69 78 20 58 58 58   6 thirtysix XXX
2140: 56 49 20 37 20 66 6f 72 74 79 6e 69 6e 65 20 58  VI 7 fortynine X
2150: 4c 49 58 20 38 20 73 69 78 74 79 65 69 67 68 74  LIX 8 sixtyeight
2160: 20 4c 58 49 56 20 39 20 65 69 67 68 74 79 6f 6e   LXIV 9 eightyon
2170: 65 20 4c 58 58 58 49 58 20 31 30 20 7b 7d 20 43  e LXXXIX 10 {} C
2180: 20 39 20 30 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d   9 0}.}..#------
2190: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
21a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
21b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
21c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
21d0: 2d 0a 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e  -.# The followin
21e0: 67 20 74 65 73 74 73 20 2d 20 77 68 65 72 65 38  g tests - where8
21f0: 2d 34 2e 2a 20 2d 20 76 65 72 69 66 79 20 74 68  -4.* - verify th
2200: 61 74 20 61 64 64 69 6e 67 20 6f 72 20 72 65 6d  at adding or rem
2210: 6f 76 69 6e 67 20 0a 23 20 69 6e 64 65 78 65 73  oving .# indexes
2220: 20 64 6f 65 73 20 6e 6f 74 20 63 68 61 6e 67 65   does not change
2230: 20 74 68 65 20 72 65 73 75 6c 74 73 20 72 65 74   the results ret
2240: 75 72 6e 65 64 20 62 79 20 76 61 72 69 6f 75 73  urned by various
2250: 20 71 75 65 72 69 65 73 2e 0a 23 0a 64 6f 5f 74   queries..#.do_t
2260: 65 73 74 20 77 68 65 72 65 38 2d 34 2e 31 20 7b  est where8-4.1 {
2270: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
2280: 20 42 45 47 49 4e 3b 0a 20 20 20 20 43 52 45 41   BEGIN;.    CREA
2290: 54 45 20 54 41 42 4c 45 20 74 33 28 61 20 49 4e  TE TABLE t3(a IN
22a0: 54 45 47 45 52 2c 20 62 20 52 45 41 4c 2c 20 63  TEGER, b REAL, c
22b0: 20 54 45 58 54 29 3b 0a 20 20 20 20 43 52 45 41   TEXT);.    CREA
22c0: 54 45 20 54 41 42 4c 45 20 74 34 28 66 20 49 4e  TE TABLE t4(f IN
22d0: 54 45 47 45 52 2c 20 67 20 52 45 41 4c 2c 20 68  TEGER, g REAL, h
22e0: 20 54 45 58 54 29 3b 0a 20 20 20 20 49 4e 53 45   TEXT);.    INSE
22f0: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
2300: 53 28 27 68 69 6c 6c 73 27 2c 20 4e 55 4c 4c 2c  S('hills', NULL,
2310: 20 31 34 31 35 39 32 36 35 33 35 29 3b 0a 20 20   1415926535);.  
2320: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
2330: 20 56 41 4c 55 45 53 28 27 61 6e 64 27 2c 20 27   VALUES('and', '
2340: 6f 66 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 20  of', NULL);.    
2350: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2360: 41 4c 55 45 53 28 27 68 61 76 65 27 2c 20 27 74  ALUES('have', 't
2370: 6f 77 65 72 69 6e 67 27 2c 20 35 33 35 39 34 2e  owering', 53594.
2380: 30 38 31 32 38 29 3b 0a 20 20 20 20 49 4e 53 45  08128);.    INSE
2390: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
23a0: 53 28 4e 55 4c 4c 2c 20 34 35 2e 36 34 38 35 36  S(NULL, 45.64856
23b0: 36 39 32 2c 20 27 4e 6f 74 27 29 3b 0a 20 20 20  692, 'Not');.   
23c0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
23d0: 56 41 4c 55 45 53 28 27 73 61 6d 65 27 2c 20 35  VALUES('same', 5
23e0: 30 32 38 38 34 31 39 37 31 2c 20 4e 55 4c 4c 29  028841971, NULL)
23f0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
2400: 4f 20 74 33 20 56 41 4c 55 45 53 28 27 6f 6e 6c  O t3 VALUES('onl
2410: 6f 6f 6b 65 72 73 27 2c 20 27 69 6e 27 2c 20 38  ookers', 'in', 8
2420: 32 31 34 38 30 38 36 35 31 29 3b 0a 20 20 20 20  214808651);.    
2430: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2440: 41 4c 55 45 53 28 33 34 36 2e 30 33 34 38 36 31  ALUES(346.034861
2450: 30 2c 20 32 36 34 33 33 38 33 32 37 39 2c 20 4e  0, 2643383279, N
2460: 55 4c 4c 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ULL);.    INSERT
2470: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2480: 31 34 31 35 39 32 36 35 33 35 2c 20 27 6f 66 27  1415926535, 'of'
2490: 2c 20 27 61 72 65 27 29 3b 0a 20 20 20 20 49 4e  , 'are');.    IN
24a0: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
24b0: 55 45 53 28 4e 55 4c 4c 2c 20 30 2e 34 38 31 31  UES(NULL, 0.4811
24c0: 31 37 34 35 30 32 2c 20 27 73 6e 61 70 73 68 6f  174502, 'snapsho
24d0: 74 73 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ts');.    INSERT
24e0: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
24f0: 27 6f 76 65 72 27 2c 20 27 74 68 65 27 2c 20 38  'over', 'the', 8
2500: 36 32 38 30 33 34 38 32 35 29 3b 0a 20 20 20 20  628034825);.    
2510: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2520: 41 4c 55 45 53 28 38 36 32 38 30 33 34 38 32 35  ALUES(8628034825
2530: 2c 20 36 36 2e 35 39 33 33 34 34 36 31 2c 20 32  , 66.59334461, 2
2540: 38 34 37 35 36 34 2e 38 32 33 29 3b 0a 20 20 20  847564.823);.   
2550: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
2560: 56 41 4c 55 45 53 28 27 6f 6e 6c 6f 6f 6b 65 72  VALUES('onlooker
2570: 73 27 2c 20 27 73 61 6d 65 27 2c 20 27 61 6e 64  s', 'same', 'and
2580: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
2590: 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 4e 55  NTO t3 VALUES(NU
25a0: 4c 4c 2c 20 27 6c 69 67 68 74 27 2c 20 36 39 33  LL, 'light', 693
25b0: 39 39 33 37 35 31 30 29 3b 0a 20 20 20 20 49 4e  9937510);.    IN
25c0: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
25d0: 55 45 53 28 27 66 72 6f 6d 27 2c 20 27 74 68 65  UES('from', 'the
25e0: 69 72 27 2c 20 27 76 69 65 77 65 64 27 29 3b 0a  ir', 'viewed');.
25f0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
2600: 74 33 20 56 41 4c 55 45 53 28 27 66 72 6f 6d 27  t3 VALUES('from'
2610: 2c 20 27 41 6c 70 69 6e 65 27 2c 20 27 73 6e 61  , 'Alpine', 'sna
2620: 70 73 68 6f 74 73 27 29 3b 0a 20 20 20 20 49 4e  pshots');.    IN
2630: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
2640: 55 45 53 28 27 66 72 6f 6d 27 2c 20 27 73 6f 6d  UES('from', 'som
2650: 65 74 69 6d 65 73 27 2c 20 27 75 6e 61 6c 69 6b  etimes', 'unalik
2660: 65 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  e');.    INSERT 
2670: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 31  INTO t3 VALUES(1
2680: 33 33 39 2e 33 36 30 37 32 36 2c 20 27 6c 69 67  339.360726, 'lig
2690: 68 74 27 2c 20 27 68 61 76 65 27 29 3b 0a 20 20  ht', 'have');.  
26a0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
26b0: 20 56 41 4c 55 45 53 28 36 39 33 39 39 33 37 35   VALUES(69399375
26c0: 31 30 2c 20 33 32 38 32 33 30 36 36 34 37 2c 20  10, 3282306647, 
26d0: 27 6f 74 68 65 72 27 29 3b 0a 20 20 20 20 49 4e  'other');.    IN
26e0: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
26f0: 55 45 53 28 27 70 61 69 6e 74 69 6e 67 73 27 2c  UES('paintings',
2700: 20 38 36 32 38 30 33 34 38 32 35 2c 20 27 61 6c   8628034825, 'al
2710: 6c 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  l');.    INSERT 
2720: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27  INTO t3 VALUES('
2730: 70 61 69 6e 74 69 6e 67 73 27 2c 20 4e 55 4c 4c  paintings', NULL
2740: 2c 20 27 73 61 6d 65 27 29 3b 0a 20 20 20 20 49  , 'same');.    I
2750: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2760: 4c 55 45 53 28 27 41 6c 70 69 6e 65 27 2c 20 33  LUES('Alpine', 3
2770: 37 38 36 37 38 33 31 36 2e 35 2c 20 27 75 6e 61  78678316.5, 'una
2780: 6c 69 6b 65 27 29 3b 0a 20 20 20 20 49 4e 53 45  like');.    INSE
2790: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
27a0: 53 28 27 41 6c 70 69 6e 65 27 2c 20 4e 55 4c 4c  S('Alpine', NULL
27b0: 2c 20 27 73 61 6d 65 27 29 3b 0a 20 20 20 20 49  , 'same');.    I
27c0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
27d0: 4c 55 45 53 28 31 33 33 39 2e 33 36 30 37 32 36  LUES(1339.360726
27e0: 2c 20 32 38 34 37 35 36 34 2e 38 32 33 2c 20 27  , 2847564.823, '
27f0: 6f 76 65 72 27 29 3b 0a 20 20 20 20 49 4e 53 45  over');.    INSE
2800: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
2810: 53 28 27 76 69 6c 6c 61 67 65 73 27 2c 20 27 74  S('villages', 't
2820: 68 65 69 72 27 2c 20 27 68 61 76 65 27 29 3b 0a  heir', 'have');.
2830: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
2840: 74 33 20 56 41 4c 55 45 53 28 27 75 6e 61 6c 69  t3 VALUES('unali
2850: 6b 65 27 2c 20 27 72 65 6d 61 72 6b 61 62 6c 79  ke', 'remarkably
2860: 27 2c 20 27 69 6e 27 29 3b 0a 20 20 20 20 49 4e  ', 'in');.    IN
2870: 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c  SERT INTO t3 VAL
2880: 55 45 53 28 27 61 6e 64 27 2c 20 38 39 37 39 33  UES('and', 89793
2890: 32 33 38 34 36 2c 20 27 61 6e 64 27 29 3b 0a 20  23846, 'and');. 
28a0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
28b0: 33 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 20 31  3 VALUES(NULL, 1
28c0: 34 31 35 39 32 36 35 33 35 2c 20 27 61 6e 27 29  415926535, 'an')
28d0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
28e0: 4f 20 74 33 20 56 41 4c 55 45 53 28 32 37 31 2e  O t3 VALUES(271.
28f0: 32 30 31 39 30 39 31 2c 20 38 36 32 38 30 33 34  2019091, 8628034
2900: 38 32 35 2c 20 30 2e 34 38 31 31 31 37 34 35 30  825, 0.481117450
2910: 32 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  2);.    INSERT I
2920: 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 61  NTO t3 VALUES('a
2930: 6c 6c 27 2c 20 33 34 32 31 31 37 30 36 37 39 2c  ll', 3421170679,
2940: 20 27 74 68 65 27 29 3b 0a 20 20 20 20 49 4e 53   'the');.    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 4e 6f 74 27 2c 20 27 61 6e 64 27 2c  ES('Not', 'and',
2970: 20 31 34 31 35 39 32 36 35 33 35 29 3b 0a 20 20   1415926535);.  
2980: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33    INSERT INTO t3
2990: 20 56 41 4c 55 45 53 28 27 6f 66 27 2c 20 27 6f   VALUES('of', 'o
29a0: 74 68 65 72 27 2c 20 27 6c 69 67 68 74 27 29 3b  ther', 'light');
29b0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
29c0: 20 74 33 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c   t3 VALUES(NULL,
29d0: 20 27 74 6f 77 65 72 69 6e 67 27 2c 20 27 4e 6f   'towering', 'No
29e0: 74 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  t');.    INSERT 
29f0: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 33  INTO t3 VALUES(3
2a00: 34 36 2e 30 33 34 38 36 31 30 2c 20 4e 55 4c 4c  46.0348610, NULL
2a10: 2c 20 27 6f 74 68 65 72 27 29 3b 0a 20 20 20 20  , 'other');.    
2a20: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2a30: 41 4c 55 45 53 28 27 4e 6f 74 27 2c 20 33 37 38  ALUES('Not', 378
2a40: 36 37 38 33 31 36 2e 35 2c 20 4e 55 4c 4c 29 3b  678316.5, NULL);
2a50: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2a60: 20 74 33 20 56 41 4c 55 45 53 28 27 73 6e 61 70   t3 VALUES('snap
2a70: 73 68 6f 74 73 27 2c 20 38 36 32 38 30 33 34 38  shots', 86280348
2a80: 32 35 2c 20 27 6f 66 27 29 3b 0a 20 20 20 20 49  25, 'of');.    I
2a90: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2aa0: 4c 55 45 53 28 33 32 38 32 33 30 36 36 34 37 2c  LUES(3282306647,
2ab0: 20 32 37 31 2e 32 30 31 39 30 39 31 2c 20 27 61   271.2019091, 'a
2ac0: 6e 64 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  nd');.    INSERT
2ad0: 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28   INTO t3 VALUES(
2ae0: 35 30 2e 35 38 32 32 33 31 37 32 2c 20 33 37 38  50.58223172, 378
2af0: 36 37 38 33 31 36 2e 35 2c 20 35 30 32 38 38 34  678316.5, 502884
2b00: 31 39 37 31 29 3b 0a 20 20 20 20 49 4e 53 45 52  1971);.    INSER
2b10: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
2b20: 28 35 30 2e 35 38 32 32 33 31 37 32 2c 20 32 36  (50.58223172, 26
2b30: 34 33 33 38 33 32 37 39 2c 20 27 73 6e 61 70 73  43383279, 'snaps
2b40: 68 6f 74 73 27 29 3b 0a 20 20 20 20 49 4e 53 45  hots');.    INSE
2b50: 52 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45  RT INTO t3 VALUE
2b60: 53 28 27 77 72 69 74 69 6e 67 73 27 2c 20 38 39  S('writings', 89
2b70: 37 39 33 32 33 38 34 36 2c 20 38 39 37 39 33 32  79323846, 897932
2b80: 33 38 34 36 29 3b 0a 20 20 20 20 49 4e 53 45 52  3846);.    INSER
2b90: 54 20 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53  T INTO t3 VALUES
2ba0: 28 27 6f 6e 6c 6f 6f 6b 65 72 73 27 2c 20 27 68  ('onlookers', 'h
2bb0: 69 73 27 2c 20 27 69 6e 27 29 3b 0a 20 20 20 20  is', 'in');.    
2bc0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56  INSERT INTO t3 V
2bd0: 41 4c 55 45 53 28 27 75 6e 61 6c 69 6b 65 27 2c  ALUES('unalike',
2be0: 20 38 36 32 38 30 33 34 38 32 35 2c 20 31 33 33   8628034825, 133
2bf0: 39 2e 33 36 30 37 32 36 29 3b 0a 20 20 20 20 49  9.360726);.    I
2c00: 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20 56 41  NSERT INTO t3 VA
2c10: 4c 55 45 53 28 27 6f 66 27 2c 20 27 41 6c 70 69  LUES('of', 'Alpi
2c20: 6e 65 27 2c 20 27 61 6e 64 27 29 3b 0a 20 20 20  ne', 'and');.   
2c30: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
2c40: 56 41 4c 55 45 53 28 27 6f 6e 6c 6f 6f 6b 65 72  VALUES('onlooker
2c50: 73 27 2c 20 4e 55 4c 4c 2c 20 27 66 72 6f 6d 27  s', NULL, 'from'
2c60: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
2c70: 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 77 72  TO t3 VALUES('wr
2c80: 69 74 69 6e 67 73 27 2c 20 27 69 74 27 2c 20 31  itings', 'it', 1
2c90: 33 33 39 2e 33 36 30 37 32 36 29 3b 0a 20 20 20  339.360726);.   
2ca0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
2cb0: 56 41 4c 55 45 53 28 27 69 74 27 2c 20 27 61 6e  VALUES('it', 'an
2cc0: 64 27 2c 20 27 76 69 6c 6c 61 67 65 73 27 29 3b  d', 'villages');
2cd0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2ce0: 20 74 33 20 56 41 4c 55 45 53 28 27 61 6e 27 2c   t3 VALUES('an',
2cf0: 20 27 74 68 65 27 2c 20 27 76 69 6c 6c 61 67 65   'the', 'village
2d00: 73 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  s');.    INSERT 
2d10: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 38  INTO t3 VALUES(8
2d20: 32 31 34 38 30 38 36 35 31 2c 20 38 32 31 34 38  214808651, 82148
2d30: 30 38 36 35 31 2c 20 27 73 61 6d 65 27 29 3b 0a  08651, 'same');.
2d40: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
2d50: 74 33 20 56 41 4c 55 45 53 28 33 34 36 2e 30 33  t3 VALUES(346.03
2d60: 34 38 36 31 30 2c 20 27 6c 69 67 68 74 27 2c 20  48610, 'light', 
2d70: 31 34 31 35 39 32 36 35 33 35 29 3b 0a 20 20 20  1415926535);.   
2d80: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 33 20   INSERT INTO t3 
2d90: 56 41 4c 55 45 53 28 4e 55 4c 4c 2c 20 38 39 37  VALUES(NULL, 897
2da0: 39 33 32 33 38 34 36 2c 20 27 61 6e 64 27 29 3b  9323846, 'and');
2db0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
2dc0: 20 74 33 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c   t3 VALUES(NULL,
2dd0: 20 27 73 61 6d 65 27 2c 20 31 33 33 39 2e 33 36   'same', 1339.36
2de0: 30 37 32 36 29 3b 0a 20 20 20 20 49 4e 53 45 52  0726);.    INSER
2df0: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
2e00: 28 27 68 69 73 27 2c 20 27 66 72 6f 6d 27 2c 20  ('his', 'from', 
2e10: 27 61 6e 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  'an');.    INSER
2e20: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
2e30: 28 27 73 6e 61 70 73 68 6f 74 73 27 2c 20 27 6f  ('snapshots', 'o
2e40: 72 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 20 49  r', NULL);.    I
2e50: 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41  NSERT INTO t4 VA
2e60: 4c 55 45 53 28 27 41 6c 70 69 6e 65 27 2c 20 27  LUES('Alpine', '
2e70: 68 61 76 65 27 2c 20 27 69 74 27 29 3b 0a 20 20  have', 'it');.  
2e80: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
2e90: 20 56 41 4c 55 45 53 28 27 68 61 76 65 27 2c 20   VALUES('have', 
2ea0: 27 70 65 61 6b 27 2c 20 27 72 65 6d 61 72 6b 61  'peak', 'remarka
2eb0: 62 6c 79 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  bly');.    INSER
2ec0: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
2ed0: 28 27 68 69 6c 6c 73 27 2c 20 4e 55 4c 4c 2c 20  ('hills', NULL, 
2ee0: 27 4e 6f 74 27 29 3b 0a 20 20 20 20 49 4e 53 45  'Not');.    INSE
2ef0: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
2f00: 53 28 27 73 61 6d 65 27 2c 20 27 66 72 6f 6d 27  S('same', 'from'
2f10: 2c 20 32 36 34 33 33 38 33 32 37 39 29 3b 0a 20  , 2643383279);. 
2f20: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2f30: 34 20 56 41 4c 55 45 53 28 27 68 61 76 65 27 2c  4 VALUES('have',
2f40: 20 27 61 6e 67 6c 65 27 2c 20 38 36 32 38 30 33   'angle', 862803
2f50: 34 38 32 35 29 3b 0a 20 20 20 20 49 4e 53 45 52  4825);.    INSER
2f60: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
2f70: 28 27 73 6f 6d 65 74 69 6d 65 73 27 2c 20 27 69  ('sometimes', 'i
2f80: 74 27 2c 20 32 38 34 37 35 36 34 2e 38 32 33 29  t', 2847564.823)
2f90: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
2fa0: 4f 20 74 34 20 56 41 4c 55 45 53 28 30 39 33 38  O t4 VALUES(0938
2fb0: 34 34 36 30 39 35 2c 20 27 70 65 61 6b 27 2c 20  446095, 'peak', 
2fc0: 27 6f 66 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  'of');.    INSER
2fd0: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
2fe0: 28 38 36 32 38 30 33 34 38 32 35 2c 20 27 61 6e  (8628034825, 'an
2ff0: 64 27 2c 20 27 73 61 6d 65 27 29 3b 0a 20 20 20  d', 'same');.   
3000: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20   INSERT INTO t4 
3010: 56 41 4c 55 45 53 28 27 61 6e 64 27 2c 20 32 37  VALUES('and', 27
3020: 31 2e 32 30 31 39 30 39 31 2c 20 27 74 68 65 69  1.2019091, 'thei
3030: 72 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  r');.    INSERT 
3040: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
3050: 74 68 65 27 2c 20 27 6f 66 27 2c 20 27 72 65 6d  the', 'of', 'rem
3060: 61 72 6b 61 62 6c 79 27 29 3b 0a 20 20 20 20 49  arkably');.    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 61 6e 64 27 2c 20 33 34 32 31  LUES('and', 3421
3090: 31 37 30 36 37 39 2c 20 31 34 31 35 39 32 36 35  170679, 14159265
30a0: 33 35 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  35);.    INSERT 
30b0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
30c0: 61 6e 64 27 2c 20 27 69 6e 27 2c 20 27 61 6c 6c  and', 'in', 'all
30d0: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
30e0: 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 33 37  NTO t4 VALUES(37
30f0: 38 36 37 38 33 31 36 2e 35 2c 20 30 2e 34 38 31  8678316.5, 0.481
3100: 31 31 37 34 35 30 32 2c 20 27 73 6e 61 70 73 68  1174502, 'snapsh
3110: 6f 74 73 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  ots');.    INSER
3120: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
3130: 28 27 69 74 27 2c 20 27 61 72 65 27 2c 20 27 68  ('it', 'are', 'h
3140: 61 76 65 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  ave');.    INSER
3150: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
3160: 28 27 61 6e 67 6c 65 27 2c 20 27 73 6e 61 70 73  ('angle', 'snaps
3170: 68 6f 74 73 27 2c 20 33 37 38 36 37 38 33 31 36  hots', 378678316
3180: 2e 35 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  .5);.    INSERT 
3190: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
31a0: 66 72 6f 6d 27 2c 20 31 34 31 35 39 32 36 35 33  from', 141592653
31b0: 35 2c 20 38 36 32 38 30 33 34 38 32 35 29 3b 0a  5, 8628034825);.
31c0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
31d0: 74 34 20 56 41 4c 55 45 53 28 27 73 6e 61 70 73  t4 VALUES('snaps
31e0: 68 6f 74 73 27 2c 20 27 61 6e 67 6c 65 27 2c 20  hots', 'angle', 
31f0: 27 68 61 76 65 27 29 3b 0a 20 20 20 20 49 4e 53  'have');.    INS
3200: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
3210: 45 53 28 33 34 32 31 31 37 30 36 37 39 2c 20 30  ES(3421170679, 0
3220: 39 33 38 34 34 36 30 39 35 2c 20 27 4e 6f 74 27  938446095, 'Not'
3230: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
3240: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 70 65  TO t4 VALUES('pe
3250: 61 6b 27 2c 20 4e 55 4c 4c 2c 20 30 2e 34 38 31  ak', NULL, 0.481
3260: 31 31 37 34 35 30 32 29 3b 0a 20 20 20 20 49 4e  1174502);.    IN
3270: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
3280: 55 45 53 28 27 73 61 6d 65 27 2c 20 27 68 61 76  UES('same', 'hav
3290: 65 27 2c 20 27 41 6c 70 69 6e 65 27 29 3b 0a 20  e', 'Alpine');. 
32a0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
32b0: 34 20 56 41 4c 55 45 53 28 32 37 31 2e 32 30 31  4 VALUES(271.201
32c0: 39 30 39 31 2c 20 36 36 2e 35 39 33 33 34 34 36  9091, 66.5933446
32d0: 31 2c 20 30 39 33 38 34 34 36 30 39 35 29 3b 0a  1, 0938446095);.
32e0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
32f0: 74 34 20 56 41 4c 55 45 53 28 38 39 37 39 33 32  t4 VALUES(897932
3300: 33 38 34 36 2c 20 27 68 69 73 27 2c 20 27 61 6e  3846, 'his', 'an
3310: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
3320: 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 4e 55  NTO t4 VALUES(NU
3330: 4c 4c 2c 20 27 61 6e 64 27 2c 20 33 32 38 32 33  LL, 'and', 32823
3340: 30 36 36 34 37 29 3b 0a 20 20 20 20 49 4e 53 45  06647);.    INSE
3350: 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45  RT INTO t4 VALUE
3360: 53 28 27 72 65 6d 61 72 6b 61 62 6c 79 27 2c 20  S('remarkably', 
3370: 4e 55 4c 4c 2c 20 27 4e 6f 74 27 29 3b 0a 20 20  NULL, 'Not');.  
3380: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
3390: 20 56 41 4c 55 45 53 28 27 76 69 6c 6c 61 67 65   VALUES('village
33a0: 73 27 2c 20 34 35 34 33 2e 32 36 36 34 38 32 2c  s', 4543.266482,
33b0: 20 27 68 69 73 27 29 3b 0a 20 20 20 20 49 4e 53   'his');.    INS
33c0: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
33d0: 45 53 28 32 36 34 33 33 38 33 32 37 39 2c 20 27  ES(2643383279, '
33e0: 70 61 69 6e 74 69 6e 67 73 27 2c 20 27 6f 6e 6c  paintings', 'onl
33f0: 6f 6f 6b 65 72 73 27 29 3b 0a 20 20 20 20 49 4e  ookers');.    IN
3400: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
3410: 55 45 53 28 31 33 33 39 2e 33 36 30 37 32 36 2c  UES(1339.360726,
3420: 20 27 6f 66 27 2c 20 27 74 68 65 27 29 3b 0a 20   'of', 'the');. 
3430: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3440: 34 20 56 41 4c 55 45 53 28 27 70 65 61 6b 27 2c  4 VALUES('peak',
3450: 20 27 6f 74 68 65 72 27 2c 20 27 70 65 61 6b 27   'other', 'peak'
3460: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
3470: 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27 69 74  TO t4 VALUES('it
3480: 27 2c 20 27 6f 72 27 2c 20 38 39 37 39 33 32 33  ', 'or', 8979323
3490: 38 34 36 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  846);.    INSERT
34a0: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
34b0: 27 6f 6e 6c 6f 6f 6b 65 72 73 27 2c 20 27 4e 6f  'onlookers', 'No
34c0: 74 27 2c 20 27 74 6f 77 65 72 69 6e 67 27 29 3b  t', 'towering');
34d0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
34e0: 20 74 34 20 56 41 4c 55 45 53 28 4e 55 4c 4c 2c   t4 VALUES(NULL,
34f0: 20 27 70 65 61 6b 27 2c 20 27 4e 6f 74 27 29 3b   'peak', 'Not');
3500: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3510: 20 74 34 20 56 41 4c 55 45 53 28 27 6f 66 27 2c   t4 VALUES('of',
3520: 20 27 68 61 76 65 27 2c 20 36 39 33 39 39 33 37   'have', 6939937
3530: 35 31 30 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  510);.    INSERT
3540: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
3550: 27 6c 69 67 68 74 27 2c 20 27 68 69 6c 6c 73 27  'light', 'hills'
3560: 2c 20 30 2e 34 38 31 31 31 37 34 35 30 32 29 3b  , 0.4811174502);
3570: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3580: 20 74 34 20 56 41 4c 55 45 53 28 35 30 32 38 38   t4 VALUES(50288
3590: 34 31 39 37 31 2c 20 27 4e 6f 74 27 2c 20 27 69  41971, 'Not', 'i
35a0: 74 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  t');.    INSERT 
35b0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
35c0: 61 6e 64 27 2c 20 27 4e 6f 74 27 2c 20 4e 55 4c  and', 'Not', NUL
35d0: 4c 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  L);.    INSERT I
35e0: 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 33 34  NTO t4 VALUES(34
35f0: 36 2e 30 33 34 38 36 31 30 2c 20 27 76 69 6c 6c  6.0348610, 'vill
3600: 61 67 65 73 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20  ages', NULL);.  
3610: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34    INSERT INTO t4
3620: 20 56 41 4c 55 45 53 28 38 39 37 39 33 32 33 38   VALUES(89793238
3630: 34 36 2c 20 4e 55 4c 4c 2c 20 36 39 33 39 39 33  46, NULL, 693993
3640: 37 35 31 30 29 3b 0a 20 20 20 20 49 4e 53 45 52  7510);.    INSER
3650: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
3660: 28 27 61 6e 27 2c 20 27 6c 69 67 68 74 27 2c 20  ('an', 'light', 
3670: 27 70 65 61 6b 27 29 3b 0a 20 20 20 20 49 4e 53  'peak');.    INS
3680: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
3690: 45 53 28 35 30 32 38 38 34 31 39 37 31 2c 20 36  ES(5028841971, 6
36a0: 39 33 39 39 33 37 35 31 30 2c 20 27 6c 69 67 68  939937510, 'ligh
36b0: 74 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  t');.    INSERT 
36c0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
36d0: 73 6f 6d 65 74 69 6d 65 73 27 2c 20 27 70 65 61  sometimes', 'pea
36e0: 6b 27 2c 20 27 70 65 61 6b 27 29 3b 0a 20 20 20  k', 'peak');.   
36f0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20   INSERT INTO t4 
3700: 56 41 4c 55 45 53 28 33 37 38 36 37 38 33 31 36  VALUES(378678316
3710: 2e 35 2c 20 35 30 32 38 38 34 31 39 37 31 2c 20  .5, 5028841971, 
3720: 27 61 6e 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  'an');.    INSER
3730: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
3740: 28 33 37 38 36 37 38 33 31 36 2e 35 2c 20 27 68  (378678316.5, 'h
3750: 69 73 27 2c 20 27 41 6c 70 69 6e 65 27 29 3b 0a  is', 'Alpine');.
3760: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
3770: 74 34 20 56 41 4c 55 45 53 28 27 66 72 6f 6d 27  t4 VALUES('from'
3780: 2c 20 27 6f 66 27 2c 20 27 61 6c 6c 27 29 3b 0a  , 'of', 'all');.
3790: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
37a0: 74 34 20 56 41 4c 55 45 53 28 30 39 33 38 34 34  t4 VALUES(093844
37b0: 36 30 39 35 2c 20 27 73 61 6d 65 27 2c 20 4e 55  6095, 'same', NU
37c0: 4c 4c 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  LL);.    INSERT 
37d0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 30  INTO t4 VALUES(0
37e0: 39 33 38 34 34 36 30 39 35 2c 20 27 41 6c 70 69  938446095, 'Alpi
37f0: 6e 65 27 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 20  ne', NULL);.    
3800: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56  INSERT INTO t4 V
3810: 41 4c 55 45 53 28 27 68 69 73 27 2c 20 27 6f 66  ALUES('his', 'of
3820: 27 2c 20 33 37 38 36 37 38 33 31 36 2e 35 29 3b  ', 378678316.5);
3830: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
3840: 20 74 34 20 56 41 4c 55 45 53 28 32 37 31 2e 32   t4 VALUES(271.2
3850: 30 31 39 30 39 31 2c 20 27 76 69 65 77 65 64 27  019091, 'viewed'
3860: 2c 20 33 32 38 32 33 30 36 36 34 37 29 3b 0a 20  , 3282306647);. 
3870: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3880: 34 20 56 41 4c 55 45 53 28 27 68 69 6c 6c 73 27  4 VALUES('hills'
3890: 2c 20 27 61 6c 6c 27 2c 20 27 70 65 61 6b 27 29  , 'all', 'peak')
38a0: 3b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42  ;.    CREATE TAB
38b0: 4c 45 20 74 35 28 73 29 3b 0a 20 20 20 20 49 4e  LE t5(s);.    IN
38c0: 53 45 52 54 20 49 4e 54 4f 20 74 35 20 56 41 4c  SERT INTO t5 VAL
38d0: 55 45 53 28 27 74 61 62 2d 74 35 27 29 3b 0a 20  UES('tab-t5');. 
38e0: 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20     CREATE TABLE 
38f0: 74 36 28 74 29 3b 0a 20 20 20 20 49 4e 53 45 52  t6(t);.    INSER
3900: 54 20 49 4e 54 4f 20 74 36 20 56 41 4c 55 45 53  T INTO t6 VALUES
3910: 28 31 32 33 34 35 36 29 3b 0a 20 20 20 20 43 4f  (123456);.    CO
3920: 4d 4d 49 54 3b 0a 20 20 7d 0a 7d 20 7b 7d 0a 0a  MMIT;.  }.} {}..
3930: 63 61 74 63 68 20 7b 75 6e 73 65 74 20 72 65 73  catch {unset res
3940: 75 6c 74 73 7d 0a 63 61 74 63 68 20 7b 75 6e 73  ults}.catch {uns
3950: 65 74 20 41 7d 0a 63 61 74 63 68 20 7b 75 6e 73  et A}.catch {uns
3960: 65 74 20 42 7d 0a 0a 73 65 74 20 41 20 32 0a 66  et B}..set A 2.f
3970: 6f 72 65 61 63 68 20 69 64 78 73 71 6c 20 7b 0a  oreach idxsql {.
3980: 20 20 7b 20 0a 20 20 20 20 2f 2a 20 4e 6f 20 69    { .    /* No i
3990: 6e 64 65 78 65 73 20 2a 2f 20 0a 20 20 7d 20 7b  ndexes */ .  } {
39a0: 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45  .    CREATE INDE
39b0: 58 20 69 35 20 4f 4e 20 74 33 28 61 29 3b 0a 20  X i5 ON t3(a);. 
39c0: 20 7d 20 7b 0a 20 20 20 20 43 52 45 41 54 45 20   } {.    CREATE 
39d0: 49 4e 44 45 58 20 69 35 20 4f 4e 20 74 33 28 61  INDEX i5 ON t3(a
39e0: 2c 20 62 29 3b 0a 20 20 20 20 43 52 45 41 54 45  , b);.    CREATE
39f0: 20 49 4e 44 45 58 20 69 36 20 4f 4e 20 74 34 28   INDEX i6 ON t4(
3a00: 66 29 3b 0a 20 20 7d 20 7b 0a 20 20 20 20 43 52  f);.  } {.    CR
3a10: 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45  EATE UNIQUE INDE
3a20: 58 20 69 35 20 4f 4e 20 74 33 28 61 2c 20 62 29  X i5 ON t3(a, b)
3a30: 3b 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e 44  ;.    CREATE IND
3a40: 45 58 20 69 37 20 4f 4e 20 74 33 28 63 29 3b 0a  EX i7 ON t3(c);.
3a50: 20 20 20 20 43 52 45 41 54 45 20 49 4e 44 45 58      CREATE INDEX
3a60: 20 69 36 20 4f 4e 20 74 34 28 66 29 3b 0a 20 20   i6 ON t4(f);.  
3a70: 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20 69    CREATE INDEX i
3a80: 38 20 4f 4e 20 74 34 28 68 29 3b 0a 20 20 7d 20  8 ON t4(h);.  } 
3a90: 7b 0a 20 20 20 20 43 52 45 41 54 45 20 49 4e 44  {.    CREATE IND
3aa0: 45 58 20 69 35 20 4f 4e 20 74 33 28 61 2c 20 62  EX i5 ON t3(a, b
3ab0: 2c 20 63 29 3b 0a 20 20 20 20 43 52 45 41 54 45  , c);.    CREATE
3ac0: 20 49 4e 44 45 58 20 69 36 20 4f 4e 20 74 34 28   INDEX i6 ON t4(
3ad0: 66 2c 20 67 2c 20 68 29 3b 0a 20 20 20 20 43 52  f, g, h);.    CR
3ae0: 45 41 54 45 20 49 4e 44 45 58 20 69 37 20 4f 4e  EATE INDEX i7 ON
3af0: 20 74 33 28 63 2c 20 62 2c 20 61 29 3b 0a 20 20   t3(c, b, a);.  
3b00: 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20 69    CREATE INDEX i
3b10: 38 20 4f 4e 20 74 34 28 68 2c 20 67 2c 20 66 29  8 ON t4(h, g, f)
3b20: 3b 0a 20 20 7d 0a 7d 20 7b 0a 0a 20 20 65 78 65  ;.  }.} {..  exe
3b30: 63 73 71 6c 20 7b 0a 20 20 20 20 44 52 4f 50 20  csql {.    DROP 
3b40: 49 4e 44 45 58 20 49 46 20 45 58 49 53 54 53 20  INDEX IF EXISTS 
3b50: 69 35 3b 0a 20 20 20 20 44 52 4f 50 20 49 4e 44  i5;.    DROP IND
3b60: 45 58 20 49 46 20 45 58 49 53 54 53 20 69 36 3b  EX IF EXISTS i6;
3b70: 0a 20 20 20 20 44 52 4f 50 20 49 4e 44 45 58 20  .    DROP INDEX 
3b80: 49 46 20 45 58 49 53 54 53 20 69 37 3b 0a 20 20  IF EXISTS i7;.  
3b90: 20 20 44 52 4f 50 20 49 4e 44 45 58 20 49 46 20    DROP INDEX IF 
3ba0: 45 58 49 53 54 53 20 69 38 3b 0a 20 20 7d 0a 20  EXISTS i8;.  }. 
3bb0: 20 65 78 65 63 73 71 6c 20 24 69 64 78 73 71 6c   execsql $idxsql
3bc0: 0a 0a 20 20 66 6f 72 65 61 63 68 20 7b 42 20 73  ..  foreach {B s
3bd0: 71 6c 7d 20 7b 0a 20 31 20 20 7b 20 53 45 4c 45  ql} {. 1  { SELE
3be0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
3bf0: 52 45 20 63 20 4c 49 4b 45 20 62 20 7d 0a 20 32  RE c LIKE b }. 2
3c00: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
3c10: 4d 20 74 33 20 57 48 45 52 45 20 63 7c 7c 27 27  M t3 WHERE c||''
3c20: 20 4c 49 4b 45 20 27 74 68 65 25 27 20 7d 0a 20   LIKE 'the%' }. 
3c30: 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  3  { SELECT * FR
3c40: 4f 4d 20 74 33 20 57 48 45 52 45 20 72 6f 77 69  OM t3 WHERE rowi
3c50: 64 20 4c 49 4b 45 20 27 31 32 25 27 20 7d 0a 20  d LIKE '12%' }. 
3c60: 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  4  { SELECT * FR
3c70: 4f 4d 20 74 33 20 57 48 45 52 45 20 2b 63 20 4c  OM t3 WHERE +c L
3c80: 49 4b 45 20 27 74 68 65 25 27 20 7d 0a 20 35 20  IKE 'the%' }. 5 
3c90: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
3ca0: 20 74 33 20 57 48 45 52 45 20 63 20 4c 49 4b 45   t3 WHERE c LIKE
3cb0: 20 27 74 68 65 25 27 20 7d 0a 20 36 20 20 7b 20   'the%' }. 6  { 
3cc0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
3cd0: 20 57 48 45 52 45 20 63 20 47 4c 4f 42 20 27 2a   WHERE c GLOB '*
3ce0: 6c 6c 6f 27 20 7d 0a 0a 20 37 20 20 7b 20 53 45  llo' }.. 7  { SE
3cf0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
3d00: 48 45 52 45 20 61 20 3d 20 27 61 6e 67 6c 65 27  HERE a = 'angle'
3d10: 20 7d 0a 20 38 20 20 7b 20 53 45 4c 45 43 54 20   }. 8  { SELECT 
3d20: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
3d30: 61 20 3d 20 27 69 74 27 20 4f 52 20 62 20 3d 20  a = 'it' OR b = 
3d40: 36 39 33 39 39 33 37 35 31 30 20 7d 0a 20 39 20  6939937510 }. 9 
3d50: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
3d60: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61 20   t3, t4 WHERE a 
3d70: 3d 20 27 70 61 69 6e 74 69 6e 67 27 20 4f 52 20  = 'painting' OR 
3d80: 61 20 3d 20 27 61 72 65 27 20 4f 52 20 61 20 3d  a = 'are' OR a =
3d90: 20 66 20 7d 0a 31 30 20 20 7b 20 53 45 4c 45 43   f }.10  { SELEC
3da0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
3db0: 57 48 45 52 45 20 61 20 3d 20 27 61 6c 6c 27 20  WHERE a = 'all' 
3dc0: 4f 52 20 61 20 3d 20 27 61 6e 64 27 20 4f 52 20  OR a = 'and' OR 
3dd0: 61 20 3d 20 68 20 7d 0a 31 31 20 20 7b 20 53 45  a = h }.11  { SE
3de0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
3df0: 74 34 20 57 48 45 52 45 20 61 20 3c 20 27 6f 66  t4 WHERE a < 'of
3e00: 27 20 4f 52 20 62 20 3e 20 33 34 36 20 41 4e 44  ' OR b > 346 AND
3e10: 20 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 32 20   c IS NULL }.12 
3e20: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
3e30: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 27 74   t3, t4 WHERE 't
3e40: 68 65 27 20 3e 20 61 20 4f 52 20 62 20 3e 20 27  he' > a OR b > '
3e50: 68 61 76 65 27 20 41 4e 44 20 63 20 3d 20 31 34  have' AND c = 14
3e60: 31 35 39 32 36 35 33 35 20 7d 0a 0a 31 33 20 20  15926535 }..13  
3e70: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
3e80: 74 33 20 57 48 45 52 45 20 61 20 42 45 54 57 45  t3 WHERE a BETWE
3e90: 45 4e 20 27 6f 6e 65 27 20 41 4e 44 20 27 74 77  EN 'one' AND 'tw
3ea0: 6f 27 20 4f 52 20 61 20 3d 20 33 34 32 31 31 37  o' OR a = 342117
3eb0: 30 36 37 39 20 7d 0a 31 34 20 20 7b 20 53 45 4c  0679 }.14  { SEL
3ec0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
3ed0: 45 52 45 20 61 20 42 45 54 57 45 45 4e 20 27 6f  ERE a BETWEEN 'o
3ee0: 6e 65 27 20 41 4e 44 20 27 74 77 6f 27 20 4f 52  ne' AND 'two' OR
3ef0: 20 61 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 35 20   a IS NULL }.15 
3f00: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
3f10: 20 74 33 20 57 48 45 52 45 20 63 20 3e 20 27 6f   t3 WHERE c > 'o
3f20: 6e 65 27 20 4f 52 20 63 20 3e 3d 20 27 6f 6e 65  ne' OR c >= 'one
3f30: 27 20 4f 52 20 63 20 4c 49 4b 45 20 27 6f 6e 65  ' OR c LIKE 'one
3f40: 25 27 20 7d 0a 31 36 20 20 7b 20 53 45 4c 45 43  %' }.16  { SELEC
3f50: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
3f60: 45 20 63 20 3e 20 27 6f 6e 65 27 20 4f 52 20 63  E c > 'one' OR c
3f70: 20 3d 20 63 20 4f 52 20 63 20 3d 20 61 20 7d 0a   = c OR c = a }.
3f80: 31 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  17  { SELECT * F
3f90: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 49  ROM t3 WHERE c I
3fa0: 53 20 4e 55 4c 4c 20 4f 52 20 61 20 3e 3d 20 27  S NULL OR a >= '
3fb0: 70 65 61 6b 27 20 7d 0a 31 38 20 20 7b 20 53 45  peak' }.18  { SE
3fc0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
3fd0: 48 45 52 45 20 63 20 49 4e 20 28 27 6f 74 68 65  HERE c IN ('othe
3fe0: 72 27 2c 20 27 61 6c 6c 27 2c 20 27 73 6e 61 70  r', 'all', 'snap
3ff0: 73 68 6f 74 73 27 29 20 4f 52 20 61 3e 31 20 7d  shots') OR a>1 }
4000: 0a 31 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .19  { SELECT * 
4010: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
4020: 49 4e 20 28 27 6f 74 68 65 72 27 2c 20 27 61 6c  IN ('other', 'al
4030: 6c 27 2c 20 27 73 6e 61 70 73 68 6f 74 73 27 29  l', 'snapshots')
4040: 20 41 4e 44 20 61 3e 31 20 7d 0a 32 30 20 20 7b   AND a>1 }.20  {
4050: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4060: 33 20 57 48 45 52 45 20 63 20 49 53 20 4e 55 4c  3 WHERE c IS NUL
4070: 4c 20 41 4e 44 20 61 3e 27 6f 6e 65 27 20 7d 0a  L AND a>'one' }.
4080: 32 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  21  { SELECT * F
4090: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 49  ROM t3 WHERE c I
40a0: 53 20 4e 55 4c 4c 20 4f 52 20 61 3e 27 6f 6e 65  S NULL OR a>'one
40b0: 27 20 7d 0a 32 32 20 20 7b 20 53 45 4c 45 43 54  ' }.22  { SELECT
40c0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
40d0: 20 62 20 3d 20 62 20 41 4e 44 20 61 20 3e 20 27   b = b AND a > '
40e0: 61 72 65 27 20 7d 0a 32 33 20 20 7b 20 53 45 4c  are' }.23  { SEL
40f0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4100: 45 52 45 20 63 20 3c 3d 20 62 20 4f 52 20 62 20  ERE c <= b OR b 
4110: 3c 20 27 73 6e 61 70 73 68 6f 74 73 27 20 7d 0a  < 'snapshots' }.
4120: 32 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  24  { SELECT * F
4130: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27 6f 6e  ROM t3 WHERE 'on
4140: 6c 6f 6f 6b 65 72 73 27 20 3e 3d 20 63 20 41 4e  lookers' >= c AN
4150: 44 20 61 20 3c 3d 20 62 20 4f 52 20 62 20 3d 20  D a <= b OR b = 
4160: 27 61 6e 67 6c 65 27 20 7d 0a 32 35 20 20 7b 20  'angle' }.25  { 
4170: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4180: 20 57 48 45 52 45 20 62 20 3d 20 27 66 72 6f 6d   WHERE b = 'from
4190: 27 20 7d 0a 32 36 20 20 7b 20 53 45 4c 45 43 54  ' }.26  { SELECT
41a0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
41b0: 20 62 20 3d 20 34 35 34 33 2e 32 36 36 34 38 32   b = 4543.266482
41c0: 20 7d 0a 32 37 20 20 7b 20 53 45 4c 45 43 54 20   }.27  { SELECT 
41d0: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
41e0: 63 20 3c 20 33 32 38 32 33 30 36 36 34 37 20 7d  c < 3282306647 }
41f0: 0a 32 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .28  { SELECT * 
4200: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
4210: 49 53 20 4e 55 4c 4c 20 41 4e 44 20 62 20 3e 3d  IS NULL AND b >=
4220: 20 63 20 7d 0a 32 39 20 20 7b 20 53 45 4c 45 43   c }.29  { SELEC
4230: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
4240: 45 20 62 20 3e 20 30 2e 34 38 31 31 31 37 34 35  E b > 0.48111745
4250: 30 32 20 41 4e 44 20 63 20 3d 20 27 6f 74 68 65  02 AND c = 'othe
4260: 72 27 20 41 4e 44 20 27 76 69 65 77 65 64 27 20  r' AND 'viewed' 
4270: 3e 20 61 20 7d 0a 33 30 20 20 7b 20 53 45 4c 45  > a }.30  { SELE
4280: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4290: 52 45 20 63 20 3d 20 27 70 65 61 6b 27 20 7d 0a  RE c = 'peak' }.
42a0: 33 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  31  { SELECT * F
42b0: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 3c  ROM t3 WHERE c <
42c0: 20 35 33 35 39 34 2e 30 38 31 32 38 20 4f 52 20   53594.08128 OR 
42d0: 63 20 3c 3d 20 62 20 7d 0a 33 32 20 20 7b 20 53  c <= b }.32  { S
42e0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
42f0: 57 48 45 52 45 20 27 77 72 69 74 69 6e 67 73 27  WHERE 'writings'
4300: 20 3c 3d 20 62 20 7d 0a 33 33 20 20 7b 20 53 45   <= b }.33  { SE
4310: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4320: 48 45 52 45 20 32 36 34 33 33 38 33 32 37 39 20  HERE 2643383279 
4330: 3d 20 62 20 4f 52 20 63 20 3c 20 62 20 41 4e 44  = b OR c < b AND
4340: 20 62 20 3c 3d 20 33 32 38 32 33 30 36 36 34 37   b <= 3282306647
4350: 20 7d 0a 33 34 20 20 7b 20 53 45 4c 45 43 54 20   }.34  { SELECT 
4360: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4370: 61 20 49 53 20 4e 55 4c 4c 20 7d 0a 33 35 20 20  a IS NULL }.35  
4380: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4390: 74 33 20 57 48 45 52 45 20 27 77 72 69 74 69 6e  t3 WHERE 'writin
43a0: 67 73 27 20 3d 20 61 20 4f 52 20 62 20 3d 20 33  gs' = a OR b = 3
43b0: 37 38 36 37 38 33 31 36 2e 35 20 7d 0a 33 36 20  78678316.5 }.36 
43c0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
43d0: 20 74 33 20 57 48 45 52 45 20 27 61 6e 64 27 20   t3 WHERE 'and' 
43e0: 3e 3d 20 63 20 7d 0a 33 37 20 20 7b 20 53 45 4c  >= c }.37  { SEL
43f0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4400: 45 52 45 20 63 20 3c 20 27 66 72 6f 6d 27 20 7d  ERE c < 'from' }
4410: 0a 33 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .38  { SELECT * 
4420: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27 68  FROM t3 WHERE 'h
4430: 69 73 27 20 3c 20 63 20 4f 52 20 62 20 3c 20 62  is' < c OR b < b
4440: 20 7d 0a 33 39 20 20 7b 20 53 45 4c 45 43 54 20   }.39  { SELECT 
4450: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4460: 35 33 35 39 34 2e 30 38 31 32 38 20 3d 20 62 20  53594.08128 = b 
4470: 41 4e 44 20 63 20 3e 3d 20 62 20 7d 0a 34 30 20  AND c >= b }.40 
4480: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4490: 20 74 33 20 57 48 45 52 45 20 27 75 6e 61 6c 69   t3 WHERE 'unali
44a0: 6b 65 27 20 3c 20 63 20 41 4e 44 20 27 61 72 65  ke' < c AND 'are
44b0: 27 20 3e 3d 20 63 20 41 4e 44 20 61 20 3c 3d 20  ' >= c AND a <= 
44c0: 62 20 7d 0a 34 31 20 20 7b 20 53 45 4c 45 43 54  b }.41  { SELECT
44d0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
44e0: 20 62 20 3e 3d 20 34 35 34 33 2e 32 36 36 34 38   b >= 4543.26648
44f0: 32 20 4f 52 20 27 41 6c 70 69 6e 65 27 20 3e 20  2 OR 'Alpine' > 
4500: 61 20 4f 52 20 32 37 31 2e 32 30 31 39 30 39 31  a OR 271.2019091
4510: 20 3c 3d 20 61 20 7d 0a 34 32 20 20 7b 20 53 45   <= a }.42  { SE
4520: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4530: 48 45 52 45 20 62 20 3d 20 63 20 7d 0a 34 33 20  HERE b = c }.43 
4540: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
4550: 20 74 33 20 57 48 45 52 45 20 63 20 3e 20 61 20   t3 WHERE c > a 
4560: 41 4e 44 20 62 20 3c 20 27 61 6c 6c 27 20 7d 0a  AND b < 'all' }.
4570: 34 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  44  { SELECT * F
4580: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20 42  ROM t3 WHERE c B
4590: 45 54 57 45 45 4e 20 27 68 69 6c 6c 73 27 20 41  ETWEEN 'hills' A
45a0: 4e 44 20 27 73 6e 61 70 73 68 6f 74 73 27 20 41  ND 'snapshots' A
45b0: 4e 44 20 63 20 3c 3d 20 27 74 68 65 27 20 4f 52  ND c <= 'the' OR
45c0: 20 63 20 3d 20 61 20 7d 0a 34 35 20 20 7b 20 53   c = a }.45  { S
45d0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
45e0: 57 48 45 52 45 20 62 20 3e 20 63 20 41 4e 44 20  WHERE b > c AND 
45f0: 63 20 3e 3d 20 27 68 69 6c 6c 73 27 20 7d 0a 34  c >= 'hills' }.4
4600: 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  6  { SELECT * FR
4610: 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20 3e 20  OM t3 WHERE b > 
4620: 27 6f 72 27 20 4f 52 20 61 20 3c 3d 20 27 68 69  'or' OR a <= 'hi
4630: 6c 6c 73 27 20 4f 52 20 63 20 49 53 20 4e 55 4c  lls' OR c IS NUL
4640: 4c 20 7d 0a 34 37 20 20 7b 20 53 45 4c 45 43 54  L }.47  { SELECT
4650: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
4660: 20 63 20 3e 20 62 20 4f 52 20 62 20 42 45 54 57   c > b OR b BETW
4670: 45 45 4e 20 31 33 33 39 2e 33 36 30 37 32 36 20  EEN 1339.360726 
4680: 41 4e 44 20 27 6f 6e 6c 6f 6f 6b 65 72 73 27 20  AND 'onlookers' 
4690: 4f 52 20 31 34 31 35 39 32 36 35 33 35 20 3e 3d  OR 1415926535 >=
46a0: 20 62 20 7d 0a 34 38 20 20 7b 20 53 45 4c 45 43   b }.48  { SELEC
46b0: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
46c0: 45 20 61 20 49 53 20 4e 55 4c 4c 20 7d 0a 34 39  E a IS NULL }.49
46d0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
46e0: 4d 20 74 33 20 57 48 45 52 45 20 61 20 3e 20 27  M t3 WHERE a > '
46f0: 6f 74 68 65 72 27 20 7d 0a 35 30 20 20 7b 20 53  other' }.50  { S
4700: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4710: 57 48 45 52 45 20 27 74 68 65 27 20 3c 3d 20 63  WHERE 'the' <= c
4720: 20 41 4e 44 20 61 20 3c 3d 20 63 20 7d 0a 35 31   AND a <= c }.51
4730: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4740: 4d 20 74 33 20 57 48 45 52 45 20 33 34 36 2e 30  M t3 WHERE 346.0
4750: 33 34 38 36 31 30 20 3d 20 61 20 41 4e 44 20 63  348610 = a AND c
4760: 20 3d 20 62 20 7d 0a 35 32 20 20 7b 20 53 45 4c   = b }.52  { SEL
4770: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
4780: 45 52 45 20 63 20 42 45 54 57 45 45 4e 20 35 30  ERE c BETWEEN 50
4790: 2e 35 38 32 32 33 31 37 32 20 41 4e 44 20 27 73  .58223172 AND 's
47a0: 61 6d 65 27 20 41 4e 44 20 61 20 3c 20 62 20 7d  ame' AND a < b }
47b0: 0a 35 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .53  { SELECT * 
47c0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27 41  FROM t3 WHERE 'A
47d0: 6c 70 69 6e 65 27 20 3c 3d 20 62 20 41 4e 44 20  lpine' <= b AND 
47e0: 63 20 3e 3d 20 27 61 6e 67 6c 65 27 20 4f 52 20  c >= 'angle' OR 
47f0: 62 20 3c 3d 20 32 37 31 2e 32 30 31 39 30 39 31  b <= 271.2019091
4800: 20 7d 0a 35 34 20 20 7b 20 53 45 4c 45 43 54 20   }.54  { SELECT 
4810: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4820: 61 20 3c 20 61 20 41 4e 44 20 31 34 31 35 39 32  a < a AND 141592
4830: 36 35 33 35 20 3e 20 62 20 7d 0a 35 35 20 20 7b  6535 > b }.55  {
4840: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
4850: 33 20 57 48 45 52 45 20 63 20 3e 20 61 20 41 4e  3 WHERE c > a AN
4860: 44 20 27 68 61 76 65 27 20 3e 3d 20 63 20 7d 0a  D 'have' >= c }.
4870: 35 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  56  { SELECT * F
4880: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20 3c  ROM t3 WHERE b <
4890: 3d 20 62 20 41 4e 44 20 63 20 3e 20 62 20 7d 0a  = b AND c > b }.
48a0: 35 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  57  { SELECT * F
48b0: 52 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20 49  ROM t3 WHERE a I
48c0: 53 20 4e 55 4c 4c 20 41 4e 44 20 63 20 3c 3d 20  S NULL AND c <= 
48d0: 63 20 7d 0a 35 38 20 20 7b 20 53 45 4c 45 43 54  c }.58  { SELECT
48e0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
48f0: 20 62 20 3c 20 63 20 4f 52 20 62 20 3d 20 63 20   b < c OR b = c 
4900: 7d 0a 35 39 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.59  { SELECT *
4910: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63   FROM t3 WHERE c
4920: 20 3c 20 62 20 41 4e 44 20 62 20 3e 3d 20 27 69   < b AND b >= 'i
4930: 74 27 20 7d 0a 36 30 20 20 7b 20 53 45 4c 45 43  t' }.60  { SELEC
4940: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
4950: 45 20 61 20 3d 20 62 20 41 4e 44 20 61 20 3c 3d  E a = b AND a <=
4960: 20 62 20 4f 52 20 62 20 3e 3d 20 61 20 7d 0a 36   b OR b >= a }.6
4970: 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  1  { SELECT * FR
4980: 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20 3d 20  OM t3 WHERE b = 
4990: 63 20 7d 0a 36 32 20 20 7b 20 53 45 4c 45 43 54  c }.62  { SELECT
49a0: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
49b0: 20 63 20 42 45 54 57 45 45 4e 20 27 74 68 65 27   c BETWEEN 'the'
49c0: 20 41 4e 44 20 32 37 31 2e 32 30 31 39 30 39 31   AND 271.2019091
49d0: 20 4f 52 20 63 20 3c 3d 20 33 32 38 32 33 30 36   OR c <= 3282306
49e0: 36 34 37 20 41 4e 44 20 63 20 3e 3d 20 62 20 7d  647 AND c >= b }
49f0: 0a 36 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .63  { SELECT * 
4a00: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63 20  FROM t3 WHERE c 
4a10: 3e 3d 20 63 20 41 4e 44 20 63 20 3c 20 27 77 72  >= c AND c < 'wr
4a20: 69 74 69 6e 67 73 27 20 7d 0a 36 34 20 20 7b 20  itings' }.64  { 
4a30: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4a40: 20 57 48 45 52 45 20 63 20 3c 3d 20 33 32 38 32   WHERE c <= 3282
4a50: 33 30 36 36 34 37 20 41 4e 44 20 62 20 3e 20 61  306647 AND b > a
4a60: 20 4f 52 20 27 75 6e 61 6c 69 6b 65 27 20 3c 3d   OR 'unalike' <=
4a70: 20 61 20 7d 0a 36 35 20 20 7b 20 53 45 4c 45 43   a }.65  { SELEC
4a80: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
4a90: 45 20 61 20 3e 20 63 20 7d 0a 36 36 20 20 7b 20  E a > c }.66  { 
4aa0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4ab0: 20 57 48 45 52 45 20 63 20 3d 20 27 69 74 27 20   WHERE c = 'it' 
4ac0: 4f 52 20 62 20 3e 3d 20 62 20 7d 0a 36 37 20 20  OR b >= b }.67  
4ad0: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4ae0: 74 33 20 57 48 45 52 45 20 63 20 3d 20 61 20 4f  t3 WHERE c = a O
4af0: 52 20 62 20 3c 20 63 20 7d 0a 36 38 20 20 7b 20  R b < c }.68  { 
4b00: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4b10: 20 57 48 45 52 45 20 62 20 3e 20 61 20 7d 0a 36   WHERE b > a }.6
4b20: 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  9  { SELECT * FR
4b30: 4f 4d 20 74 33 20 57 48 45 52 45 20 61 20 3c 20  OM t3 WHERE a < 
4b40: 62 20 4f 52 20 61 20 3e 20 34 35 34 33 2e 32 36  b OR a > 4543.26
4b50: 36 34 38 32 20 4f 52 20 27 73 61 6d 65 27 20 3d  6482 OR 'same' =
4b60: 20 62 20 7d 0a 37 30 20 20 7b 20 53 45 4c 45 43   b }.70  { SELEC
4b70: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
4b80: 45 20 63 20 3c 20 63 20 4f 52 20 62 20 3c 3d 20  E c < c OR b <= 
4b90: 63 20 4f 52 20 61 20 3c 3d 20 62 20 7d 0a 37 31  c OR a <= b }.71
4ba0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4bb0: 4d 20 74 33 20 57 48 45 52 45 20 63 20 3e 20 61  M t3 WHERE c > a
4bc0: 20 7d 0a 37 32 20 20 7b 20 53 45 4c 45 43 54 20   }.72  { SELECT 
4bd0: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4be0: 63 20 3e 20 62 20 7d 0a 37 33 20 20 7b 20 53 45  c > b }.73  { SE
4bf0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
4c00: 48 45 52 45 20 62 20 3c 3d 20 61 20 7d 0a 37 34  HERE b <= a }.74
4c10: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4c20: 4d 20 74 33 20 57 48 45 52 45 20 33 32 38 32 33  M t3 WHERE 32823
4c30: 30 36 36 34 37 20 3c 20 62 20 41 4e 44 20 61 20  06647 < b AND a 
4c40: 3e 3d 20 27 6f 72 27 20 4f 52 20 61 20 3e 3d 20  >= 'or' OR a >= 
4c50: 33 37 38 36 37 38 33 31 36 2e 35 20 7d 0a 37 35  378678316.5 }.75
4c60: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
4c70: 4d 20 74 33 20 57 48 45 52 45 20 35 30 2e 35 38  M t3 WHERE 50.58
4c80: 32 32 33 31 37 32 20 3c 3d 20 63 20 4f 52 20 63  223172 <= c OR c
4c90: 20 3d 20 63 20 41 4e 44 20 62 20 3c 20 62 20 7d   = c AND b < b }
4ca0: 0a 37 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .76  { SELECT * 
4cb0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27 61  FROM t3 WHERE 'a
4cc0: 6e 64 27 20 3c 20 62 20 4f 52 20 62 20 3c 20 63  nd' < b OR b < c
4cd0: 20 4f 52 20 63 20 3e 20 31 33 33 39 2e 33 36 30   OR c > 1339.360
4ce0: 37 32 36 20 7d 0a 37 37 20 20 7b 20 53 45 4c 45  726 }.77  { SELE
4cf0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45  CT * FROM t3 WHE
4d00: 52 45 20 62 20 3c 3d 20 63 20 7d 0a 37 38 20 20  RE b <= c }.78  
4d10: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4d20: 74 33 20 57 48 45 52 45 20 27 69 6e 27 20 3c 3d  t3 WHERE 'in' <=
4d30: 20 63 20 7d 0a 37 39 20 20 7b 20 53 45 4c 45 43   c }.79  { SELEC
4d40: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
4d50: 45 20 63 20 3c 3d 20 62 20 41 4e 44 20 61 20 3e  E c <= b AND a >
4d60: 20 61 20 41 4e 44 20 63 20 3c 20 62 20 7d 0a 38   a AND c < b }.8
4d70: 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  0  { SELECT * FR
4d80: 4f 4d 20 74 33 20 57 48 45 52 45 20 27 6f 76 65  OM t3 WHERE 'ove
4d90: 72 27 20 3c 20 62 20 7d 0a 38 31 20 20 7b 20 53  r' < b }.81  { S
4da0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4db0: 57 48 45 52 45 20 62 20 3e 3d 20 62 20 4f 52 20  WHERE b >= b OR 
4dc0: 62 20 3c 20 63 20 4f 52 20 61 20 3c 20 62 20 7d  b < c OR a < b }
4dd0: 0a 38 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .82  { SELECT * 
4de0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 27 74  FROM t3 WHERE 't
4df0: 6f 77 65 72 69 6e 67 27 20 3c 3d 20 62 20 4f 52  owering' <= b OR
4e00: 20 27 74 6f 77 65 72 69 6e 67 27 20 3d 20 61 20   'towering' = a 
4e10: 41 4e 44 20 63 20 3e 20 62 20 7d 0a 38 33 20 20  AND c > b }.83  
4e20: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4e30: 74 33 20 57 48 45 52 45 20 27 70 65 61 6b 27 20  t3 WHERE 'peak' 
4e40: 3d 20 61 20 4f 52 20 62 20 42 45 54 57 45 45 4e  = a OR b BETWEEN
4e50: 20 32 36 34 33 33 38 33 32 37 39 20 41 4e 44 20   2643383279 AND 
4e60: 27 74 68 65 27 20 7d 0a 38 34 20 20 7b 20 53 45  'the' }.84  { 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 27 61 6e 27 20 3c 20 63 20 41 4e  HERE 'an' < c AN
4e90: 44 20 63 20 3e 20 27 74 68 65 27 20 41 4e 44 20  D c > 'the' AND 
4ea0: 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 38 35 20 20  c IS NULL }.85  
4eb0: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
4ec0: 74 33 20 57 48 45 52 45 20 61 20 3c 3d 20 27 73  t3 WHERE a <= 's
4ed0: 6f 6d 65 74 69 6d 65 73 27 20 41 4e 44 20 61 20  ometimes' AND a 
4ee0: 42 45 54 57 45 45 4e 20 27 75 6e 61 6c 69 6b 65  BETWEEN 'unalike
4ef0: 27 20 41 4e 44 20 31 33 33 39 2e 33 36 30 37 32  ' AND 1339.36072
4f00: 36 20 7d 0a 38 36 20 20 7b 20 53 45 4c 45 43 54  6 }.86  { SELECT
4f10: 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45   * FROM t3 WHERE
4f20: 20 31 33 33 39 2e 33 36 30 37 32 36 20 3c 20 63   1339.360726 < c
4f30: 20 41 4e 44 20 63 20 49 53 20 4e 55 4c 4c 20 7d   AND c IS NULL }
4f40: 0a 38 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  .87  { SELECT * 
4f50: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 62 20  FROM t3 WHERE b 
4f60: 3e 20 27 74 68 65 27 20 7d 0a 38 38 20 20 7b 20  > 'the' }.88  { 
4f70: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
4f80: 20 57 48 45 52 45 20 27 61 6e 64 27 20 3d 20 61   WHERE 'and' = a
4f90: 20 7d 0a 38 39 20 20 7b 20 53 45 4c 45 43 54 20   }.89  { SELECT 
4fa0: 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20  * FROM t3 WHERE 
4fb0: 62 20 3e 3d 20 62 20 7d 0a 39 30 20 20 7b 20 53  b >= b }.90  { S
4fc0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
4fd0: 57 48 45 52 45 20 62 20 3e 3d 20 38 39 37 39 33  WHERE b >= 89793
4fe0: 32 33 38 34 36 20 7d 0a 39 31 20 20 7b 20 53 45  23846 }.91  { SE
4ff0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57  LECT * FROM t3 W
5000: 48 45 52 45 20 63 20 3c 3d 20 61 20 7d 0a 39 32  HERE c <= a }.92
5010: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
5020: 4d 20 74 33 20 57 48 45 52 45 20 61 20 42 45 54  M t3 WHERE a BET
5030: 57 45 45 4e 20 27 68 61 76 65 27 20 41 4e 44 20  WEEN 'have' AND 
5040: 27 6c 69 67 68 74 27 20 4f 52 20 61 20 3e 20 62  'light' OR a > b
5050: 20 4f 52 20 61 20 3e 3d 20 33 37 38 36 37 38 33   OR a >= 3786783
5060: 31 36 2e 35 20 7d 0a 39 33 20 20 7b 20 53 45 4c  16.5 }.93  { SEL
5070: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48  ECT * FROM t3 WH
5080: 45 52 45 20 63 20 3e 20 33 32 38 32 33 30 36 36  ERE c > 32823066
5090: 34 37 20 7d 0a 39 34 20 20 7b 20 53 45 4c 45 43  47 }.94  { SELEC
50a0: 54 20 2a 20 46 52 4f 4d 20 74 33 20 57 48 45 52  T * FROM t3 WHER
50b0: 45 20 62 20 3e 20 63 20 7d 0a 39 35 20 20 7b 20  E b > c }.95  { 
50c0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
50d0: 20 57 48 45 52 45 20 62 20 3e 3d 20 61 20 41 4e   WHERE b >= a AN
50e0: 44 20 27 76 69 6c 6c 61 67 65 73 27 20 3e 20 61  D 'villages' > a
50f0: 20 41 4e 44 20 62 20 3e 3d 20 63 20 7d 0a 39 36   AND b >= c }.96
5100: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
5110: 4d 20 74 33 20 57 48 45 52 45 20 27 61 6e 67 6c  M t3 WHERE 'angl
5120: 65 27 20 3e 20 61 20 7d 0a 39 37 20 20 7b 20 53  e' > a }.97  { S
5130: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
5140: 57 48 45 52 45 20 27 70 61 69 6e 74 69 6e 67 73  WHERE 'paintings
5150: 27 20 3e 3d 20 61 20 7d 0a 39 38 20 20 7b 20 53  ' >= a }.98  { S
5160: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 20  ELECT * FROM t3 
5170: 57 48 45 52 45 20 27 6f 72 27 20 3e 3d 20 63 20  WHERE 'or' >= c 
5180: 7d 0a 39 39 20 20 7b 20 53 45 4c 45 43 54 20 2a  }.99  { SELECT *
5190: 20 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 63   FROM t3 WHERE c
51a0: 20 3c 20 62 20 7d 0a 0a 0a 31 30 31 20 20 7b 20   < b }...101  { 
51b0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
51c0: 2c 20 74 34 20 57 48 45 52 45 20 66 20 3c 20 27  , t4 WHERE f < '
51d0: 73 6f 6d 65 74 69 6d 65 73 27 20 4f 52 20 27 6f  sometimes' OR 'o
51e0: 76 65 72 27 20 3c 3d 20 67 20 41 4e 44 20 68 20  ver' <= g AND h 
51f0: 3c 20 31 34 31 35 39 32 36 35 33 35 20 7d 0a 31  < 1415926535 }.1
5200: 30 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  02  { SELECT * F
5210: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5220: 20 68 20 3e 3d 20 27 66 72 6f 6d 27 20 41 4e 44   h >= 'from' AND
5230: 20 68 20 3c 20 36 39 33 39 39 33 37 35 31 30 20   h < 6939937510 
5240: 4f 52 20 67 20 3e 20 68 20 7d 0a 31 30 33 20 20  OR g > h }.103  
5250: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
5260: 74 33 2c 20 74 34 20 57 48 45 52 45 20 63 20 3c  t3, t4 WHERE c <
5270: 3d 20 68 20 41 4e 44 20 67 20 3d 20 68 20 41 4e  = h AND g = h AN
5280: 44 20 63 20 3e 3d 20 27 61 6c 6c 27 20 7d 0a 31  D c >= 'all' }.1
5290: 30 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  04  { SELECT * F
52a0: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
52b0: 20 63 20 3d 20 61 20 7d 0a 31 30 35 20 20 7b 20   c = a }.105  { 
52c0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
52d0: 2c 20 74 34 20 57 48 45 52 45 20 27 6f 66 27 20  , t4 WHERE 'of' 
52e0: 3e 3d 20 68 20 7d 0a 31 30 36 20 20 7b 20 53 45  >= h }.106  { SE
52f0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
5300: 74 34 20 57 48 45 52 45 20 66 20 3e 3d 20 62 20  t4 WHERE f >= b 
5310: 41 4e 44 20 61 20 3c 20 67 20 41 4e 44 20 68 20  AND a < g AND h 
5320: 3c 20 27 61 6e 64 27 20 7d 0a 31 30 37 20 20 7b  < 'and' }.107  {
5330: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
5340: 33 2c 20 74 34 20 57 48 45 52 45 20 66 20 3c 3d  3, t4 WHERE f <=
5350: 20 38 36 32 38 30 33 34 38 32 35 20 41 4e 44 20   8628034825 AND 
5360: 30 39 33 38 34 34 36 30 39 35 20 3e 3d 20 62 20  0938446095 >= b 
5370: 7d 0a 31 30 38 20 20 7b 20 53 45 4c 45 43 54 20  }.108  { SELECT 
5380: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5390: 45 52 45 20 61 20 3c 20 27 74 68 65 27 20 7d 0a  ERE a < 'the' }.
53a0: 31 30 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  109  { SELECT * 
53b0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
53c0: 45 20 66 20 3d 20 27 73 6f 6d 65 74 69 6d 65 73  E f = 'sometimes
53d0: 27 20 4f 52 20 62 20 3c 20 27 6f 66 27 20 7d 0a  ' OR b < 'of' }.
53e0: 31 31 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  110  { SELECT * 
53f0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5400: 45 20 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 31  E c IS NULL }.11
5410: 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  1  { SELECT * FR
5420: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5430: 27 68 61 76 65 27 20 3d 20 62 20 4f 52 20 67 20  'have' = b OR g 
5440: 3c 3d 20 33 34 36 2e 30 33 34 38 36 31 30 20 7d  <= 346.0348610 }
5450: 0a 31 31 32 20 20 7b 20 53 45 4c 45 43 54 20 2a  .112  { SELECT *
5460: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5470: 52 45 20 66 20 3e 20 62 20 41 4e 44 20 62 20 3c  RE f > b AND b <
5480: 3d 20 68 20 7d 0a 31 31 33 20 20 7b 20 53 45 4c  = h }.113  { SEL
5490: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
54a0: 34 20 57 48 45 52 45 20 66 20 3e 20 63 20 4f 52  4 WHERE f > c OR
54b0: 20 27 74 68 65 27 20 3d 20 61 20 4f 52 20 35 30   'the' = a OR 50
54c0: 2e 35 38 32 32 33 31 37 32 20 3d 20 61 20 7d 0a  .58223172 = a }.
54d0: 31 31 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  114  { SELECT * 
54e0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
54f0: 45 20 32 36 34 33 33 38 33 32 37 39 20 3c 3d 20  E 2643383279 <= 
5500: 61 20 41 4e 44 20 63 20 3d 20 61 20 7d 0a 31 31  a AND c = a }.11
5510: 35 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  5  { SELECT * FR
5520: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5530: 68 20 3e 3d 20 62 20 41 4e 44 20 27 69 74 27 20  h >= b AND 'it' 
5540: 3c 3d 20 62 20 7d 0a 31 31 36 20 20 7b 20 53 45  <= b }.116  { SE
5550: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
5560: 74 34 20 57 48 45 52 45 20 67 20 42 45 54 57 45  t4 WHERE g BETWE
5570: 45 4e 20 27 66 72 6f 6d 27 20 41 4e 44 20 27 70  EN 'from' AND 'p
5580: 65 61 6b 27 20 7d 0a 31 31 37 20 20 7b 20 53 45  eak' }.117  { SE
5590: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
55a0: 74 34 20 57 48 45 52 45 20 27 74 68 65 69 72 27  t4 WHERE 'their'
55b0: 20 3e 20 61 20 41 4e 44 20 67 20 3e 20 62 20 41   > a AND g > b A
55c0: 4e 44 20 66 20 3c 3d 20 63 20 7d 0a 31 31 38 20  ND f <= c }.118 
55d0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
55e0: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 68 20   t3, t4 WHERE h 
55f0: 3d 20 35 30 32 38 38 34 31 39 37 31 20 41 4e 44  = 5028841971 AND
5600: 20 27 75 6e 61 6c 69 6b 65 27 20 3c 3d 20 66 20   'unalike' <= f 
5610: 7d 0a 31 31 39 20 20 7b 20 53 45 4c 45 43 54 20  }.119  { SELECT 
5620: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5630: 45 52 45 20 63 20 49 53 20 4e 55 4c 4c 20 41 4e  ERE c IS NULL AN
5640: 44 20 61 20 3d 20 33 32 38 32 33 30 36 36 34 37  D a = 3282306647
5650: 20 4f 52 20 61 20 3c 3d 20 27 41 6c 70 69 6e 65   OR a <= 'Alpine
5660: 27 20 7d 0a 31 32 30 20 20 7b 20 53 45 4c 45 43  ' }.120  { SELEC
5670: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
5680: 57 48 45 52 45 20 27 73 6f 6d 65 74 69 6d 65 73  WHERE 'sometimes
5690: 27 20 3c 3d 20 66 20 4f 52 20 38 32 31 34 38 30  ' <= f OR 821480
56a0: 38 36 35 31 20 3e 3d 20 61 20 41 4e 44 20 62 20  8651 >= a AND b 
56b0: 3c 3d 20 35 33 35 39 34 2e 30 38 31 32 38 20 7d  <= 53594.08128 }
56c0: 0a 31 32 31 20 20 7b 20 53 45 4c 45 43 54 20 2a  .121  { SELECT *
56d0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
56e0: 52 45 20 36 39 33 39 39 33 37 35 31 30 20 3c 3d  RE 6939937510 <=
56f0: 20 66 20 4f 52 20 63 20 3c 20 66 20 4f 52 20 27   f OR c < f OR '
5700: 73 6f 6d 65 74 69 6d 65 73 27 20 3d 20 63 20 7d  sometimes' = c }
5710: 0a 31 32 32 20 20 7b 20 53 45 4c 45 43 54 20 2a  .122  { SELECT *
5720: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5730: 52 45 20 62 20 3c 20 27 6f 6e 6c 6f 6f 6b 65 72  RE b < 'onlooker
5740: 73 27 20 41 4e 44 20 27 70 61 69 6e 74 69 6e 67  s' AND 'painting
5750: 73 27 20 3d 20 67 20 41 4e 44 20 63 20 3c 3d 20  s' = g AND c <= 
5760: 68 20 7d 0a 31 32 33 20 20 7b 20 53 45 4c 45 43  h }.123  { SELEC
5770: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
5780: 57 48 45 52 45 20 61 20 42 45 54 57 45 45 4e 20  WHERE a BETWEEN 
5790: 27 61 6c 6c 27 20 41 4e 44 20 27 66 72 6f 6d 27  'all' AND 'from'
57a0: 20 4f 52 20 63 20 3e 20 33 34 36 2e 30 33 34 38   OR c > 346.0348
57b0: 36 31 30 20 7d 0a 31 32 34 20 20 7b 20 53 45 4c  610 }.124  { SEL
57c0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
57d0: 34 20 57 48 45 52 45 20 27 66 72 6f 6d 27 20 3c  4 WHERE 'from' <
57e0: 3d 20 62 20 4f 52 20 61 20 42 45 54 57 45 45 4e  = b OR a BETWEEN
57f0: 20 35 33 35 39 34 2e 30 38 31 32 38 20 41 4e 44   53594.08128 AND
5800: 20 27 74 68 65 69 72 27 20 41 4e 44 20 63 20 3e   'their' AND c >
5810: 20 61 20 7d 0a 31 32 35 20 20 7b 20 53 45 4c 45   a }.125  { SELE
5820: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5830: 20 57 48 45 52 45 20 68 20 3d 20 32 36 34 33 33   WHERE h = 26433
5840: 38 33 32 37 39 20 7d 0a 31 32 36 20 20 7b 20 53  83279 }.126  { S
5850: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5860: 20 74 34 20 57 48 45 52 45 20 61 20 3c 3d 20 27   t4 WHERE a <= '
5870: 74 68 65 27 20 7d 0a 31 32 37 20 20 7b 20 53 45  the' }.127  { SE
5880: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
5890: 74 34 20 57 48 45 52 45 20 68 20 3c 3d 20 63 20  t4 WHERE h <= c 
58a0: 7d 0a 31 32 38 20 20 7b 20 53 45 4c 45 43 54 20  }.128  { SELECT 
58b0: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
58c0: 45 52 45 20 67 20 3c 3d 20 33 34 36 2e 30 33 34  ERE g <= 346.034
58d0: 38 36 31 30 20 41 4e 44 20 36 36 2e 35 39 33 33  8610 AND 66.5933
58e0: 34 34 36 31 20 3e 3d 20 66 20 41 4e 44 20 66 20  4461 >= f AND f 
58f0: 3c 3d 20 66 20 7d 0a 31 32 39 20 20 7b 20 53 45  <= f }.129  { SE
5900: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
5910: 74 34 20 57 48 45 52 45 20 67 20 3e 3d 20 63 20  t4 WHERE g >= c 
5920: 4f 52 20 27 69 6e 27 20 3c 20 62 20 4f 52 20 62  OR 'in' < b OR b
5930: 20 3e 20 67 20 7d 0a 31 33 30 20 20 7b 20 53 45   > g }.130  { SE
5940: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
5950: 74 34 20 57 48 45 52 45 20 27 6f 76 65 72 27 20  t4 WHERE 'over' 
5960: 3e 20 67 20 41 4e 44 20 62 20 42 45 54 57 45 45  > g AND b BETWEE
5970: 4e 20 27 75 6e 61 6c 69 6b 65 27 20 41 4e 44 20  N 'unalike' AND 
5980: 27 72 65 6d 61 72 6b 61 62 6c 79 27 20 7d 0a 31  'remarkably' }.1
5990: 33 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  31  { SELECT * F
59a0: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
59b0: 20 68 20 3c 3d 20 32 38 34 37 35 36 34 2e 38 32   h <= 2847564.82
59c0: 33 20 7d 0a 31 33 32 20 20 7b 20 53 45 4c 45 43  3 }.132  { SELEC
59d0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
59e0: 57 48 45 52 45 20 68 20 3c 3d 20 27 72 65 6d 61  WHERE h <= 'rema
59f0: 72 6b 61 62 6c 79 27 20 41 4e 44 20 34 35 34 33  rkably' AND 4543
5a00: 2e 32 36 36 34 38 32 20 3e 20 68 20 7d 0a 31 33  .266482 > h }.13
5a10: 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  3  { SELECT * FR
5a20: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5a30: 61 20 3e 3d 20 63 20 41 4e 44 20 27 69 74 27 20  a >= c AND 'it' 
5a40: 3e 20 67 20 41 4e 44 20 63 20 3c 20 63 20 7d 0a  > g AND c < c }.
5a50: 31 33 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  134  { SELECT * 
5a60: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5a70: 45 20 68 20 3c 3d 20 36 36 2e 35 39 33 33 34 34  E h <= 66.593344
5a80: 36 31 20 41 4e 44 20 62 20 3e 20 33 34 32 31 31  61 AND b > 34211
5a90: 37 30 36 37 39 20 7d 0a 31 33 35 20 20 7b 20 53  70679 }.135  { S
5aa0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
5ab0: 20 74 34 20 57 48 45 52 45 20 68 20 3c 20 27 61   t4 WHERE h < 'a
5ac0: 72 65 27 20 4f 52 20 66 20 42 45 54 57 45 45 4e  re' OR f BETWEEN
5ad0: 20 30 39 33 38 34 34 36 30 39 35 20 41 4e 44 20   0938446095 AND 
5ae0: 27 61 72 65 27 20 4f 52 20 62 20 3d 20 62 20 7d  'are' OR b = b }
5af0: 0a 31 33 36 20 20 7b 20 53 45 4c 45 43 54 20 2a  .136  { SELECT *
5b00: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5b10: 52 45 20 68 20 3d 20 61 20 4f 52 20 36 36 2e 35  RE h = a OR 66.5
5b20: 39 33 33 34 34 36 31 20 3c 3d 20 66 20 7d 0a 31  9334461 <= f }.1
5b30: 33 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  37  { SELECT * F
5b40: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5b50: 20 66 20 3e 20 27 6f 66 27 20 4f 52 20 68 20 3c   f > 'of' OR h <
5b60: 3d 20 68 20 4f 52 20 61 20 3d 20 66 20 7d 0a 31  = h OR a = f }.1
5b70: 33 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  38  { SELECT * F
5b80: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
5b90: 20 27 6f 74 68 65 72 27 20 3e 3d 20 67 20 7d 0a   'other' >= g }.
5ba0: 31 33 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  139  { SELECT * 
5bb0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5bc0: 45 20 62 20 3c 3d 20 33 34 32 31 31 37 30 36 37  E b <= 342117067
5bd0: 39 20 7d 0a 31 34 30 20 20 7b 20 53 45 4c 45 43  9 }.140  { SELEC
5be0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
5bf0: 57 48 45 52 45 20 27 61 6c 6c 27 20 3d 20 66 20  WHERE 'all' = f 
5c00: 41 4e 44 20 34 35 34 33 2e 32 36 36 34 38 32 20  AND 4543.266482 
5c10: 3d 20 62 20 4f 52 20 66 20 42 45 54 57 45 45 4e  = b OR f BETWEEN
5c20: 20 27 61 6e 64 27 20 41 4e 44 20 27 61 6e 67 6c   'and' AND 'angl
5c30: 65 27 20 7d 0a 31 34 31 20 20 7b 20 53 45 4c 45  e' }.141  { SELE
5c40: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5c50: 20 57 48 45 52 45 20 27 6c 69 67 68 74 27 20 3d   WHERE 'light' =
5c60: 20 66 20 4f 52 20 68 20 42 45 54 57 45 45 4e 20   f OR h BETWEEN 
5c70: 27 72 65 6d 61 72 6b 61 62 6c 79 27 20 41 4e 44  'remarkably' AND
5c80: 20 31 34 31 35 39 32 36 35 33 35 20 7d 0a 31 34   1415926535 }.14
5c90: 32 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  2  { SELECT * FR
5ca0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5cb0: 27 68 69 6c 6c 73 27 20 3d 20 66 20 4f 52 20 27  'hills' = f OR '
5cc0: 74 68 65 27 20 3e 3d 20 66 20 7d 0a 31 34 33 20  the' >= f }.143 
5cd0: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
5ce0: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61 20   t3, t4 WHERE a 
5cf0: 3e 20 33 34 36 2e 30 33 34 38 36 31 30 20 7d 0a  > 346.0348610 }.
5d00: 31 34 34 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  144  { SELECT * 
5d10: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
5d20: 45 20 35 30 32 38 38 34 31 39 37 31 20 3d 20 68  E 5028841971 = h
5d30: 20 7d 0a 31 34 35 20 20 7b 20 53 45 4c 45 43 54   }.145  { SELECT
5d40: 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57   * FROM t3, t4 W
5d50: 48 45 52 45 20 62 20 3e 3d 20 63 20 41 4e 44 20  HERE b >= c AND 
5d60: 27 74 68 65 27 20 3e 3d 20 67 20 4f 52 20 34 35  'the' >= g OR 45
5d70: 2e 36 34 38 35 36 36 39 32 20 3c 3d 20 67 20 7d  .64856692 <= g }
5d80: 0a 31 34 36 20 20 7b 20 53 45 4c 45 43 54 20 2a  .146  { SELECT *
5d90: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
5da0: 52 45 20 63 20 3c 20 35 30 32 38 38 34 31 39 37  RE c < 502884197
5db0: 31 20 7d 0a 31 34 37 20 20 7b 20 53 45 4c 45 43  1 }.147  { SELEC
5dc0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
5dd0: 57 48 45 52 45 20 61 20 3e 20 61 20 7d 0a 31 34  WHERE a > a }.14
5de0: 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  8  { SELECT * FR
5df0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5e00: 63 20 3d 20 27 73 6e 61 70 73 68 6f 74 73 27 20  c = 'snapshots' 
5e10: 7d 0a 31 34 39 20 20 7b 20 53 45 4c 45 43 54 20  }.149  { SELECT 
5e20: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
5e30: 45 52 45 20 68 20 3e 20 31 33 33 39 2e 33 36 30  ERE h > 1339.360
5e40: 37 32 36 20 41 4e 44 20 27 61 6e 64 27 20 3e 20  726 AND 'and' > 
5e50: 63 20 7d 0a 31 35 30 20 20 7b 20 53 45 4c 45 43  c }.150  { SELEC
5e60: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
5e70: 57 48 45 52 45 20 27 61 6e 64 27 20 3e 20 67 20  WHERE 'and' > g 
5e80: 4f 52 20 27 73 6f 6d 65 74 69 6d 65 73 27 20 3d  OR 'sometimes' =
5e90: 20 63 20 7d 0a 31 35 31 20 20 7b 20 53 45 4c 45   c }.151  { SELE
5ea0: 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34  CT * FROM t3, t4
5eb0: 20 57 48 45 52 45 20 67 20 3e 3d 20 27 74 68 65   WHERE g >= 'the
5ec0: 27 20 41 4e 44 20 62 20 3e 3d 20 27 6f 6e 6c 6f  ' AND b >= 'onlo
5ed0: 6f 6b 65 72 73 27 20 7d 0a 31 35 32 20 20 7b 20  okers' }.152  { 
5ee0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5ef0: 2c 20 74 34 20 57 48 45 52 45 20 68 20 42 45 54  , t4 WHERE h BET
5f00: 57 45 45 4e 20 27 6f 74 68 65 72 27 20 41 4e 44  WEEN 'other' AND
5f10: 20 32 36 34 33 33 38 33 32 37 39 20 7d 0a 31 35   2643383279 }.15
5f20: 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  3  { SELECT * FR
5f30: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
5f40: 27 69 74 27 20 3d 20 62 20 7d 0a 31 35 34 20 20  'it' = b }.154  
5f50: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
5f60: 74 33 2c 20 74 34 20 57 48 45 52 45 20 66 20 3d  t3, t4 WHERE f =
5f70: 20 63 20 4f 52 20 63 20 42 45 54 57 45 45 4e 20   c OR c BETWEEN 
5f80: 27 61 6e 64 27 20 41 4e 44 20 30 2e 34 38 31 31  'and' AND 0.4811
5f90: 31 37 34 35 30 32 20 7d 0a 31 35 35 20 20 7b 20  174502 }.155  { 
5fa0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
5fb0: 2c 20 74 34 20 57 48 45 52 45 20 62 20 3c 3d 20  , t4 WHERE b <= 
5fc0: 27 73 6f 6d 65 74 69 6d 65 73 27 20 4f 52 20 63  'sometimes' OR c
5fd0: 20 3c 3d 20 30 39 33 38 34 34 36 30 39 35 20 7d   <= 0938446095 }
5fe0: 0a 31 35 36 20 20 7b 20 53 45 4c 45 43 54 20 2a  .156  { SELECT *
5ff0: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
6000: 52 45 20 27 61 6e 64 27 20 3c 3d 20 62 20 7d 0a  RE 'and' <= b }.
6010: 31 35 37 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  157  { SELECT * 
6020: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
6030: 45 20 67 20 3e 20 61 20 41 4e 44 20 66 20 3d 20  E g > a AND f = 
6040: 27 74 68 65 27 20 41 4e 44 20 62 20 3c 20 61 20  'the' AND b < a 
6050: 7d 0a 31 35 38 20 20 7b 20 53 45 4c 45 43 54 20  }.158  { SELECT 
6060: 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48  * FROM t3, t4 WH
6070: 45 52 45 20 61 20 3c 20 27 61 6e 27 20 7d 0a 31  ERE a < 'an' }.1
6080: 35 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  59  { SELECT * F
6090: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
60a0: 20 61 20 42 45 54 57 45 45 4e 20 27 68 69 73 27   a BETWEEN 'his'
60b0: 20 41 4e 44 20 27 73 61 6d 65 27 20 4f 52 20 38   AND 'same' OR 8
60c0: 36 32 38 30 33 34 38 32 35 20 3e 20 66 20 7d 0a  628034825 > f }.
60d0: 31 36 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  160  { SELECT * 
60e0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
60f0: 45 20 62 20 3d 20 27 70 65 61 6b 27 20 7d 0a 31  E b = 'peak' }.1
6100: 36 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  61  { SELECT * F
6110: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
6120: 20 66 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20 61   f IS NULL AND a
6130: 20 3e 3d 20 68 20 7d 0a 31 36 32 20 20 7b 20 53   >= h }.162  { S
6140: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
6150: 20 74 34 20 57 48 45 52 45 20 61 20 49 53 20 4e   t4 WHERE a IS N
6160: 55 4c 4c 20 4f 52 20 32 36 34 33 33 38 33 32 37  ULL OR 264338327
6170: 39 20 3d 20 63 20 7d 0a 31 36 33 20 20 7b 20 53  9 = c }.163  { 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 62 20 3e 3d 20 35   t4 WHERE b >= 5
61a0: 30 32 38 38 34 31 39 37 31 20 41 4e 44 20 66 20  028841971 AND f 
61b0: 3c 20 63 20 41 4e 44 20 61 20 49 53 20 4e 55 4c  < c AND a IS NUL
61c0: 4c 20 7d 0a 31 36 34 20 20 7b 20 53 45 4c 45 43  L }.164  { SELEC
61d0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
61e0: 57 48 45 52 45 20 61 20 3e 3d 20 67 20 7d 0a 31  WHERE a >= g }.1
61f0: 36 35 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  65  { SELECT * F
6200: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
6210: 20 63 20 49 53 20 4e 55 4c 4c 20 7d 0a 31 36 36   c IS NULL }.166
6220: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
6230: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 68  M t3, t4 WHERE h
6240: 20 3e 3d 20 68 20 7d 0a 31 36 37 20 20 7b 20 53   >= h }.167  { S
6250: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
6260: 20 74 34 20 57 48 45 52 45 20 27 6f 76 65 72 27   t4 WHERE 'over'
6270: 20 3c 3d 20 68 20 7d 0a 31 36 38 20 20 7b 20 53   <= h }.168  { S
6280: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
6290: 20 74 34 20 57 48 45 52 45 20 62 20 3c 20 34 35   t4 WHERE b < 45
62a0: 34 33 2e 32 36 36 34 38 32 20 4f 52 20 62 20 3d  43.266482 OR b =
62b0: 20 32 36 34 33 33 38 33 32 37 39 20 4f 52 20 38   2643383279 OR 8
62c0: 36 32 38 30 33 34 38 32 35 20 3c 20 62 20 7d 0a  628034825 < b }.
62d0: 31 36 39 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  169  { SELECT * 
62e0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
62f0: 45 20 67 20 3e 3d 20 36 39 33 39 39 33 37 35 31  E g >= 693993751
6300: 30 20 7d 0a 31 37 30 20 20 7b 20 53 45 4c 45 43  0 }.170  { SELEC
6310: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
6320: 57 48 45 52 45 20 27 6f 72 27 20 3c 20 61 20 4f  WHERE 'or' < a O
6330: 52 20 62 20 3c 20 67 20 7d 0a 31 37 31 20 20 7b  R b < g }.171  {
6340: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
6350: 33 2c 20 74 34 20 57 48 45 52 45 20 68 20 3c 20  3, t4 WHERE h < 
6360: 27 68 69 6c 6c 73 27 20 4f 52 20 27 61 6e 64 27  'hills' OR 'and'
6370: 20 3e 20 67 20 7d 0a 31 37 32 20 20 7b 20 53 45   > g }.172  { SE
6380: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
6390: 74 34 20 57 48 45 52 45 20 27 66 72 6f 6d 27 20  t4 WHERE 'from' 
63a0: 3e 20 66 20 4f 52 20 66 20 3c 3d 20 66 20 7d 0a  > f OR f <= f }.
63b0: 31 37 33 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  173  { SELECT * 
63c0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
63d0: 45 20 27 76 69 65 77 65 64 27 20 3e 20 62 20 41  E 'viewed' > b A
63e0: 4e 44 20 66 20 3c 20 63 20 7d 0a 31 37 34 20 20  ND f < c }.174  
63f0: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6400: 74 33 2c 20 74 34 20 57 48 45 52 45 20 27 6f 66  t3, t4 WHERE 'of
6410: 27 20 3c 3d 20 61 20 7d 0a 31 37 35 20 20 7b 20  ' <= a }.175  { 
6420: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6430: 2c 20 74 34 20 57 48 45 52 45 20 66 20 3e 20 30  , t4 WHERE f > 0
6440: 39 33 38 34 34 36 30 39 35 20 7d 0a 31 37 36 20  938446095 }.176 
6450: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
6460: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61 20   t3, t4 WHERE a 
6470: 3d 20 67 20 7d 0a 31 37 37 20 20 7b 20 53 45 4c  = g }.177  { SEL
6480: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
6490: 34 20 57 48 45 52 45 20 67 20 3e 3d 20 62 20 41  4 WHERE g >= b A
64a0: 4e 44 20 66 20 42 45 54 57 45 45 4e 20 27 70 65  ND f BETWEEN 'pe
64b0: 61 6b 27 20 41 4e 44 20 27 61 6e 64 27 20 7d 0a  ak' AND 'and' }.
64c0: 31 37 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  178  { SELECT * 
64d0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
64e0: 45 20 67 20 3d 20 61 20 41 4e 44 20 27 69 74 27  E g = a AND 'it'
64f0: 20 3e 20 66 20 7d 0a 31 37 39 20 20 7b 20 53 45   > f }.179  { SE
6500: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20  LECT * FROM t3, 
6510: 74 34 20 57 48 45 52 45 20 61 20 3c 3d 20 62 20  t4 WHERE a <= b 
6520: 4f 52 20 27 66 72 6f 6d 27 20 3e 20 66 20 7d 0a  OR 'from' > f }.
6530: 31 38 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  180  { SELECT * 
6540: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
6550: 45 20 66 20 3c 20 27 61 6e 64 27 20 7d 0a 31 38  E f < 'and' }.18
6560: 31 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  1  { SELECT * FR
6570: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
6580: 36 39 33 39 39 33 37 35 31 30 20 3c 20 62 20 4f  6939937510 < b O
6590: 52 20 27 73 6f 6d 65 74 69 6d 65 73 27 20 3c 20  R 'sometimes' < 
65a0: 68 20 7d 0a 31 38 32 20 20 7b 20 53 45 4c 45 43  h }.182  { SELEC
65b0: 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74 34 20  T * FROM t3, t4 
65c0: 57 48 45 52 45 20 66 20 3e 20 67 20 41 4e 44 20  WHERE f > g AND 
65d0: 66 20 3c 20 27 70 65 61 6b 27 20 7d 0a 31 38 33  f < 'peak' }.183
65e0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
65f0: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61  M t3, t4 WHERE a
6600: 20 3c 3d 20 35 33 35 39 34 2e 30 38 31 32 38 20   <= 53594.08128 
6610: 41 4e 44 20 63 20 3c 3d 20 66 20 41 4e 44 20 66  AND c <= f AND f
6620: 20 3e 3d 20 63 20 7d 0a 31 38 34 20 20 7b 20 53   >= c }.184  { S
6630: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
6640: 20 74 34 20 57 48 45 52 45 20 66 20 3d 20 63 20   t4 WHERE f = c 
6650: 4f 52 20 27 69 74 27 20 3e 20 62 20 4f 52 20 67  OR 'it' > b OR g
6660: 20 42 45 54 57 45 45 4e 20 27 74 68 65 27 20 41   BETWEEN 'the' A
6670: 4e 44 20 27 61 6c 6c 27 20 7d 0a 31 38 35 20 20  ND 'all' }.185  
6680: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6690: 74 33 2c 20 74 34 20 57 48 45 52 45 20 63 20 3c  t3, t4 WHERE c <
66a0: 3d 20 67 20 4f 52 20 61 20 3d 20 68 20 7d 0a 31  = g OR a = h }.1
66b0: 38 36 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46  86  { SELECT * F
66c0: 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45  ROM t3, t4 WHERE
66d0: 20 27 73 61 6d 65 27 20 3d 20 62 20 4f 52 20 63   'same' = b OR c
66e0: 20 3e 3d 20 32 36 34 33 33 38 33 32 37 39 20 7d   >= 2643383279 }
66f0: 0a 31 38 37 20 20 7b 20 53 45 4c 45 43 54 20 2a  .187  { SELECT *
6700: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
6710: 52 45 20 68 20 3c 3d 20 67 20 4f 52 20 63 20 3e  RE h <= g OR c >
6720: 20 36 36 2e 35 39 33 33 34 34 36 31 20 4f 52 20   66.59334461 OR 
6730: 61 20 3c 3d 20 66 20 7d 0a 31 38 38 20 20 7b 20  a <= f }.188  { 
6740: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33  SELECT * FROM t3
6750: 2c 20 74 34 20 57 48 45 52 45 20 62 20 3c 20 63  , t4 WHERE b < c
6760: 20 41 4e 44 20 66 20 3d 20 27 77 72 69 74 69 6e   AND f = 'writin
6770: 67 73 27 20 7d 0a 31 38 39 20 20 7b 20 53 45 4c  gs' }.189  { SEL
6780: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
6790: 34 20 57 48 45 52 45 20 62 20 3c 20 61 20 7d 0a  4 WHERE b < a }.
67a0: 31 39 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  190  { SELECT * 
67b0: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
67c0: 45 20 63 20 3e 3d 20 66 20 4f 52 20 63 20 3d 20  E c >= f OR c = 
67d0: 27 61 6e 64 27 20 7d 0a 31 39 31 20 20 7b 20 53  'and' }.191  { S
67e0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
67f0: 20 74 34 20 57 48 45 52 45 20 66 20 3e 3d 20 27   t4 WHERE f >= '
6800: 70 65 61 6b 27 20 41 4e 44 20 67 20 3e 20 66 20  peak' AND g > f 
6810: 41 4e 44 20 68 20 3e 20 67 20 7d 0a 31 39 32 20  AND h > g }.192 
6820: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
6830: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61 20   t3, t4 WHERE a 
6840: 3e 3d 20 38 39 37 39 33 32 33 38 34 36 20 41 4e  >= 8979323846 AN
6850: 44 20 27 73 61 6d 65 27 20 3e 20 62 20 4f 52 20  D 'same' > b OR 
6860: 63 20 3d 20 27 61 6e 64 27 20 7d 0a 31 39 33 20  c = 'and' }.193 
6870: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
6880: 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 63 20   t3, t4 WHERE c 
6890: 3e 3d 20 67 20 4f 52 20 27 77 72 69 74 69 6e 67  >= g OR 'writing
68a0: 73 27 20 3e 3d 20 63 20 41 4e 44 20 62 20 3d 20  s' >= c AND b = 
68b0: 27 61 6c 6c 27 20 7d 0a 31 39 34 20 20 7b 20 53  'all' }.194  { S
68c0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c  ELECT * FROM t3,
68d0: 20 74 34 20 57 48 45 52 45 20 27 72 65 6d 61 72   t4 WHERE 'remar
68e0: 6b 61 62 6c 79 27 20 3c 20 67 20 7d 0a 31 39 35  kably' < g }.195
68f0: 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f    { SELECT * FRO
6900: 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20 61  M t3, t4 WHERE a
6910: 20 42 45 54 57 45 45 4e 20 27 6f 72 27 20 41 4e   BETWEEN 'or' AN
6920: 44 20 27 70 61 69 6e 74 69 6e 67 73 27 20 41 4e  D 'paintings' AN
6930: 44 20 67 20 3c 3d 20 66 20 7d 0a 31 39 36 20 20  D g <= f }.196  
6940: 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  { SELECT * FROM 
6950: 74 33 2c 20 74 34 20 57 48 45 52 45 20 30 39 33  t3, t4 WHERE 093
6960: 38 34 34 36 30 39 35 20 3e 20 62 20 4f 52 20 67  8446095 > b OR g
6970: 20 3c 3d 20 61 20 4f 52 20 68 20 3e 20 62 20 7d   <= a OR h > b }
6980: 0a 31 39 37 20 20 7b 20 53 45 4c 45 43 54 20 2a  .197  { SELECT *
6990: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
69a0: 52 45 20 67 20 3d 20 32 36 34 33 33 38 33 32 37  RE g = 264338327
69b0: 39 20 41 4e 44 20 66 20 3d 20 67 20 7d 0a 31 39  9 AND f = g }.19
69c0: 38 20 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52  8  { SELECT * FR
69d0: 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52 45 20  OM t3, t4 WHERE 
69e0: 67 20 3c 20 38 39 37 39 33 32 33 38 34 36 20 7d  g < 8979323846 }
69f0: 0a 31 39 39 20 20 7b 20 53 45 4c 45 43 54 20 2a  .199  { SELECT *
6a00: 20 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45   FROM t3, t4 WHE
6a10: 52 45 20 27 61 72 65 27 20 3c 3d 20 62 20 7d 0a  RE 'are' <= b }.
6a20: 32 30 30 20 20 7b 20 53 45 4c 45 43 54 20 2a 20  200  { SELECT * 
6a30: 46 52 4f 4d 20 74 33 2c 20 74 34 20 57 48 45 52  FROM t3, t4 WHER
6a40: 45 20 28 61 3d 31 34 31 35 39 32 36 35 33 35 20  E (a=1415926535 
6a50: 41 4e 44 20 66 3d 38 36 32 38 30 33 34 38 32 35  AND f=8628034825
6a60: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ).              
6a70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6a80: 20 4f 52 20 28 61 3d 36 39 33 39 39 33 37 35 31   OR (a=693993751
6a90: 30 20 41 4e 44 20 66 3d 32 36 34 33 33 38 33 32  0 AND f=26433832
6aa0: 37 39 29 20 7d 0a 32 30 31 20 20 7b 20 53 45 4c  79) }.201  { SEL
6ab0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 2c 20 74  ECT * FROM t3, t
6ac0: 34 2c 20 74 35 2c 20 74 36 0a 20 20 20 20 20 20  4, t5, t6.      
6ad0: 20 20 57 48 45 52 45 20 28 61 3d 31 34 31 35 39    WHERE (a=14159
6ae0: 32 36 35 33 35 20 41 4e 44 20 66 3d 38 36 32 38  26535 AND f=8628
6af0: 30 33 34 38 32 35 20 41 4e 44 20 73 21 3d 27 68  034825 AND s!='h
6b00: 65 6c 6c 6f 27 20 41 4e 44 20 74 21 3d 35 29 0a  ello' AND t!=5).
6b10: 20 20 20 20 20 20 20 20 20 20 20 4f 52 20 28 61             OR (a
6b20: 3d 36 39 33 39 39 33 37 35 31 30 20 41 4e 44 20  =6939937510 AND 
6b30: 66 3d 32 36 34 33 33 38 33 32 37 39 20 41 4e 44  f=2643383279 AND
6b40: 20 73 3d 27 74 61 62 2d 74 35 27 20 41 4e 44 20   s='tab-t5' AND 
6b50: 74 3d 31 32 33 34 35 36 29 20 7d 0a 32 30 32 20  t=123456) }.202 
6b60: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
6b70: 20 74 33 2c 20 74 34 2c 20 74 35 2c 20 74 36 0a   t3, t4, t5, t6.
6b80: 20 20 20 20 20 20 20 20 57 48 45 52 45 20 28 61          WHERE (a
6b90: 3d 31 34 31 35 39 32 36 35 33 35 20 41 4e 44 20  =1415926535 AND 
6ba0: 66 3d 38 36 32 38 30 33 34 38 32 35 20 41 4e 44  f=8628034825 AND
6bb0: 20 73 21 3d 27 68 65 6c 6c 6f 27 20 41 4e 44 20   s!='hello' AND 
6bc0: 74 3d 3d 35 29 0a 20 20 20 20 20 20 20 20 20 20  t==5).          
6bd0: 20 4f 52 20 28 61 3d 36 39 33 39 39 33 37 35 31   OR (a=693993751
6be0: 30 20 41 4e 44 20 66 3d 32 36 34 33 33 38 33 32  0 AND f=26433832
6bf0: 37 39 20 41 4e 44 20 73 3d 27 74 61 62 2d 74 35  79 AND s='tab-t5
6c00: 27 20 41 4e 44 20 74 21 3d 31 32 33 34 35 36 29  ' AND t!=123456)
6c10: 20 7d 0a 0a 20 20 7d 20 7b 0a 20 20 20 20 64 6f   }..  } {.    do
6c20: 5f 74 65 73 74 20 77 68 65 72 65 38 2d 34 2e 24  _test where8-4.$
6c30: 41 2e 24 42 2e 31 20 7b 0a 20 20 20 20 20 20 75  A.$B.1 {.      u
6c40: 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e  nset -nocomplain
6c50: 20 52 0a 20 20 20 20 20 20 73 65 74 20 52 20 5b   R.      set R [
6c60: 65 78 65 63 73 71 6c 20 24 73 71 6c 5d 0a 20 20  execsql $sql].  
6c70: 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65      if {![info e
6c80: 78 69 73 74 73 20 72 65 73 75 6c 74 73 28 24 42  xists results($B
6c90: 29 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 73 65  )]} {.        se
6ca0: 74 20 72 65 73 75 6c 74 73 28 24 42 29 20 24 52  t results($B) $R
6cb0: 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 6c  .      }.      l
6cc0: 69 73 74 0a 20 20 20 20 7d 20 7b 7d 0a 0a 20 20  ist.    } {}..  
6cd0: 20 20 64 6f 5f 74 65 73 74 20 77 68 65 72 65 38    do_test where8
6ce0: 2d 34 2e 24 41 2e 24 42 2e 32 20 7b 20 6c 73 6f  -4.$A.$B.2 { lso
6cf0: 72 74 20 24 52 20 7d 20 5b 6c 73 6f 72 74 20 24  rt $R } [lsort $
6d00: 72 65 73 75 6c 74 73 28 24 42 29 5d 0a 20 20 7d  results($B)].  }
6d10: 0a 20 20 69 6e 63 72 20 41 0a 7d 0a 63 61 74 63  .  incr A.}.catc
6d20: 68 20 7b 75 6e 73 65 74 20 72 65 73 75 6c 74 73  h {unset results
6d30: 7d 0a 63 61 74 63 68 20 7b 75 6e 73 65 74 20 41  }.catch {unset A
6d40: 7d 0a 63 61 74 63 68 20 7b 75 6e 73 65 74 20 42  }.catch {unset B
6d50: 7d 0a 0a 23 20 41 74 20 6f 6e 65 20 70 6f 69 6e  }..# At one poin
6d60: 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  t the following 
6d70: 74 65 73 74 73 20 70 72 6f 76 6f 6b 65 64 20 61  tests provoked a
6d80: 6e 20 69 6e 76 61 6c 69 64 20 77 72 69 74 65 20  n invalid write 
6d90: 65 72 72 6f 72 20 28 77 72 69 74 69 6e 67 0a 23  error (writing.#
6da0: 20 74 6f 20 6d 65 6d 6f 72 79 20 74 68 61 74 20   to memory that 
6db0: 68 61 64 20 61 6c 72 65 61 64 79 20 62 65 65 6e  had already been
6dc0: 20 66 72 65 65 64 29 2e 20 49 74 20 77 61 73 20   freed). It was 
6dd0: 6e 6f 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20  not possible to 
6de0: 64 65 6d 6f 6e 73 74 72 61 74 65 0a 23 20 74 68  demonstrate.# th
6df0: 61 74 20 74 68 69 73 20 62 75 67 20 63 6f 75 6c  at this bug coul
6e00: 64 20 63 61 75 73 65 20 61 20 71 75 65 72 79 20  d cause a query 
6e10: 74 6f 20 72 65 74 75 72 6e 20 62 61 64 20 64 61  to return bad da
6e20: 74 61 2e 0a 23 20 0a 64 6f 5f 74 65 73 74 20 77  ta..# .do_test w
6e30: 68 65 72 65 38 2d 35 2e 31 20 7b 0a 20 20 64 62  here8-5.1 {.  db
6e40: 20 63 6c 6f 73 65 0a 20 20 73 71 6c 69 74 65 33   close.  sqlite3
6e50: 20 64 62 20 74 65 73 74 2e 64 62 0a 20 20 73 71   db test.db.  sq
6e60: 6c 69 74 65 33 5f 64 62 5f 63 6f 6e 66 69 67 5f  lite3_db_config_
6e70: 6c 6f 6f 6b 61 73 69 64 65 20 64 62 20 30 20 30  lookaside db 0 0
6e80: 20 30 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   0.  execsql {. 
6e90: 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20     CREATE TABLE 
6ea0: 74 41 28 0a 20 20 20 20 20 20 61 2c 20 62 2c 20  tA(.      a, b, 
6eb0: 63 2c 20 64 2c 20 65 2c 20 66 2c 20 67 2c 20 68  c, d, e, f, g, h
6ec0: 2c 20 0a 20 20 20 20 20 20 69 2c 20 6a 2c 20 6b  , .      i, j, k
6ed0: 2c 20 6c 2c 20 6d 2c 20 6e 2c 20 6f 2c 20 70 0a  , l, m, n, o, p.
6ee0: 20 20 20 20 29 3b 0a 20 20 7d 0a 20 20 65 78 65      );.  }.  exe
6ef0: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
6f00: 54 20 2a 20 46 52 4f 4d 20 74 41 20 57 48 45 52  T * FROM tA WHER
6f10: 45 0a 20 20 20 20 20 20 61 3d 31 20 41 4e 44 20  E.      a=1 AND 
6f20: 62 3d 32 20 41 4e 44 20 63 3d 33 20 41 4e 44 20  b=2 AND c=3 AND 
6f30: 64 3d 34 20 41 4e 44 20 65 3d 35 20 41 4e 44 20  d=4 AND e=5 AND 
6f40: 66 3d 36 20 41 4e 44 20 67 3d 37 20 41 4e 44 20  f=6 AND g=7 AND 
6f50: 68 3d 38 20 41 4e 44 0a 20 20 20 20 20 20 69 3d  h=8 AND.      i=
6f60: 31 20 41 4e 44 20 6a 3d 32 20 41 4e 44 20 6b 3d  1 AND j=2 AND k=
6f70: 33 20 41 4e 44 20 6c 3d 34 20 41 4e 44 20 6d 3d  3 AND l=4 AND m=
6f80: 35 20 41 4e 44 20 6e 3d 36 20 41 4e 44 20 6f 3d  5 AND n=6 AND o=
6f90: 37 20 41 4e 44 0a 20 20 20 20 20 20 28 70 20 3d  7 AND.      (p =
6fa0: 20 31 20 4f 52 20 70 20 3d 20 32 20 4f 52 20 70   1 OR p = 2 OR p
6fb0: 20 3d 20 33 29 0a 20 20 7d 0a 7d 20 7b 7d 0a 64   = 3).  }.} {}.d
6fc0: 6f 5f 74 65 73 74 20 77 68 65 72 65 38 2d 35 2e  o_test where8-5.
6fd0: 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  2 {.  execsql {.
6fe0: 20 20 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f      SELECT * FRO
6ff0: 4d 20 74 41 20 57 48 45 52 45 0a 20 20 20 20 20  M tA WHERE.     
7000: 20 61 3d 31 20 41 4e 44 20 62 3d 32 20 41 4e 44   a=1 AND b=2 AND
7010: 20 63 3d 33 20 41 4e 44 20 64 3d 34 20 41 4e 44   c=3 AND d=4 AND
7020: 20 65 3d 35 20 41 4e 44 20 66 3d 36 20 41 4e 44   e=5 AND f=6 AND
7030: 20 67 3d 37 20 41 4e 44 20 68 3d 38 20 41 4e 44   g=7 AND h=8 AND
7040: 0a 20 20 20 20 20 20 69 3d 31 20 41 4e 44 20 6a  .      i=1 AND j
7050: 3d 32 20 41 4e 44 20 6b 3d 33 20 41 4e 44 20 6c  =2 AND k=3 AND l
7060: 3d 34 20 41 4e 44 20 6d 3d 35 20 41 4e 44 0a 20  =4 AND m=5 AND. 
7070: 20 20 20 20 20 28 70 20 3d 20 31 20 4f 52 20 70       (p = 1 OR p
7080: 20 3d 20 32 20 4f 52 20 70 20 3d 20 33 29 20 41   = 2 OR p = 3) A
7090: 4e 44 20 6e 3d 36 20 41 4e 44 20 6f 3d 37 0a 20  ND n=6 AND o=7. 
70a0: 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20   }.} {}.do_test 
70b0: 77 68 65 72 65 38 2d 35 2e 33 20 7b 0a 20 20 65  where8-5.3 {.  e
70c0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 49 4e 53  xecsql {.    INS
70d0: 45 52 54 20 49 4e 54 4f 20 74 41 20 56 41 4c 55  ERT INTO tA VALU
70e0: 45 53 28 31 2c 20 32 2c 20 33 2c 20 34 2c 20 35  ES(1, 2, 3, 4, 5
70f0: 2c 20 36 2c 20 37 2c 20 38 2c 20 31 2c 20 32 2c  , 6, 7, 8, 1, 2,
7100: 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 37 2c 20   3, 4, 5, 6, 7, 
7110: 38 29 3b 20 0a 20 20 20 20 43 52 45 41 54 45 20  8); .    CREATE 
7120: 55 4e 49 51 55 45 20 49 4e 44 45 58 20 74 41 49  UNIQUE INDEX tAI
7130: 20 4f 4e 20 74 41 28 70 29 3b 0a 20 20 20 20 43   ON tA(p);.    C
7140: 52 45 41 54 45 20 54 41 42 4c 45 20 74 42 28 78  REATE TABLE tB(x
7150: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
7160: 54 4f 20 74 42 20 56 41 4c 55 45 53 28 27 78 27  TO tB VALUES('x'
7170: 29 3b 0a 20 20 7d 0a 20 20 65 78 65 63 73 71 6c  );.  }.  execsql
7180: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c   {.    SELECT a,
7190: 20 78 20 46 52 4f 4d 20 74 41 20 4c 45 46 54 20   x FROM tA LEFT 
71a0: 4a 4f 49 4e 20 74 42 20 4f 4e 20 28 0a 20 20 20  JOIN tB ON (.   
71b0: 20 20 20 61 3d 31 20 41 4e 44 20 62 3d 32 20 41     a=1 AND b=2 A
71c0: 4e 44 20 63 3d 33 20 41 4e 44 20 64 3d 34 20 41  ND c=3 AND d=4 A
71d0: 4e 44 20 65 3d 35 20 41 4e 44 20 66 3d 36 20 41  ND e=5 AND f=6 A
71e0: 4e 44 20 67 3d 37 20 41 4e 44 20 68 3d 38 20 41  ND g=7 AND h=8 A
71f0: 4e 44 0a 20 20 20 20 20 20 69 3d 31 20 41 4e 44  ND.      i=1 AND
7200: 20 6a 3d 32 20 41 4e 44 20 6b 3d 33 20 41 4e 44   j=2 AND k=3 AND
7210: 20 6c 3d 34 20 41 4e 44 20 6d 3d 35 20 41 4e 44   l=4 AND m=5 AND
7220: 20 6e 3d 36 20 41 4e 44 20 6f 3d 37 20 41 4e 44   n=6 AND o=7 AND
7230: 0a 20 20 20 20 20 20 28 70 20 3d 20 31 20 4f 52  .      (p = 1 OR
7240: 20 70 20 3d 20 32 20 4f 52 20 70 20 3d 20 33 29   p = 2 OR p = 3)
7250: 0a 20 20 20 20 29 0a 20 20 7d 0a 7d 20 7b 31 20  .    ).  }.} {1 
7260: 7b 7d 7d 0a 0a 23 20 54 68 65 20 4f 52 20 6f 70  {}}..# The OR op
7270: 74 69 6d 69 7a 61 74 69 6f 6e 20 61 6e 64 20 57  timization and W
7280: 49 54 48 4f 55 54 20 52 4f 57 49 44 0a 23 0a 64  ITHOUT ROWID.#.d
7290: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 77  o_execsql_test w
72a0: 68 65 72 65 38 2d 36 2e 31 20 7b 0a 20 20 43 52  here8-6.1 {.  CR
72b0: 45 41 54 45 20 54 41 42 4c 45 20 74 36 30 30 28  EATE TABLE t600(
72c0: 61 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 62  a PRIMARY KEY, b
72d0: 29 20 57 49 54 48 4f 55 54 20 72 6f 77 69 64 3b  ) WITHOUT rowid;
72e0: 0a 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20  .  CREATE INDEX 
72f0: 74 36 30 30 62 20 4f 4e 20 74 36 30 30 28 62 29  t600b ON t600(b)
7300: 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20  ;.  INSERT INTO 
7310: 74 36 30 30 20 56 41 4c 55 45 53 28 27 73 74 61  t600 VALUES('sta
7320: 74 65 27 2c 27 73 63 72 65 65 6e 27 29 2c 28 27  te','screen'),('
7330: 65 78 61 63 74 27 2c 27 64 6f 6c 70 68 69 6e 27  exact','dolphin'
7340: 29 2c 28 27 67 72 65 65 6e 27 2c 27 6d 65 72 63  ),('green','merc
7350: 75 72 79 27 29 3b 0a 20 20 53 45 4c 45 43 54 20  ury');.  SELECT 
7360: 61 2c 20 62 2c 20 27 7c 27 20 46 52 4f 4d 20 74  a, b, '|' FROM t
7370: 36 30 30 20 57 48 45 52 45 20 61 3d 3d 27 73 74  600 WHERE a=='st
7380: 61 74 65 27 20 4f 52 20 62 3d 27 6d 65 72 63 75  ate' OR b='mercu
7390: 72 79 27 20 4f 52 44 45 52 20 42 59 20 2b 61 3b  ry' ORDER BY +a;
73a0: 0a 7d 20 7b 67 72 65 65 6e 20 6d 65 72 63 75 72  .} {green mercur
73b0: 79 20 7c 20 73 74 61 74 65 20 73 63 72 65 65 6e  y | state screen
73c0: 20 7c 7d 0a 0a 66 69 6e 69 73 68 5f 74 65 73 74   |}..finish_test
73d0: 0a                                               .