]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Remove the EXPENSIVE_ASSERTS in pcache.c having to do with the pSynced field
authordrh <drh@noemail.net>
Mon, 15 Sep 2014 14:59:12 +0000 (14:59 +0000)
committerdrh <drh@noemail.net>
Mon, 15 Sep 2014 14:59:12 +0000 (14:59 +0000)
of the Pcache object, as they are incorrect, as revealed by recent pcache
enhancements.

FossilOrigin-Name: 69a64560777f85b47349b4b2aab01dc99298592e

manifest
manifest.uuid
src/pcache.c

index f13c9ab0263f59be34a770591d7aab9dc5ed509c..7e35806fec324feffcccf89a463efaad610f3a11 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Do\snot\sflatten\saggregate\ssubqueries\sthat\scontain\smin()\sor\smax()\sfunctions\nso\sthat\sif\sthe\smin()/max()\sare\sdiscarded\sby\sthe\souter\squery,\sthey\sstill\nfunction\sand\scause\snon-aggregate\sexpression\sto\sbe\sevaluated\son\sthe\sminimal\nor\smaximal\srow.
-D 2014-09-15T14:46:02.082
+C Remove\sthe\sEXPENSIVE_ASSERTS\sin\spcache.c\shaving\sto\sdo\swith\sthe\spSynced\sfield\nof\sthe\sPcache\sobject,\sas\sthey\sare\sincorrect,\sas\srevealed\sby\srecent\spcache\nenhancements.
+D 2014-09-15T14:59:12.274
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -217,7 +217,7 @@ F src/os_win.h 09e751b20bbc107ffbd46e13555dc73576d88e21
 F src/pager.c c6c809987f0c6a4e27634099d062d425527de173
 F src/pager.h ffd5607f7b3e4590b415b007a4382f693334d428
 F src/parse.y 22d6a074e5f5a7258947a1dc55a9bf946b765dd0
-F src/pcache.c b42c513da255c33e99dc0e23d16c3caf30dc9175
+F src/pcache.c 4121a0571c18581ee9f82f086d5e2030051ebd6a
 F src/pcache.h 9b559127b83f84ff76d735c8262f04853be0c59a
 F src/pcache1.c dab8ab930d4a73b99768d881185994f34b80ecaa
 F src/pragma.c 3f3e959390a10c0131676f0e307acce372777e0f
@@ -1197,7 +1197,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 4ff0eb96bc364baed2d8005c69291ca9240b99dd
-R d83c0c27bf862a8b9f30cb2ccec5fde3
+P 0bdf1a086b3946722f4d4b328e25917f61c14713
+R 6604c3404d8f943a6eb10e6ee4c1398f
 U drh
-Z 5049f8c8dea35bd8f91ea699f6fd9960
+Z 9f457bfb74de1e07b081e001cb58874a
index 69d001e682a0afd97a181bac43850528ab015aae..0cb3407f292bae4758e36506e852d57bdc383fd6 100644 (file)
@@ -1 +1 @@
-0bdf1a086b3946722f4d4b328e25917f61c14713
\ No newline at end of file
+69a64560777f85b47349b4b2aab01dc99298592e
\ No newline at end of file
index e975e4388911aa2fcee002f3c90a0f0ccf9223b6..191a9d00f41ded328642e71fa5da12138f38bc35 100644 (file)
@@ -45,23 +45,6 @@ struct PCache {
 
 /********************************** Linked List Management ********************/
 
-#if !defined(NDEBUG) && defined(SQLITE_ENABLE_EXPENSIVE_ASSERT)
-/*
-** Check that the pCache->pSynced variable is set correctly. If it
-** is not, either fail an assert or return zero. Otherwise, return
-** non-zero. This is only used in debugging builds, as follows:
-**
-**   expensive_assert( pcacheCheckSynced(pCache) );
-*/
-static int pcacheCheckSynced(PCache *pCache){
-  PgHdr *p;
-  for(p=pCache->pDirtyTail; p!=pCache->pSynced; p=p->pDirtyPrev){
-    assert( p->nRef || (p->flags&PGHDR_NEED_SYNC) );
-  }
-  return (p==0 || p->nRef || (p->flags&PGHDR_NEED_SYNC)==0);
-}
-#endif /* !NDEBUG && SQLITE_ENABLE_EXPENSIVE_ASSERT */
-
 /* Allowed values for second argument to pcacheManageDirtyList() */
 #define PCACHE_DIRTYLIST_REMOVE   1    /* Remove pPage from dirty list */
 #define PCACHE_DIRTYLIST_ADD      2    /* Add pPage to the dirty list */
@@ -107,7 +90,6 @@ static void pcacheManageDirtyList(PgHdr *pPage, u8 addRemove){
     }
     pPage->pDirtyNext = 0;
     pPage->pDirtyPrev = 0;
-    expensive_assert( pcacheCheckSynced(p) );
   }
   if( addRemove & PCACHE_DIRTYLIST_ADD ){
     assert( pPage->pDirtyNext==0 && pPage->pDirtyPrev==0 && p->pDirty!=pPage );
@@ -127,7 +109,6 @@ static void pcacheManageDirtyList(PgHdr *pPage, u8 addRemove){
     if( !p->pSynced && 0==(pPage->flags&PGHDR_NEED_SYNC) ){
       p->pSynced = pPage;
     }
-    expensive_assert( pcacheCheckSynced(p) );
   }
 }
 
@@ -304,7 +285,6 @@ int sqlite3PcacheFetchStress(
   ** cleared), but if that is not possible settle for any other 
   ** unreferenced dirty page.
   */
-  expensive_assert( pcacheCheckSynced(pCache) );
   for(pPg=pCache->pSynced; 
       pPg && (pPg->nRef || (pPg->flags&PGHDR_NEED_SYNC)); 
       pPg=pPg->pDirtyPrev