]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Back out [05c9832e5f6eb] since it was causing a performance regression with
authordrh <drh@noemail.net>
Mon, 29 Aug 2011 11:56:14 +0000 (11:56 +0000)
committerdrh <drh@noemail.net>
Mon, 29 Aug 2011 11:56:14 +0000 (11:56 +0000)
no obvious benefit.

FossilOrigin-Name: 639cc85a911454bffdcccb33f2976c683953ae64

1  2 
manifest
manifest.uuid
src/os_unix.c
test/pager1.test

diff --cc manifest
index 71f64ed37f5caa36e2e08082d60cc3aea05b9c7b,758a9c3780246da19d17f2a92d98a6e05c1d2635..385ff9b82fa03cd7dfd3fbc0b18d83ccb38e884a
+++ b/manifest
@@@ -1,9 -1,9 +1,9 @@@
- C Merge\sperformance\senhancements\sinto\strunk.
- D 2011-08-29T03:08:47.559
 -C Merge\sthe\swinAccess\sretry\slogic\sfrom\sthe\santi-antivirus\sbranch\ninto\sthe\strunk.
 -D 2011-07-23T13:54:34.013
++C Back\sout\s[05c9832e5f6eb]\ssince\sit\swas\scausing\sa\sperformance\sregression\swith\nno\sobvious\sbenefit.
++D 2011-08-29T11:56:14.294
  F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 -F Makefile.in 1e6988b3c11dee9bd5edc0c804bd4468d74a9cdc
 +F Makefile.in 8c930e7b493d59099ea1304bd0f2aed152eb3315
  F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
 -F Makefile.msc 8e04f517922b9e31a5bf975f07bb66df79ae7076
 +F Makefile.msc 55fe94bf23b4c1ff035f19b0ae2ea486350f8d01
  F Makefile.vxworks c85ec1d8597fe2f7bc225af12ac1666e21379151
  F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
  F VERSION f724de7326e87b7f3b0a55f16ef4b4d993680d54
@@@ -165,10 -165,10 +165,10 @@@ F src/os.c fcc717427a80b2ed225373f07b64
  F src/os.h 9dbed8c2b9c1f2f2ebabc09e49829d4777c26bf9
  F src/os_common.h 65a897143b64667d23ed329a7984b9b405accb58
  F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440
- F src/os_unix.c 3792524439a13af0464ba65baf4d647dad063604
 -F src/os_unix.c dcd6d5782dd30e918dc3d111cdcb1883bfb95345
 -F src/os_win.c 8449cb4ce1cd50248b7133108532d9582cc6c042
 -F src/pager.c 120550e7ef01dafaa2cbb4a0528c0d87c8f12b41
 -F src/pager.h 3f8c783de1d4706b40b1ac15b64f5f896bcc78d1
++F src/os_unix.c 014cd466edc2b73e417f382c3213b6c72bc35280
 +F src/os_win.c 86bcb5bd0386c761c764c3383879469346da3a14
 +F src/pager.c 817f7f7140c9fa2641f28e6330e924708ddd870d
 +F src/pager.h 2bab1b2ea4eac58663b5833e3522e36b5ff63447
  F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58
  F src/pcache.c 49e718c095810c6b3334e3a6d89970aceaddefce
  F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050
@@@ -602,17 -599,17 +602,17 @@@ F test/multiplex.test 9df8bf738b3b97c71
  F test/mutex1.test 78b2b9bb320e51d156c4efdb71b99b051e7a4b41
  F test/mutex2.test bfeaeac2e73095b2ac32285d2756e3a65e681660
  F test/nan.test dc212a22b36109fd1ae37154292444ef249c5ec2
 -F test/notify1.test 8433bc74bd952fb8a6e3f8d7a4c2b28dfd69e310
 -F test/notify2.test 195a467e021f74197be2c4fb02d6dee644b8d8db
 -F test/notify3.test d60923e186e0900f4812a845fcdfd8eea096e33a
 +F test/notify1.test 669b2b743618efdc18ca4b02f45423d5d2304abf
 +F test/notify2.test 9503e51b9a272a5405c205ad61b7623d5a9ca489
 +F test/notify3.test a86259abbfb923aa27d30f0fc038c88e5251488a
  F test/notnull.test cc7c78340328e6112a13c3e311a9ab3127114347
  F test/null.test a8b09b8ed87852742343b33441a9240022108993
 -F test/openv2.test af02ed0a9cbc0d2a61b8f35171d4d117e588e4ec
 +F test/openv2.test 0d3040974bf402e19b7df4b783e447289d7ab394
  F test/oserror.test 3fe52e0bd2891a9bf7cdeb639554992453d46301
