/ Hex Artifact Content
Login

Artifact 1cd8256d4619c39bea48147d344f348823e78678:


0000: 23 20 32 30 30 32 20 4e 6f 76 65 6d 62 65 72 20  # 2002 November 
0010: 33 30 0a 23 0a 23 20 54 68 65 20 61 75 74 68 6f  30.#.# 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 20 54 68 65 0a 23 20 66 6f 63 75  ary.  The.# focu
01b0: 73 20 6f 66 20 74 68 69 73 20 73 63 72 69 70 74  s of this script
01c0: 20 74 65 73 74 69 6e 67 20 74 68 65 20 61 62 69   testing the abi
01d0: 6c 69 74 79 20 6f 66 20 53 51 4c 69 74 65 20 74  lity of SQLite t
01e0: 6f 20 68 61 6e 64 6c 65 20 64 61 74 61 62 61 73  o handle databas
01f0: 65 0a 23 20 66 69 6c 65 73 20 6c 61 72 67 65 72  e.# files larger
0200: 20 74 68 61 6e 20 34 47 42 2e 0a 23 0a 23 20 24   than 4GB..#.# $
0210: 49 64 3a 20 62 69 67 66 69 6c 65 2e 74 65 73 74  Id: bigfile.test
0220: 2c 76 20 31 2e 32 20 32 30 30 32 2f 31 32 2f 31  ,v 1.2 2002/12/1
0230: 37 20 31 34 3a 31 33 3a 34 39 20 64 72 68 20 45  7 14:13:49 drh E
0240: 78 70 20 24 0a 23 0a 0a 73 65 74 20 74 65 73 74  xp $.#..set test
0250: 64 69 72 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d  dir [file dirnam
0260: 65 20 24 61 72 67 76 30 5d 0a 73 6f 75 72 63 65  e $argv0].source
0270: 20 24 74 65 73 74 64 69 72 2f 74 65 73 74 65 72   $testdir/tester
0280: 2e 74 63 6c 0a 0a 23 20 54 68 69 73 20 69 73 20  .tcl..# This is 
0290: 74 68 65 20 6d 64 35 20 63 68 65 63 6b 73 75 6d  the md5 checksum
02a0: 20 6f 66 20 61 6c 6c 20 74 68 65 20 64 61 74 61   of all the data
02b0: 20 69 6e 20 74 61 62 6c 65 20 74 31 20 61 73 20   in table t1 as 
02c0: 63 72 65 61 74 65 64 0a 23 20 62 79 20 74 68 65  created.# by the
02d0: 20 66 69 72 73 74 20 74 65 73 74 2e 20 20 57 65   first test.  We
02e0: 20 77 69 6c 6c 20 75 73 65 20 74 68 69 73 20 6e   will use this n
02f0: 75 6d 62 65 72 20 74 6f 20 6d 61 6b 65 20 73 75  umber to make su
0300: 72 65 20 74 68 61 74 20 64 61 74 61 0a 23 20 6e  re that data.# n
0310: 65 76 65 72 20 63 68 61 6e 67 65 73 2e 0a 23 0a  ever changes..#.
0320: 73 65 74 20 4d 41 47 49 43 5f 53 55 4d 20 7b 35  set MAGIC_SUM {5
0330: 39 33 66 31 65 66 63 66 64 62 65 36 39 38 63 32  93f1efcfdbe698c2
0340: 38 62 34 62 31 62 36 39 33 66 37 65 34 63 66 7d  8b4b1b693f7e4cf}
0350: 0a 0a 64 6f 5f 74 65 73 74 20 62 69 67 66 69 6c  ..do_test bigfil
0360: 65 2d 31 2e 31 20 7b 0a 20 20 65 78 65 63 73 71  e-1.1 {.  execsq
0370: 6c 20 7b 0a 20 20 20 20 42 45 47 49 4e 3b 0a 20  l {.    BEGIN;. 
0380: 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20     CREATE TABLE 
0390: 74 31 28 78 29 3b 0a 20 20 20 20 49 4e 53 45 52  t1(x);.    INSER
03a0: 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53  T INTO t1 VALUES
03b0: 28 27 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e  ('abcdefghijklmn
03c0: 6f 70 71 72 73 74 75 76 77 78 79 7a 27 29 3b 0a  opqrstuvwxyz');.
03d0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
03e0: 74 31 20 53 45 4c 45 43 54 20 72 6f 77 69 64 20  t1 SELECT rowid 
03f0: 7c 7c 20 27 20 27 20 7c 7c 20 78 20 46 52 4f 4d  || ' ' || x FROM
0400: 20 74 31 3b 0a 20 20 20 20 49 4e 53 45 52 54 20   t1;.    INSERT 
0410: 49 4e 54 4f 20 74 31 20 53 45 4c 45 43 54 20 72  INTO t1 SELECT r
0420: 6f 77 69 64 20 7c 7c 20 27 20 27 20 7c 7c 20 78  owid || ' ' || x
0430: 20 46 52 4f 4d 20 74 31 3b 0a 20 20 20 20 49 4e   FROM t1;.    IN
0440: 53 45 52 54 20 49 4e 54 4f 20 74 31 20 53 45 4c  SERT INTO t1 SEL
0450: 45 43 54 20 72 6f 77 69 64 20 7c 7c 20 27 20 27  ECT rowid || ' '
0460: 20 7c 7c 20 78 20 46 52 4f 4d 20 74 31 3b 0a 20   || x FROM t1;. 
0470: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
0480: 31 20 53 45 4c 45 43 54 20 72 6f 77 69 64 20 7c  1 SELECT rowid |
0490: 7c 20 27 20 27 20 7c 7c 20 78 20 46 52 4f 4d 20  | ' ' || x FROM 
04a0: 74 31 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  t1;.    INSERT I
04b0: 4e 54 4f 20 74 31 20 53 45 4c 45 43 54 20 72 6f  NTO t1 SELECT ro
04c0: 77 69 64 20 7c 7c 20 27 20 27 20 7c 7c 20 78 20  wid || ' ' || x 
04d0: 46 52 4f 4d 20 74 31 3b 0a 20 20 20 20 49 4e 53  FROM t1;.    INS
04e0: 45 52 54 20 49 4e 54 4f 20 74 31 20 53 45 4c 45  ERT INTO t1 SELE
04f0: 43 54 20 72 6f 77 69 64 20 7c 7c 20 27 20 27 20  CT rowid || ' ' 
0500: 7c 7c 20 78 20 46 52 4f 4d 20 74 31 3b 0a 20 20  || x FROM t1;.  
0510: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
0520: 20 53 45 4c 45 43 54 20 72 6f 77 69 64 20 7c 7c   SELECT rowid ||
0530: 20 27 20 27 20 7c 7c 20 78 20 46 52 4f 4d 20 74   ' ' || x FROM t
0540: 31 3b 0a 20 20 20 20 43 4f 4d 4d 49 54 3b 0a 20  1;.    COMMIT;. 
0550: 20 7d 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   }.  execsql {. 
0560: 20 20 20 53 45 4c 45 43 54 20 6d 64 35 73 75 6d     SELECT md5sum
0570: 28 78 29 20 46 52 4f 4d 20 74 31 3b 0a 20 20 7d  (x) FROM t1;.  }
0580: 0a 7d 20 24 3a 3a 4d 41 47 49 43 5f 53 55 4d 0a  .} $::MAGIC_SUM.
0590: 0a 23 20 54 72 79 20 74 6f 20 63 72 65 61 74 65  .# Try to create
05a0: 20 61 20 6c 61 72 67 65 20 66 69 6c 65 20 2d 20   a large file - 
05b0: 61 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 6c  a file that is l
05c0: 61 72 67 65 72 20 74 68 61 6e 20 32 5e 33 32 20  arger than 2^32 
05d0: 62 79 74 65 73 2e 0a 23 20 49 66 20 74 68 69 73  bytes..# If this
05e0: 20 66 61 69 6c 73 2c 20 69 74 20 6d 65 61 6e 73   fails, it means
05f0: 20 74 68 61 74 20 74 68 65 20 73 79 73 74 65 6d   that the system
0600: 20 62 65 69 6e 67 20 74 65 73 74 65 64 20 64 6f   being tested do
0610: 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 0a 23  es not support.#
0620: 20 6c 61 72 67 65 20 66 69 6c 65 73 2e 20 20 53   large files.  S
0630: 6f 20 73 6b 69 70 20 61 6c 6c 20 6f 66 20 74 68  o skip all of th
0640: 65 20 72 65 6d 61 69 6e 69 6e 67 20 74 65 73 74  e remaining test
0650: 73 20 69 6e 20 74 68 69 73 20 66 69 6c 65 2e 0a  s in this file..
0660: 23 0a 64 62 20 63 6c 6f 73 65 0a 69 66 20 7b 5b  #.db close.if {[
0670: 63 61 74 63 68 20 7b 66 61 6b 65 5f 62 69 67 5f  catch {fake_big_
0680: 66 69 6c 65 20 34 30 39 36 20 74 65 73 74 2e 64  file 4096 test.d
0690: 62 7d 5d 7d 20 7b 0a 20 20 70 75 74 73 20 22 2a  b}]} {.  puts "*
06a0: 2a 2a 2a 20 55 6e 61 62 6c 65 20 74 6f 20 63 72  *** Unable to cr
06b0: 65 61 74 65 20 61 20 66 69 6c 65 20 6c 61 72 67  eate a file larg
06c0: 65 72 20 74 68 61 6e 20 34 30 39 36 20 4d 42 2e  er than 4096 MB.
06d0: 20 2a 2a 2a 2a 2a 22 0a 20 20 66 69 6e 69 73 68   *****".  finish
06e0: 5f 74 65 73 74 0a 20 20 72 65 74 75 72 6e 0a 7d  _test.  return.}
06f0: 0a 0a 64 6f 5f 74 65 73 74 20 62 69 67 66 69 6c  ..do_test bigfil
0700: 65 2d 31 2e 32 20 7b 0a 20 20 73 71 6c 69 74 65  e-1.2 {.  sqlite
0710: 20 64 62 20 74 65 73 74 2e 64 62 0a 20 20 65 78   db test.db.  ex
0720: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
0730: 43 54 20 6d 64 35 73 75 6d 28 78 29 20 46 52 4f  CT md5sum(x) FRO
0740: 4d 20 74 31 3b 0a 20 20 7d 0a 7d 20 24 3a 3a 4d  M t1;.  }.} $::M
0750: 41 47 49 43 5f 53 55 4d 0a 0a 23 20 54 68 65 20  AGIC_SUM..# The 
0760: 70 72 65 76 69 6f 75 73 20 74 65 73 74 20 6d 61  previous test ma
0770: 79 20 66 61 69 6c 20 6f 6e 20 73 6f 6d 65 20 73  y fail on some s
0780: 79 73 74 65 6d 73 20 62 65 63 61 75 73 65 20 74  ystems because t
0790: 68 65 79 20 61 72 65 20 75 6e 61 62 6c 65 0a 23  hey are unable.#
07a0: 20 74 6f 20 68 61 6e 64 6c 65 20 6c 61 72 67 65   to handle large
07b0: 20 66 69 6c 65 73 2e 20 20 49 66 20 74 68 61 74   files.  If that
07c0: 20 69 73 20 73 6f 2c 20 74 68 65 6e 20 73 6b 69   is so, then ski
07d0: 70 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 6f 6c  p all of the fol
07e0: 6c 6f 77 69 6e 67 0a 23 20 74 65 73 74 73 2e 20  lowing.# tests. 
07f0: 20 57 65 20 77 69 6c 6c 20 6b 6e 6f 77 20 74 68   We will know th
0800: 65 20 61 62 6f 76 65 20 74 65 73 74 20 66 61 69  e above test fai
0810: 6c 65 64 20 62 65 63 61 75 73 65 20 74 68 65 20  led because the 
0820: 22 64 62 22 20 63 6f 6d 6d 61 6e 64 0a 23 20 64  "db" command.# d
0830: 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 0a 23  oes not exist..#
0840: 0a 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 5b 69  .if {[llength [i
0850: 6e 66 6f 20 63 6f 6d 6d 61 6e 64 20 64 62 5d 5d  nfo command db]]
0860: 3e 30 7d 20 7b 0a 0a 64 6f 5f 74 65 73 74 20 62  >0} {..do_test b
0870: 69 67 66 69 6c 65 2d 31 2e 33 20 7b 0a 20 20 65  igfile-1.3 {.  e
0880: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 43 52 45  xecsql {.    CRE
0890: 41 54 45 20 54 41 42 4c 45 20 74 32 20 41 53 20  ATE TABLE t2 AS 
08a0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 31  SELECT * FROM t1
08b0: 3b 0a 20 20 20 20 53 45 4c 45 43 54 20 6d 64 35  ;.    SELECT md5
08c0: 73 75 6d 28 78 29 20 46 52 4f 4d 20 74 32 3b 0a  sum(x) FROM t2;.
08d0: 20 20 7d 0a 7d 20 24 3a 3a 4d 41 47 49 43 5f 53    }.} $::MAGIC_S
08e0: 55 4d 0a 64 6f 5f 74 65 73 74 20 62 69 67 66 69  UM.do_test bigfi
08f0: 6c 65 2d 31 2e 34 20 7b 0a 20 20 64 62 20 63 6c  le-1.4 {.  db cl
0900: 6f 73 65 0a 20 20 73 71 6c 69 74 65 20 64 62 20  ose.  sqlite db 
0910: 74 65 73 74 2e 64 62 0a 20 20 65 78 65 63 73 71  test.db.  execsq
0920: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 6d  l {.    SELECT m
0930: 64 35 73 75 6d 28 78 29 20 46 52 4f 4d 20 74 31  d5sum(x) FROM t1
0940: 3b 0a 20 20 7d 0a 7d 20 24 3a 3a 4d 41 47 49 43  ;.  }.} $::MAGIC
0950: 5f 53 55 4d 0a 64 6f 5f 74 65 73 74 20 62 69 67  _SUM.do_test big
0960: 66 69 6c 65 2d 31 2e 35 20 7b 0a 20 20 65 78 65  file-1.5 {.  exe
0970: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
0980: 54 20 6d 64 35 73 75 6d 28 78 29 20 46 52 4f 4d  T md5sum(x) FROM
0990: 20 74 32 3b 0a 20 20 7d 0a 7d 20 24 3a 3a 4d 41   t2;.  }.} $::MA
09a0: 47 49 43 5f 53 55 4d 0a 0a 64 62 20 63 6c 6f 73  GIC_SUM..db clos
09b0: 65 0a 69 66 20 7b 5b 63 61 74 63 68 20 7b 66 61  e.if {[catch {fa
09c0: 6b 65 5f 62 69 67 5f 66 69 6c 65 20 38 31 39 32  ke_big_file 8192
09d0: 20 74 65 73 74 2e 64 62 7d 5d 7d 20 7b 0a 20 20   test.db}]} {.  
09e0: 70 75 74 73 20 22 2a 2a 2a 2a 20 55 6e 61 62 6c  puts "**** Unabl
09f0: 65 20 74 6f 20 63 72 65 61 74 65 20 61 20 66 69  e to create a fi
0a00: 6c 65 20 6c 61 72 67 65 72 20 74 68 61 6e 20 38  le larger than 8
0a10: 31 39 32 20 4d 42 2e 20 2a 2a 2a 2a 2a 22 0a 20  192 MB. *****". 
0a20: 20 66 69 6e 69 73 68 5f 74 65 73 74 0a 20 20 72   finish_test.  r
0a30: 65 74 75 72 6e 0a 7d 0a 0a 64 6f 5f 74 65 73 74  eturn.}..do_test
0a40: 20 62 69 67 66 69 6c 65 2d 31 2e 36 20 7b 0a 20   bigfile-1.6 {. 
0a50: 20 73 71 6c 69 74 65 20 64 62 20 74 65 73 74 2e   sqlite db test.
0a60: 64 62 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20  db.  execsql {. 
0a70: 20 20 20 53 45 4c 45 43 54 20 6d 64 35 73 75 6d     SELECT md5sum
0a80: 28 78 29 20 46 52 4f 4d 20 74 31 3b 0a 20 20 7d  (x) FROM t1;.  }
0a90: 0a 7d 20 24 3a 3a 4d 41 47 49 43 5f 53 55 4d 0a  .} $::MAGIC_SUM.
0aa0: 64 6f 5f 74 65 73 74 20 62 69 67 66 69 6c 65 2d  do_test bigfile-
0ab0: 31 2e 37 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  1.7 {.  execsql 
0ac0: 7b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42  {.    CREATE TAB
0ad0: 4c 45 20 74 33 20 41 53 20 53 45 4c 45 43 54 20  LE t3 AS SELECT 
0ae0: 2a 20 46 52 4f 4d 20 74 31 3b 0a 20 20 20 20 53  * FROM t1;.    S
0af0: 45 4c 45 43 54 20 6d 64 35 73 75 6d 28 78 29 20  ELECT md5sum(x) 
0b00: 46 52 4f 4d 20 74 33 3b 0a 20 20 7d 0a 7d 20 24  FROM t3;.  }.} $
0b10: 3a 3a 4d 41 47 49 43 5f 53 55 4d 0a 64 6f 5f 74  ::MAGIC_SUM.do_t
0b20: 65 73 74 20 62 69 67 66 69 6c 65 2d 31 2e 38 20  est bigfile-1.8 
0b30: 7b 0a 20 20 64 62 20 63 6c 6f 73 65 0a 20 20 73  {.  db close.  s
0b40: 71 6c 69 74 65 20 64 62 20 74 65 73 74 2e 64 62  qlite db test.db
0b50: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
0b60: 20 53 45 4c 45 43 54 20 6d 64 35 73 75 6d 28 78   SELECT md5sum(x
0b70: 29 20 46 52 4f 4d 20 74 31 3b 0a 20 20 7d 0a 7d  ) FROM t1;.  }.}
0b80: 20 24 3a 3a 4d 41 47 49 43 5f 53 55 4d 0a 64 6f   $::MAGIC_SUM.do
0b90: 5f 74 65 73 74 20 62 69 67 66 69 6c 65 2d 31 2e  _test bigfile-1.
0ba0: 39 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  9 {.  execsql {.
0bb0: 20 20 20 20 53 45 4c 45 43 54 20 6d 64 35 73 75      SELECT md5su
0bc0: 6d 28 78 29 20 46 52 4f 4d 20 74 32 3b 0a 20 20  m(x) FROM t2;.  
0bd0: 7d 0a 7d 20 24 3a 3a 4d 41 47 49 43 5f 53 55 4d  }.} $::MAGIC_SUM
0be0: 0a 64 6f 5f 74 65 73 74 20 62 69 67 66 69 6c 65  .do_test bigfile
0bf0: 2d 31 2e 31 30 20 7b 0a 20 20 65 78 65 63 73 71  -1.10 {.  execsq
0c00: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 6d  l {.    SELECT m
0c10: 64 35 73 75 6d 28 78 29 20 46 52 4f 4d 20 74 33  d5sum(x) FROM t3
0c20: 3b 0a 20 20 7d 0a 7d 20 24 3a 3a 4d 41 47 49 43  ;.  }.} $::MAGIC
0c30: 5f 53 55 4d 0a 0a 64 62 20 63 6c 6f 73 65 0a 69  _SUM..db close.i
0c40: 66 20 7b 5b 63 61 74 63 68 20 7b 66 61 6b 65 5f  f {[catch {fake_
0c50: 62 69 67 5f 66 69 6c 65 20 31 36 33 38 34 20 74  big_file 16384 t
0c60: 65 73 74 2e 64 62 7d 5d 7d 20 7b 0a 20 20 70 75  est.db}]} {.  pu
0c70: 74 73 20 22 2a 2a 2a 2a 20 55 6e 61 62 6c 65 20  ts "**** Unable 
0c80: 74 6f 20 63 72 65 61 74 65 20 61 20 66 69 6c 65  to create a file
0c90: 20 6c 61 72 67 65 72 20 74 68 61 6e 20 31 36 33   larger than 163
0ca0: 38 34 20 4d 42 2e 20 2a 2a 2a 2a 2a 22 0a 20 20  84 MB. *****".  
0cb0: 66 69 6e 69 73 68 5f 74 65 73 74 0a 20 20 72 65  finish_test.  re
0cc0: 74 75 72 6e 0a 7d 0a 0a 64 6f 5f 74 65 73 74 20  turn.}..do_test 
0cd0: 62 69 67 66 69 6c 65 2d 31 2e 31 31 20 7b 0a 20  bigfile-1.11 {. 
0ce0: 20 73 71 6c 69 74 65 20 64 62 20 74 65 73 74 2e   sqlite db test.
0cf0: 64 62 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20  db.  execsql {. 
0d00: 20 20 20 53 45 4c 45 43 54 20 6d 64 35 73 75 6d     SELECT md5sum
0d10: 28 78 29 20 46 52 4f 4d 20 74 31 3b 0a 20 20 7d  (x) FROM t1;.  }
0d20: 0a 7d 20 24 3a 3a 4d 41 47 49 43 5f 53 55 4d 0a  .} $::MAGIC_SUM.
0d30: 64 6f 5f 74 65 73 74 20 62 69 67 66 69 6c 65 2d  do_test bigfile-
0d40: 31 2e 31 32 20 7b 0a 20 20 65 78 65 63 73 71 6c  1.12 {.  execsql
0d50: 20 7b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41   {.    CREATE TA
0d60: 42 4c 45 20 74 34 20 41 53 20 53 45 4c 45 43 54  BLE t4 AS SELECT
0d70: 20 2a 20 46 52 4f 4d 20 74 31 3b 0a 20 20 20 20   * FROM t1;.    
0d80: 53 45 4c 45 43 54 20 6d 64 35 73 75 6d 28 78 29  SELECT md5sum(x)
0d90: 20 46 52 4f 4d 20 74 34 3b 0a 20 20 7d 0a 7d 20   FROM t4;.  }.} 
0da0: 24 3a 3a 4d 41 47 49 43 5f 53 55 4d 0a 64 6f 5f  $::MAGIC_SUM.do_
0db0: 74 65 73 74 20 62 69 67 66 69 6c 65 2d 31 2e 31  test bigfile-1.1
0dc0: 33 20 7b 0a 20 20 64 62 20 63 6c 6f 73 65 0a 20  3 {.  db close. 
0dd0: 20 73 71 6c 69 74 65 20 64 62 20 74 65 73 74 2e   sqlite db test.
0de0: 64 62 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20  db.  execsql {. 
0df0: 20 20 20 53 45 4c 45 43 54 20 6d 64 35 73 75 6d     SELECT md5sum
0e00: 28 78 29 20 46 52 4f 4d 20 74 31 3b 0a 20 20 7d  (x) FROM t1;.  }
0e10: 0a 7d 20 24 3a 3a 4d 41 47 49 43 5f 53 55 4d 0a  .} $::MAGIC_SUM.
0e20: 64 6f 5f 74 65 73 74 20 62 69 67 66 69 6c 65 2d  do_test bigfile-
0e30: 31 2e 31 34 20 7b 0a 20 20 65 78 65 63 73 71 6c  1.14 {.  execsql
0e40: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 6d 64   {.    SELECT md
0e50: 35 73 75 6d 28 78 29 20 46 52 4f 4d 20 74 32 3b  5sum(x) FROM t2;
0e60: 0a 20 20 7d 0a 7d 20 24 3a 3a 4d 41 47 49 43 5f  .  }.} $::MAGIC_
0e70: 53 55 4d 0a 64 6f 5f 74 65 73 74 20 62 69 67 66  SUM.do_test bigf
0e80: 69 6c 65 2d 31 2e 31 35 20 7b 0a 20 20 65 78 65  ile-1.15 {.  exe
0e90: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
0ea0: 54 20 6d 64 35 73 75 6d 28 78 29 20 46 52 4f 4d  T md5sum(x) FROM
0eb0: 20 74 33 3b 0a 20 20 7d 0a 7d 20 24 3a 3a 4d 41   t3;.  }.} $::MA
0ec0: 47 49 43 5f 53 55 4d 0a 64 6f 5f 74 65 73 74 20  GIC_SUM.do_test 
0ed0: 62 69 67 66 69 6c 65 2d 31 2e 31 36 20 7b 0a 20  bigfile-1.16 {. 
0ee0: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
0ef0: 45 4c 45 43 54 20 6d 64 35 73 75 6d 28 78 29 20  ELECT md5sum(x) 
0f00: 46 52 4f 4d 20 74 33 3b 0a 20 20 7d 0a 7d 20 24  FROM t3;.  }.} $
0f10: 3a 3a 4d 41 47 49 43 5f 53 55 4d 0a 0a 7d 20 3b  ::MAGIC_SUM..} ;
0f20: 23 20 45 6e 64 20 6f 66 20 74 68 65 20 22 69 66  # End of the "if
0f30: 28 20 64 62 20 63 6f 6d 6d 61 6e 64 20 65 78 69  ( db command exi
0f40: 73 74 73 20 29 22 0a 0a 66 69 6e 69 73 68 5f 74  sts )"..finish_t
0f50: 65 73 74 0a                                      est.