]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Pull the incremental_vacuum bug fix ([255f1eefa373153942c67b18b]) and the
authordrh <drh@noemail.net>
Tue, 24 Aug 2010 12:05:18 +0000 (12:05 +0000)
committerdrh <drh@noemail.net>
Tue, 24 Aug 2010 12:05:18 +0000 (12:05 +0000)
R-tree segfault bug fix ([7f2f71cc9e3c39093f09231f44]) into the 3.6.23
branch.  Increase the version number to 3.6.23.3.

FossilOrigin-Name: bcbdecd854d8430831fbcdf17f55ba6f55ba745b

VERSION
ext/rtree/rtree.c
manifest
manifest.uuid
src/btree.c
test/tkt-5e10420e8d.test [new file with mode: 0644]

diff --git a/VERSION b/VERSION
index ea05a754963afe3c6949e0df3abcc55414dd542b..331b7763a9d09da5eb7216016ec57d1d6f1296bd 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.6.23.2
+3.6.23.3
index 3111cc2e9618871b553437bec3239793c5e93da5..76c598e127a075642cc9a49e7440139dc22217b5 100644 (file)
@@ -438,8 +438,11 @@ nodeAcquire(
     pRtree->iDepth = readInt16(pNode->zData);
   }
 
-  assert( (rc==SQLITE_OK && pNode) || (pNode==0 && rc!=SQLITE_OK) );
-  nodeHashInsert(pRtree, pNode);
+  if( pNode!=0 ){
+    nodeHashInsert(pRtree, pNode);
+  }else if( rc==SQLITE_OK ){
+    rc = SQLITE_CORRUPT;
+  }
 
   return rc;
 }
