]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Do not do a deferred seek on a cursor that is marked nullRow.
authordrh <>
Fri, 25 Feb 2022 16:21:00 +0000 (16:21 +0000)
committerdrh <>
Fri, 25 Feb 2022 16:21:00 +0000 (16:21 +0000)
FossilOrigin-Name: 1c026bcb3c9e1ae0f38ad8a3e6e3bda1a0cdff9dcc77a08b1820f2fdde2ee200

manifest
manifest.uuid
src/vdbeaux.c

index f510c37f92fc6e78658d8d8755016288a532fcae..d50665573842cd52430ac4a5e22c936e26c45b37 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C This\sbranch\sproposes\sto\sconsolidate\svarious\sstate\sfields\sof\sVdbeCursor\n(specifically,\snullRow,\sdeferredMoveto,\sand\scacheStatus)\sinto\sa\ssingle\neCurState\sfield.\s\sThis\sfirst\scheck-in\sadds\sthe\snew\seCurState\sfield\swhile\nretaining\sand\scontinuing\sto\suse\sthe\slegacy\sstate\sfields.
-D 2022-02-25T15:44:13.844
+C Do\snot\sdo\sa\sdeferred\sseek\son\sa\scursor\sthat\sis\smarked\snullRow.
+D 2022-02-25T16:21:00.933
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -628,7 +628,7 @@ F src/vdbe.c 588de992e0efc2cc167748888b90fc0910e93b3030a16b5685f0acd7cb5f1cb3
 F src/vdbe.h a1d0e3b934e835e73edd146f2e7c4eadb711b5c9875c18159a57483fd78e550e
 F src/vdbeInt.h 68756566247e190f22ea8f175a81f9d1b91b6258bcdd69832ea2eb3c78ecfb11
 F src/vdbeapi.c 8863ffb5a7bac42fe9a68aaa3526ee29fc18fb02a9b27188b756de41e33856e9
-F src/vdbeaux.c b938eb6ba843f370fe6f97069a3ed3693e1d6cbb01f3cbe718d4a877a25d3e38
+F src/vdbeaux.c 2c3e77262e0f5604d1b560b0559e9be7a793a7448ddf4baf90cedce7fedf683d
 F src/vdbeblob.c 5e61ce31aca17db8fb60395407457a8c1c7fb471dde405e0cd675974611dcfcd
 F src/vdbemem.c 7737f0b1c480a32b057849c804d2f21d5389649bb8be80f77ad75df700adc9a1
 F src/vdbesort.c 43756031ca7430f7aec3ef904824a7883c4ede783e51f280d99b9b65c0796e35
@@ -1944,11 +1944,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 54f49f65ac943263a1622b1efe519c8a61f30f23694fd4fec89ad2bf0e17b473
-R 2ff4c217735fef3148c991fc4ac1775c
-T *branch * simplify-cursor-state
-T *sym-simplify-cursor-state *
-T -sym-trunk *
+P 7953716c12ca1deb50ee2c91d9b62a029e38f7cb61af418eeca438283c45f825
+R 85c483559243dc30f8f8dd48c45fb13f
 U drh
-Z 177b4f0e5553a1f45304df314a704a95
+Z 6cb6334f470796473908dc1f535cd43a
 # Remove this line to create a well-formed Fossil manifest.
index 168c33756aa56b81359282fa6fc9c5eaf9c4125b..d9f3573134a6866db8e42be868a3413eaffbc72f 100644 (file)
@@ -1 +1 @@
-7953716c12ca1deb50ee2c91d9b62a029e38f7cb61af418eeca438283c45f825
\ No newline at end of file
+1c026bcb3c9e1ae0f38ad8a3e6e3bda1a0cdff9dcc77a08b1820f2fdde2ee200
\ No newline at end of file
index 2856fe014ac9b0e6d028ac690d15c28387d89216..d7724eb82b44e08caca8d3b3599bc0207f1605ac 100644 (file)
@@ -3495,7 +3495,7 @@ int SQLITE_NOINLINE sqlite3VdbeFinishMoveto(VdbeCursor *p){
 #endif
   p->deferredMoveto = 0;
   p->cacheStatus = CACHE_STALE;
-  p->eCurState = p->nullRow ? CURSTATE_NULLROW : CURSTATE_UNINIT;
+  if( !p->nullRow ) p->eCurState = CURSTATE_UNINIT;
   return SQLITE_OK;
 }
 
@@ -3549,7 +3549,7 @@ int sqlite3VdbeCursorRestore(VdbeCursor *p){
 int sqlite3VdbeCursorMoveto(VdbeCursor **pp, u32 *piCol){
   VdbeCursor *p = *pp;
   assert( p->eCurType==CURTYPE_BTREE || p->eCurType==CURTYPE_PSEUDO );
-  if( p->deferredMoveto ){
+  if( p->deferredMoveto && !p->nullRow ){
     u32 iMap;
     assert( !p->isEphemeral );
     assert( p->eCurState==CURSTATE_DEFERRED );