]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a bug in lsm queries on levels undergoing incremental an merge that
authordan <dan@noemail.net>
Mon, 3 Jul 2017 20:19:28 +0000 (20:19 +0000)
committerdan <dan@noemail.net>
Mon, 3 Jul 2017 20:19:28 +0000 (20:19 +0000)
contain range-delete markers.

FossilOrigin-Name: b2c2487928becbea5a932895d153709c98a057a3c71c2600e165478562e9f7c5

ext/lsm1/lsm_sorted.c
manifest
manifest.uuid

index de5a332db8de346dba340200af8034d2b894e6b5..6390368d9dd0e92ecbf9618c5dbe8b317965f2fc 100644 (file)
@@ -1952,7 +1952,17 @@ static int seekInLevel(
             rtTopic(pPtr->eType), pPtr->pKey, pPtr->nKey, 
             pLvl->iSplitTopic, pLvl->pSplitKey, pLvl->nSplitKey
         );
-        if( res<0 ) segmentPtrReset(pPtr, LSM_SEGMENTPTR_FREE_THRESHOLD);
+        if( res<0 ){
+          if( pPtr->eType & LSM_START_DELETE ){
+            pPtr->eType &= ~LSM_INSERT;
+            pPtr->pKey = pLvl->pSplitKey;
+            pPtr->nKey = pLvl->nSplitKey;
+            pPtr->pVal = 0;
+            pPtr->nVal = 0;
+          }else{
+            segmentPtrReset(pPtr, LSM_SEGMENTPTR_FREE_THRESHOLD);
+          }
+        }
       }
 
       if( aPtr[i].pKey ) bHit = 1;
index 623179b4284c03dd187eb2d139832d3a4c9d81ae..d20c9525eb6133e1cc62310c62b9944b9fd79a95 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Attempt\sto\simprove\sdocumentation\son\ssqlite3_column_\sand\ssqlite3_value_\ninterfaces.
-D 2017-07-03T17:37:04.837
+C Fix\sa\sbug\sin\slsm\squeries\son\slevels\sundergoing\sincremental\san\smerge\sthat\ncontain\srange-delete\smarkers.
+D 2017-07-03T20:19:28.955
 F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 4ebb1d257cac7fb1bcb4ba59278416d410ff1c4bf59447a9c37a415f3516056a
@@ -244,7 +244,7 @@ F ext/lsm1/lsm_main.c 8f1f68a87126dcecaed463ed38e4b1c0dcc184614de1d7b01542d88c06
 F ext/lsm1/lsm_mem.c 4c51ea9fa285ee6e35301b33491642d071740a0a
 F ext/lsm1/lsm_mutex.c 378edf0a2b142b4f7640ee982df06d50b98788ea
 F ext/lsm1/lsm_shared.c 54cc3a5157c6abd77f7d3ae60708b9f7bf022b3c
-F ext/lsm1/lsm_sorted.c 62cc605a66cf8e0e6ab3593281c2476a787fc4b2013c618dd17568d18c730070
+F ext/lsm1/lsm_sorted.c 105a4c0b95e6f8c1d03774f88afbf1397e7cacd52c1a4b24de1118d011d05fdd
 F ext/lsm1/lsm_str.c 77ebdd5040ddf267a6f724d4c83132d2dce8a226
 F ext/lsm1/lsm_tree.c 5d9fb2bc58a1a70c75126bd8d7198f7b627e165b
 F ext/lsm1/lsm_unix.c 57361bcf5b1a1a028f5d66571ee490e9064d2cfb145a2cc9e5ddade467bb551b
@@ -1628,7 +1628,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P e34eafd4c5b2bbf2735e136ad69b67bb4288ad4d01a0128d8e107ac46209a182
-R daf6aa916562f77defe7fb8012cb61e0
-U drh
-Z 91228c779b3dd3fbfc53cd1f8eb1df59
+P 9111ac69bf307997e590bc9459222661fc79f549b3c493168a654a5046e6e4ad
+R 17216989ed0c1efa9e59126318b86d4a
+U dan
+Z d89f155c1b113ffdce094dbb498ae299
index ec501ded56435be7dedf3968f81ad4667866a946..806985e9726cb2c0ccb30bb742ec326d368d9230 100644 (file)
@@ -1 +1 @@
-9111ac69bf307997e590bc9459222661fc79f549b3c493168a654a5046e6e4ad
\ No newline at end of file
+b2c2487928becbea5a932895d153709c98a057a3c71c2600e165478562e9f7c5
\ No newline at end of file