- F test/pager1.test 70c94c895ffaf4dc34ee4b66e6e4cd713af41edc
 -F test/pager1.test 228a831060dab96bc91b03ba2a85cedefd1ab38a
++F test/pager1.test 2d3a7c6facd899d8879d23f31454cc53f49358b9
  F test/pager2.test 745b911dde3d1f24ae0870bd433dfa83d7c658c1
  F test/pager3.test 3856d9c80839be0668efee1b74811b1b7f7fc95f
 -F test/pagerfault.test 4194b8ea2a5da7958cd155556605ff554e1b065a
 +F test/pagerfault.test 452f2cc23e3bfcfa935f4442aec1da4fe1dc0442
  F test/pagerfault2.test 1f79ea40d1133b2683a2f811b00f2399f7ec2401
  F test/pagerfault3.test f16e2efcb5fc9996d1356f7cbc44c998318ae1d7
  F test/pageropt.test 8146bf448cf09e87bb1867c2217b921fb5857806
@@@ -883,11 -877,11 +883,11 @@@ F test/vtabF.test fd5ad376f5a34fe0891df
  F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5
  F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8
  F test/vtab_shared.test 0eff9ce4f19facbe0a3e693f6c14b80711a4222d
 -F test/wal.test 5617ad308bfdb8a8885220d8a261a6096a8d7e57
 -F test/wal2.test aa0fb2314b3235be4503c06873e41ebfc0757782
 -F test/wal3.test d512a5c8b4aa345722d11e8f1671db7eb15a0e39
 -F test/wal4.test 3404b048fa5e10605facaf70384e6d2943412e30
 +F test/wal.test e11da8d5ea8a38a247339455098357e9adf63d76
 +F test/wal2.test ad6412596815f553cd30f271d291ab003092bc7e
 +F test/wal3.test 18da4e65c30c43c646ad40e145e9a074e4062fc9
 +F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c
- F test/wal5.test 08e145a352b1223930c7f0a1de82a8747a99c322
+ F test/wal5.test f06a0427e06db00347e32eb9fa99d6a5c0f2d088
  F test/wal6.test 2e3bc767d9c2ce35c47106148d43fcbd072a93b3
  F test/wal7.test 2ae8f427d240099cc4b2dfef63cff44e2a68a1bd
  F test/wal_common.tcl a98f17fba96206122eff624db0ab13ec377be4fe
@@@ -960,8 -951,8 +960,8 @@@ F tool/split-sqlite3c.tcl d9be87f1c3402
  F tool/symbols.sh caaf6ccc7300fd43353318b44524853e222557d5
  F tool/tostr.awk 11760e1b94a5d3dcd42378f3cc18544c06cfa576
  F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 -F tool/warnings.sh 2ebae31e1eb352696f3c2f7706a34c084b28c262
 -P 6fb7cfc2efb32dd5c8921a90b853390bc44d4794 a6b85c73406caa3bf0585341c8ebc9897a1884f4
 -R 1255c11fb87a761a1f8eac495b8a38b4
 +F tool/warnings.sh b7fdb2cc525f5ef4fa43c80e771636dd3690f9d2
- P 5454d0fe227b7c1f0e7715b6c08f97019628fc4c ff71d20a9ed129bd1785a3f7a777ce62098735b7
- R 285e2022a0bbe1b677ddbb6dec295cd8
++P 5a00d24b279424d257781ec3f1227e72a5d56f57 08d0e8799e1441ef063b1cdf9e4107071a0f81ca
++R e71350ad5d643f1597441507aa7bf97e
  U drh
