From: drh Date: Thu, 7 Feb 2019 15:09:44 +0000 (+0000) Subject: Experimental change to VACUUM so that it preserves existing ROWID values. X-Git-Tag: version-3.28.0~200^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=24bfecab3ce1b13bd8e863b08837ee695902da28;p=thirdparty%2Fsqlite.git Experimental change to VACUUM so that it preserves existing ROWID values. FossilOrigin-Name: f264015f84de51d74f681ba62a5f26bd859480d93e1eaf9e1018b3e9b4e0bea3 --- diff --git a/manifest b/manifest index fef72936bf..8f475d500a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C In\sthe\sfuzzcheck\stest\sprogram,\smake\ssure\sthe\sisspace()\sand\srelated\sroutines\nare\snot\sgiven\svalues\soutside\sthe\srange\sof\s-1\sto\s255. -D 2019-02-07T00:17:36.218 +C Experimental\schange\sto\sVACUUM\sso\sthat\sit\spreserves\sexisting\sROWID\svalues. +D 2019-02-07T15:09:44.698 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F Makefile.in 178d8eb6840771149cee40b322d1b3be30d330198c522c903c1b66fb5a1bfca4 @@ -475,7 +475,7 @@ F src/hash.c a12580e143f10301ed5166ea4964ae2853d3905a511d4e0c44497245c7ce1f7a F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4 F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71 -F src/insert.c 3ed9ceaa4b7d56a6f2613355e1cd1ae5cfe31712bce2bf5aa93c5f1f130704b2 +F src/insert.c 4cf069988908f650bec92fd821a082f6eda87c01191047e49a1a5007af93274c F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa F src/loadext.c e6f10875d52aca3b7e57ce1ec174aeafc9b6c00b43000cd30d791f9cb490b7a6 F src/main.c 27d7265625ea6eaccdfe7c53ef41adc179c9357a077702a860c1a3b0a037a16f @@ -1804,7 +1804,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P a505e34d4ec31159a4508ec827fcffed0cf3bd5ea5ef0ac293016da02367a53a -R d5115c238fed46e746b74b22004ee963 +P f298328771d5aaba798d05f50c77ac239c7c72422ff35953463d6876a9659f74 +R 529825220f385ddc83a068a4e8c392f8 +T *branch * vacuum-preserves-rowid +T *sym-vacuum-preserves-rowid * +T -sym-trunk * U drh -Z 2225211b2294245a758dcb28378cffd6 +Z b9b4f509af56a05508a2323b58cd335c diff --git a/manifest.uuid b/manifest.uuid index c0a830d76b..00c3b7ba92 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f298328771d5aaba798d05f50c77ac239c7c72422ff35953463d6876a9659f74 \ No newline at end of file +f264015f84de51d74f681ba62a5f26bd859480d93e1eaf9e1018b3e9b4e0bea3 \ No newline at end of file diff --git a/src/insert.c b/src/insert.c index a69e625a11..1b6235d4d0 100644 --- a/src/insert.c +++ b/src/insert.c @@ -2347,7 +2347,7 @@ static int xferOptimization( sqlite3RowidConstraint(pParse, onError, pDest); sqlite3VdbeJumpHere(v, addr2); autoIncStep(pParse, regAutoinc, regRowid); - }else if( pDest->pIndex==0 ){ + }else if( pDest->pIndex==0 && !(db->mDbFlags & DBFLAG_Vacuum) ){ addr1 = sqlite3VdbeAddOp2(v, OP_NewRowid, iDest, regRowid); }else{ addr1 = sqlite3VdbeAddOp2(v, OP_Rowid, iSrc, regRowid);