From 499296d396cf364f3fa42e2cb24f132f95e55bc5 Mon Sep 17 00:00:00 2001 From: Jussi Saurio Date: Thu, 5 Jun 2025 15:39:26 +0300 Subject: [PATCH] fix drop table again: only stack.advance() in a single place --- core/storage/btree.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/core/storage/btree.rs b/core/storage/btree.rs index da5267331..75fa02b5d 100644 --- a/core/storage/btree.rs +++ b/core/storage/btree.rs @@ -4564,7 +4564,7 @@ impl BTreeCursor { DestroyState::LoadPage => { let page = self.stack.top(); return_if_locked_maybe_load!(self.pager, page); - self.stack.set_cell_index(0); // initialize to first cell of page when loaded. + self.stack.advance(); let destroy_info = self .state @@ -4595,7 +4595,6 @@ impl BTreeCursor { (false, n) if n == contents.cell_count() as i32 => { if let Some(rightmost) = contents.rightmost_pointer() { let rightmost_page = self.read_page(rightmost as usize)?; - self.stack.advance(); self.stack.push(rightmost_page); let destroy_info = self.state.mut_destroy_info().expect( "unable to get a mut reference to destroy state in cursor", @@ -4664,7 +4663,6 @@ impl BTreeCursor { _ => panic!("expected interior cell"), }; let child_page = self.read_page(child_page_id as usize)?; - self.stack.advance(); self.stack.push(child_page); let destroy_info = self.state.mut_destroy_info().expect( "unable to get a mut reference to destroy state in cursor", @@ -4682,7 +4680,6 @@ impl BTreeCursor { BTreeCell::IndexInteriorCell(index_int_cell) => { let child_page = self.read_page(index_int_cell.left_child_page as usize)?; - self.stack.advance(); self.stack.push(child_page); let destroy_info = self.state.mut_destroy_info().expect( "unable to get a mut reference to destroy state in cursor", @@ -4692,7 +4689,6 @@ impl BTreeCursor { } // For any leaf cell, advance the index now that overflow pages have been cleared BTreeCell::TableLeafCell(_) | BTreeCell::IndexLeafCell(_) => { - self.stack.advance(); let destroy_info = self.state.mut_destroy_info().expect( "unable to get a mut reference to destroy state in cursor", );