- Z 695e51e350fb27c7201e6f8a4ffc48bc
 -Z 2eecc3b1645ef2e7bef18a04829340dc
++Z 50a26ca875ae5b915f6bf10b2da0f1e7
diff --cc manifest.uuid
index 2d1f6a2e1e80ff93e1e47f452ef954e96c16b4cb,96e327d41a18ed9ae05226238a6e2daf00f1b51a..af5aad4f7e100ecef19eab7db8adf94194a97dda
@@@ -1,1 -1,1 +1,1 @@@
- 5a00d24b279424d257781ec3f1227e72a5d56f57
 -08d0e8799e1441ef063b1cdf9e4107071a0f81ca
++639cc85a911454bffdcccb33f2976c683953ae64
diff --cc src/os_unix.c
index 446c6c5fb9966fd8027bd2490e191b776a17aa81,b2956c1647e8aa163136514f6a6653a022b7bbbd..8abef8de8b6cbe033ed8769b6157dc2f4b5bbe73
@@@ -3440,14 -3388,15 +3440,13 @@@ static int proxyFileControl(sqlite3_fil
  
  /* 
  ** This function is called to handle the SQLITE_FCNTL_SIZE_HINT 
 -** file-control operation.
 -**
 -** If the user has configured a chunk-size for this file, it could be
 -** that the file needs to be extended at this point. Otherwise, the
 -** SQLITE_FCNTL_SIZE_HINT operation is a no-op for Unix.
 +** file-control operation.  Enlarge the database to nBytes in size
 +** (rounded up to the next chunk-size).  If the database is already
 +** nBytes or larger, this routine is a no-op.
  */
  static int fcntlSizeHint(unixFile *pFile, i64 nByte){
-   { /* preserve indentation of removed "if" */
+   if( pFile->szChunk ){
      i64 nSize;                    /* Required file size */
-     i64 szChunk;                  /* Chunk size */
      struct stat buf;              /* Used to hold return values of fstat() */
     
      if( osFstat(pFile->h, &buf) ) return SQLITE_IOERR_FSTAT;
index 33e84d4b35b25b3c402e5b587281c8ca435b4016,136ca05f467ca096bc7b65f2f2e791183ff3e5ee..b9ba775addb8068c2a9d568986749ca2d71e023f
@@@ -2418,42 -2418,5 +2418,43 @@@ do_test pager1-31.1 
  } {ok}
  }
  
 +#-------------------------------------------------------------------------
 +# Test that a database file can be "pre-hinted" to a certain size and that
 +# subsequent spilling of the pager cache does not result in the database
 +# file being shrunk.
 +#
 +catch {db close}
 +forcedelete test.db
 +
 +do_test pager1-32.1 {
 +  sqlite3 db test.db
 +  execsql {
 +    CREATE TABLE t1(x, y);
 +  }
 +  db close
 +  sqlite3 db test.db
 +  execsql {
 +    BEGIN;
 +    INSERT INTO t1 VALUES(1, randomblob(10000));
 +  }
++  file_control_chunksize_test db main 1024
 +  file_control_sizehint_test db main 20971520; # 20MB
 +  execsql {
 +    PRAGMA cache_size = 10;
 +    INSERT INTO t1 VALUES(1, randomblob(10000));
 +    INSERT INTO t1 VALUES(2, randomblob(10000));
 +    INSERT INTO t1 SELECT x+2, randomblob(10000) from t1;
 +    INSERT INTO t1 SELECT x+4, randomblob(10000) from t1;
 +    INSERT INTO t1 SELECT x+8, randomblob(10000) from t1;
 +    INSERT INTO t1 SELECT x+16, randomblob(10000) from t1;
 +    SELECT count(*) FROM t1;
 +    COMMIT;
 +  }
 +  db close
 +  file size test.db
 +} {20971520}
 +
 +# Cleanup 20MB file left by the previous test.
 +forcedelete test.db
  
  finish_test