index 09cbf369f7639f0af363d1985cb12d09d64cfa88..518b11a724bf315fae7cd58455fd97be0b1cd8dd 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,14 +1,14 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Cherry-pick\sthe\sSQLITE_FCNTL_SIZE_HINT\spatch\s(check-in\s[2b7e3b4a30d6a7c4a8]\nand\sbump\sthe\sversion\snumber\sto\s3.6.23.2.
-D 2010-05-19T22:09:19
+C Pull\sthe\sincremental_vacuum\sbug\sfix\s([255f1eefa373153942c67b18b])\sand\sthe\nR-tree\ssegfault\sbug\sfix\s([7f2f71cc9e3c39093f09231f44])\sinto\sthe\s3.6.23\nbranch.\s\sIncrease\sthe\sversion\snumber\sto\s3.6.23.3.
+D 2010-08-24T12:05:18
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in 4f2f967b7e58a35bb74fb7ec8ae90e0f4ca7868b
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
 F Makefile.vxworks ab005d301296c40e021ccd0133ce49ca811e319f
 F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
-F VERSION e074e6c926531bc0ccf713d48465eb16807d7193
+F VERSION f97759f87917ee09d6f39d6faf3909d084d366b7
 F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
 F addopcodes.awk 17dc593f791f874d2c23a0f9360850ded0286531
 F art/2005osaward.gif 0d1851b2a7c1c9d0ccce545f3e14bca42d7fd248
@@ -77,7 +77,7 @@ F ext/icu/README.txt 3b130aa66e7a681136f6add198b076a2f90d1e33
 F ext/icu/icu.c 850e9a36567bbcce6bd85a4b68243cad8e3c2de2
 F ext/icu/sqliteicu.h 728867a802baa5a96de7495e9689a8e01715ef37
 F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
-F ext/rtree/rtree.c a354f6be11a91706680936fdf77b4588f0b34dbe
+F ext/rtree/rtree.c 18a405b9917a53c96f5b3373ad10260a5c07e2d5
 F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
 F ext/rtree/rtree1.test f72885ed80a329d6bd7991043016d74b51edf2c5
 F ext/rtree/rtree2.test 7b665c44d25e51b3098068d983a39902b2e2d7a1
@@ -112,7 +112,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
 F src/backup.c b293534bc2df23c57668a585b17ee7faaaef0939
 F src/bitvec.c 06ad2c36a9c3819c0b9cbffec7b15f58d5d834e0
 F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff
-F src/btree.c 0d6e44d664b1775b269ea7e6f66fdffcfc32ceb3
+F src/btree.c d66fc956658bedbf92857c2e34a0cad59e11f5a8
 F src/btree.h 0e193b7e90f1d78b79c79474040e3d66a553a4fa
 F src/btreeInt.h 71ed5e7f009caf17b7dc304350b3cb64b5970135
 F src/build.c 11100b66fb97638d2d874c1d34d8db90650bb1d7
@@ -615,6 +615,7 @@ F test/tkt-2ea2425d34.test 1cf13e6f75d149b3209a0cb32927a82d3d79fb28
 F test/tkt-31338dca7e.test 5741cd48de500347a437ba1be58c8335e83c5a5e
 F test/tkt-3fe897352e.test 10de1a67bd5c66b238a4c96abe55531b37bb4f00
 F test/tkt-4a03edc4c8.test 2865e4edbc075b954daa82f8da7cc973033ec76e
+F test/tkt-5e10420e8d.test a182c11ac3fba3aa4ef939df1198beb6c9e65a01
 F test/tkt-5ee23731f.test 3581260f2a71e51db94e1506ba6b0f7311d002a9
 F test/tkt-78e04e52ea.test fb5430c675e708f5cbafdf3e7e5593da5145a527
 F test/tkt-94c04eaadb.test be5ea61cb04dfdc047d19b5c5a9e75fa3da67a7f
@@ -795,14 +796,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P a40d080ca3c5f152f3296caf48f20728f61317de
-R 6b321985aaecd4ff831144c4a95fd584
+P 776679af588625f13307369770979bccae7cf03a
+R 24bedc9b2a3bdc74f3b3290451084a06
 U drh
-Z c0f8d3e720ac9f1021b4b9695ecbd8fd
+Z ee2e1590705a1be4867e9dd7da8d3d7c
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFL9GGSoxKgR168RlERAnsLAJ9mAxq1HjJvHt5vClDz1V5oM9GOTwCgiKms
-ckp+G3lPReQ5n8ebpgNyR7c=
-=B53W
+iD8DBQFMc7WCoxKgR168RlERApr2AJ93TyDNo57zAXoEJLaLJcUi8cmWiwCdFaCC
+6xOI8H0MY3NA1228N5XczpQ=
+=lucK
 -----END PGP SIGNATURE-----
index f2572112b7deff507d123cfe2fbe0cedfe17aa70..aab2ff44bf99d7861872c281caa227dc42f8d9c2 100644 (file)
@@ -1 +1 @@
-776679af588625f13307369770979bccae7cf03a
\ No newline at end of file
+bcbdecd854d8430831fbcdf17f55ba6f55ba745b
\ No newline at end of file
index dbcdf65ec86b24f8e866637a6cb97a55ca41f041..1182e5e974554f8c31a16adf9e3c8ddabdde925d 100644 (file)
@@ -4730,6 +4730,10 @@ static int allocateBtreePage(
           if( !pPrevTrunk ){
             memcpy(&pPage1->aData[32], &pTrunk->aData[0], 4);
           }else{
+            rc = sqlite3PagerWrite(pPrevTrunk->pDbPage);
+            if( rc!=SQLITE_OK ){
+              goto end_allocate_page;
+            }
             memcpy(&pPrevTrunk->aData[0], &pTrunk->aData[0], 4);
           }
         }else{
diff --git a/test/tkt-5e10420e8d.test b/test/tkt-5e10420e8d.test
new file mode 100644 (file)
index 0000000..bb8db21
--- /dev/null
@@ -0,0 +1,58 @@
+# 2010 August 23
+#
+# The author disclaims copyright to this source code.  In place of
+# a legal notice, here is a blessing:
+#
+#    May you do good and not evil.
+#    May you find forgiveness for yourself and forgive others.
+#    May you share freely, never taking more than you give.
+#
+#***********************************************************************
+#
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+
+do_test tkt-5e10420e8d.1 {
+  db eval {
+    PRAGMA page_size = 1024;
+    PRAGMA auto_vacuum = incremental;
+  
+    CREATE TABLE t1(x);
+    CREATE TABLE t2(x);
+    CREATE TABLE t3(x);
+  }
+} {}
+
+do_test tkt-5e10420e8d.2 {
+  db eval {
+    INSERT INTO t3 VALUES(randomblob(500 + 1024*248));
+    INSERT INTO t1 VALUES(randomblob(1500));
+    INSERT INTO t2 VALUES(randomblob(500 + 1024*248));
+  
+    DELETE FROM t3;
+    DELETE FROM t2;
+    DELETE FROM t1;
+  }
+} {}
+
+do_test tkt-5e10420e8d.3 {
+  db eval {
+    PRAGMA incremental_vacuum(248)
+  }
+} {}
+
+do_test tkt-5e10420e8d.4 {
+  db eval {
+    PRAGMA incremental_vacuum(1)
+  }
+} {}
+
+db close
+sqlite3 db test.db
+
+do_test tkt-5e10420e8d.5 {
+  db eval {PRAGMA integrity_check;}
+} {ok}
+
+finish_test