From: drh Date: Mon, 29 Aug 2011 11:56:14 +0000 (+0000) Subject: Back out [05c9832e5f6eb] since it was causing a performance regression with X-Git-Tag: version-3.7.8~38 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2f7820d8b57b6d15da7cd82239e14aafde1ca386;p=thirdparty%2Fsqlite.git Back out [05c9832e5f6eb] since it was causing a performance regression with no obvious benefit. FossilOrigin-Name: 639cc85a911454bffdcccb33f2976c683953ae64 --- 2f7820d8b57b6d15da7cd82239e14aafde1ca386 diff --cc manifest index 71f64ed37f,758a9c3780..385ff9b82f --- a/manifest +++ 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 2d1f6a2e1e,96e327d41a..af5aad4f7e --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 5a00d24b279424d257781ec3f1227e72a5d56f57 -08d0e8799e1441ef063b1cdf9e4107071a0f81ca ++639cc85a911454bffdcccb33f2976c683953ae64 diff --cc src/os_unix.c index 446c6c5fb9,b2956c1647..8abef8de8b --- a/src/os_unix.c +++ b/src/os_unix.c @@@ -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; diff --cc test/pager1.test index 33e84d4b35,136ca05f46..b9ba775add --- a/test/pager1.test +++ b/test/pager1.test @@@ -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