]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge performance enhancements from trunk. This branch now runs (slightly)
authordrh <drh@noemail.net>
Thu, 3 Sep 2015 20:52:44 +0000 (20:52 +0000)
committerdrh <drh@noemail.net>
Thu, 3 Sep 2015 20:52:44 +0000 (20:52 +0000)
faster than the 3.8.11.1 release, though still slightly slower than trunk.

FossilOrigin-Name: c490bfb150c66763226a35e30ba289abbf29906d

1  2 
manifest
manifest.uuid
src/pager.c

diff --cc manifest
index 5e033198ad9a78984d35b9f51c1df61f76282fd6,febdf5011bef1d294e9df5d66a6c5cf39e9c1f96..2eb676f458cac23cf9a6e23c92919c110d6dada5
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Changes\sfrom\sENABLE_CONCURRENT\s(default\soff)\sto\sOMIT_CONCURRENT\s(default\son).\nThis\sis\snot\sa\sclear-cut\sdecision\sand\smight\sbe\schanged\sback.
- D 2015-09-03T15:17:12.457
 -C Change\sthe\spcache\smodule\sto\skeep\strack\sof\sthe\stotal\snumber\sof\sreferences\sto\nall\spages\srather\sthan\sthe\snumber\sof\spages\sreferences,\sfor\sa\sperformance\nimprovement\sand\ssize\sreduction.
 -D 2015-09-03T20:43:55.204
++C Merge\sperformance\senhancements\sfrom\strunk.\s\sThis\sbranch\snow\sruns\s(slightly)\nfaster\sthan\sthe\s3.8.11.1\srelease,\sthough\sstill\sslightly\sslower\sthan\strunk.
++D 2015-09-03T20:52:44.863
  F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
  F Makefile.in f85066ce844a28b671aaeeff320921cd0ce36239
  F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@@ -324,12 -324,12 +324,12 @@@ F src/os_setup.h c9d4553b5aaa6f73391448
  F src/os_unix.c 76f493ed71c4154338049dee1bf6e47f69c74a55
  F src/os_win.c 40b3af7a47eb1107d0d69e592bec345a3b7b798a
  F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
- F src/pager.c 567093b5d35cba6e5a4316e1611f6bd44415c0d7
 -F src/pager.c 4784012f80b2197c61ff6eaf4f5c7026d93253fd
 -F src/pager.h 6d435f563b3f7fcae4b84433b76a6ac2730036e2
 -F src/parse.y f599aa5e871a493330d567ced93de696f61f48f7
++F src/pager.c 06e10a0b736ba22df52e0f56fa67a42de41a0445
 +F src/pager.h 244606cccd4293a2bc4be20bb37bf730028c5c18
 +F src/parse.y 1e645cacb93979c59f2a510ee2c100e769bd5e3c
- F src/pcache.c cde06aa50962595e412d497e22fd2e07878ba1f0
+ F src/pcache.c 24be750c79272e0ca7b6e007bc94999700f3e5ef
  F src/pcache.h 9968603796240cdf83da7e7bef76edf90619cea9
- F src/pcache1.c b31af9dbc83b9c68e87d681b8453a9605f28e734
+ F src/pcache1.c e1529369c047ac645e6a28196f25b7e936c46b82
  F src/pragma.c d71b813e67bf03f3116b9dd5164fbfd81ec673a2
  F src/pragma.h 631a91c8b0e6ca8f051a1d8a4a0da4150e04620a
  F src/prepare.c 82e5db1013846a819f198336fed72c44c974e7b1
@@@ -1383,7 -1380,7 +1383,7 @@@ F tool/vdbe_profile.tcl 67746953071a9f8
  F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
  F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P 71e7299e8d501618b10f8c1f78572789b1b6853a
- R cf8206aeb5613d1354992f43b08834e8
 -P 618d8dd4ff44cce10cc4688a2134715ff66cc562
 -R 7304361de7c7fa82f683343fecc699dd
++P f8ae9bfd05abc35293ad6bc62ab1bdbe357d964e f00a9e1e998c4bd249a45444dc2d71a7e4903b8b
++R 26478d9405c36063665d5a8b96df78bb
  U drh
- Z 1d56cb0a736729e62628d2ca4ac46f41
 -Z 8da3824804c6c5593515c7564fca1c5b
++Z 60e0d06fc5e4f945ca55d9cbf383722d
diff --cc manifest.uuid
index 1701931440f36d24d1c383312dfdcfba4e0ff475,4550487b630f376cba58216ec776eee941934d05..bf8f7c634e68892fdfd8f863a007765d1923d8c7
@@@ -1,1 -1,1 +1,1 @@@
- f8ae9bfd05abc35293ad6bc62ab1bdbe357d964e
 -f00a9e1e998c4bd249a45444dc2d71a7e4903b8b
++c490bfb150c66763226a35e30ba289abbf29906d
diff --cc src/pager.c
index c72069bbf6fa9fff6ce0054a0ba5ea4a98b0c1fa,2f7c330d60f19505af7e4071ad1ff330b8abd6cf..79fc6c6d8f8ddfafbcb1dfa106abc1829d8c5a02
@@@ -5329,21 -5272,8 +5337,18 @@@ int sqlite3PagerAcquire
    assert( assert_pager_state(pPager) );
    assert( noContent==0 || bMmapOk==0 );
  
-   if( pgno==0 ){
-     return SQLITE_CORRUPT_BKPT;
-   }
-   pPager->hasBeenUsed = 1;
+   assert( pPager->hasHeldSharedLock==1 );
  
 +#ifndef SQLITE_OMIT_CONCURRENT
 +  /* If this is an CONCURRENT transaction and the page being read was
 +  ** present in the database file when the transaction was opened,
 +  ** mark it as read in the pAllRead vector.  */
 +  if( pPager->pAllRead && pgno<=pPager->dbOrigSize ){
 +    rc = sqlite3BitvecSet(pPager->pAllRead, pgno);
 +    if( rc!=SQLITE_OK ) goto pager_acquire_err;
 +  }
 +#endif
 +
    /* If the pager is in the error state, return an error immediately. 
    ** Otherwise, request the page from the PCache layer. */
    if( pPager->errCode!=SQLITE_OK ){