]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a long-standing bug in btree.c in the sqlite3BtreePrevious() routine.
authordrh <drh@noemail.net>
Mon, 22 Nov 2004 19:07:09 +0000 (19:07 +0000)
committerdrh <drh@noemail.net>
Mon, 22 Nov 2004 19:07:09 +0000 (19:07 +0000)
The problem has gone unnoticed before now because it only occurs when you
use the OP_Prev opcode on a B+Tree. (CVS 2140)

FossilOrigin-Name: 3d2536c479c943b3a55047898068625f91c872ae

manifest
manifest.uuid
src/btree.c

index bd42f20e4e2933c4d4a74524803fcc96b9896e0a..567a4c04bf8d9d965cf6b6ae78cccbdf2db603f1 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\scouple\sof\sextra\stest-suite\sproblems\swith\sSQLITE_OMIT_VIEW.\s(CVS\s2139)
-D 2004-11-22T15:05:59
+C Fix\sa\slong-standing\sbug\sin\sbtree.c\sin\sthe\ssqlite3BtreePrevious()\sroutine.\nThe\sproblem\shas\sgone\sunnoticed\sbefore\snow\sbecause\sit\sonly\soccurs\swhen\syou\nuse\sthe\sOP_Prev\sopcode\son\sa\sB+Tree.\s(CVS\s2140)
+D 2004-11-22T19:07:10
 F Makefile.in 8291610f5839939a5fbff4dbbf85adb0fe1ac37f
 F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
 F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
@@ -29,7 +29,7 @@ F sqlite3.def dbaeb20c153e1d366e8f421b55a573f5dfc00863
 F sqlite3.pc.in 985b9bf34192a549d7d370e0f0b6b34a4f61369a
 F src/attach.c e49d09dad9f5f9fb10b4b0c1be5a70ae4c45e689
 F src/auth.c 3b81f2a42f48a62c2c9c9b0eda31a157c681edea
-F src/btree.c edcd4abafe0db11081e4e2db854b17649bec27d9
+F src/btree.c 05fe410ebbcbac72b66bc3aeeadf7e5588b0699e
 F src/btree.h 861e40b759a195ba63819740e484390012cf81ab
 F src/build.c b62389de594d0b413068d6e067794249a1f1d209
 F src/date.c 65536e7ea04fdde6e0551264fca15966966e171f
@@ -259,7 +259,7 @@ F www/tclsqlite.tcl 560ecd6a916b320e59f2917317398f3d59b7cc25
 F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618
 F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
 F www/whentouse.tcl fdacb0ba2d39831e8a6240d05a490026ad4c4e4c
-P 007be591b7829f9ff38e4b14ba5a5043796c2ff3
-R 1c97dc6e7d25c4381776d03b54293b3e
-U danielk1977
-Z b013ca9ef6a11eef0f25e62a5e497296
+P 894c142d115b31506b6b8212e1b850ea28c4ca11
+R 78d02c023016240adef0039c2e3bd491
+U drh
+Z 4ee95f7b7946cb01ce979cf0cc317f8a
index b861aa9a0b439aee5814279700ca8b4383a22811..e9d5427a13700be5f6f078f57efbdd2f93eca447 100644 (file)
@@ -1 +1 @@
-894c142d115b31506b6b8212e1b850ea28c4ca11
\ No newline at end of file
+3d2536c479c943b3a55047898068625f91c872ae
\ No newline at end of file
index d73166f7f4a249136ef0114021c273c355337f87..8e88f21286ea862e44cc9a29d200a1977e9f2da4 100644 (file)
@@ -9,7 +9,7 @@
 **    May you share freely, never taking more than you give.
 **
 *************************************************************************
-** $Id: btree.c,v 1.223 2004/11/22 10:02:10 danielk1977 Exp $
+** $Id: btree.c,v 1.224 2004/11/22 19:07:10 drh Exp $
 **
 ** This file implements a external (disk-based) database using BTrees.
 ** For a detailed discussion of BTrees, refer to
@@ -2854,7 +2854,7 @@ int sqlite3BtreePrevious(BtCursor *pCur, int *pRes){
     }
     pCur->idx--;
     pCur->info.nSize = 0;
-    if( pPage->leafData ){
+    if( pPage->leafData && !pPage->leaf ){
       rc = sqlite3BtreePrevious(pCur, pRes);
     }else{
       rc = SQLITE_OK;