]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Do not remove pages from the cache of an in-memory database due to a
authordrh <>
Wed, 19 Apr 2023 15:35:45 +0000 (15:35 +0000)
committerdrh <>
Wed, 19 Apr 2023 15:35:45 +0000 (15:35 +0000)
failure to acquire the page due to it being larger than the maximum page
size. Fix for [forum:/forumpost/a19bb49140|forum post a19bb49140].

FossilOrigin-Name: 982b35563da685dfdf50cbe4a7ae829d3b428e03587028df7efe520f819b1dc2

manifest
manifest.uuid
src/pager.c

index 05094c8de0021bcbd3158585e6d7089072b66cf6..c08119f8556c9cb75a5f7a38fb5b34635f02cc1e 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sambiguity\sin\sthe\sheader\scomment\sto\sthe\ssqlite3PagerUnrefNotNull()\sroutine.\nNo\scode\schanges.
-D 2023-04-19T14:26:43.117
+C Do\snot\sremove\spages\sfrom\sthe\scache\sof\san\sin-memory\sdatabase\sdue\sto\sa\nfailure\sto\sacquire\sthe\spage\sdue\sto\sit\sbeing\slarger\sthan\sthe\smaximum\spage\nsize.\sFix\sfor\s[forum:/forumpost/a19bb49140|forum\spost\sa19bb49140].
+D 2023-04-19T15:35:45.024
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -618,7 +618,7 @@ F src/os_setup.h 6011ad7af5db4e05155f385eb3a9b4470688de6f65d6166b8956e58a3d87210
 F src/os_unix.c 1b3ddb7814c4bf37f494c04d2ab30c1ced5b2c927267e1930ce7cd388787a96d
 F src/os_win.c 295fe45f18bd86f2477f4cd79f3377c6f883ceb941b1f46808665c73747f2345
 F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
-F src/pager.c 725385bdb872e1764f8698b1c2fbb87635d8720f8589ba5a27ed4b6183cbbab0
+F src/pager.c 9d36ddedc842e993c88c222ed914822dbd6f8ece3c648fde04468637012a034a
 F src/pager.h f82e9844166e1585f5786837ddc7709966138ced17f568c16af7ccf946c2baa3
 F src/parse.y e8b5c753e3194e03d69e108753c1dbceb01fa4c158b2c6b726a048023ea0fdc1
 F src/pcache.c 589326520a41211b50bb946973ca7f1e30f824641af546ea8fa6224bf0e4ea5c
@@ -2058,8 +2058,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P f2d6756731caadf9a30214ab7d19717a2ca1dae2652bcc6b211f6b0830362240
-R d9a8cdd9e9c2d3f863d060c3de9c370c
+P d419e65eef2954ed759121254024028854b55e8c4f52ff7a8896c8cadfc57f53
+R 2ff39e988928f271722070323e9929b5
 U drh
-Z 55eddf4ca402ac276f5fb0dc48de52ae
+Z 57826475051b9681a19f44a30db70018
 # Remove this line to create a well-formed Fossil manifest.
index 0386f2aa851a670a0e285859c53cc2235b2cb052..91acfb0146b640752bf104e7bbc5fc0eca35710a 100644 (file)
@@ -1 +1 @@
-d419e65eef2954ed759121254024028854b55e8c4f52ff7a8896c8cadfc57f53
\ No newline at end of file
+982b35563da685dfdf50cbe4a7ae829d3b428e03587028df7efe520f819b1dc2
\ No newline at end of file
index d816a8c32211141ab74d814bea1bc0f68ffcf227..063b793f7fd129cca8fbf28cc9573114f839b561 100644 (file)
@@ -5524,6 +5524,10 @@ static int getPageNormal(
     if( !isOpen(pPager->fd) || pPager->dbSize<pgno || noContent ){
       if( pgno>pPager->mxPgno ){
         rc = SQLITE_FULL;
+        if( pgno<=pPager->dbSize ){
+          sqlite3PcacheRelease(pPg);
+          pPg = 0;
+        }
         goto pager_acquire_err;
       }
       if( noContent ){