core/storage: Fix BTreeCursor::rowid() with MVCC

This commit is contained in:
Pekka Enberg
2025-07-17 16:23:16 +03:00
parent cef0195b42
commit aa84daabf1

View File

@@ -4065,10 +4065,14 @@ impl BTreeCursor {
#[instrument(skip(self), level = Level::INFO)]
pub fn rowid(&mut self) -> Result<IOResult<Option<i64>>> {
if let Some(mv_cursor) = &self.mv_cursor {
let mv_cursor = mv_cursor.borrow();
return Ok(IOResult::Done(
mv_cursor.current_row_id().map(|rowid| rowid.row_id),
));
if self.has_record.get() {
let mv_cursor = mv_cursor.borrow();
return Ok(IOResult::Done(
mv_cursor.current_row_id().map(|rowid| rowid.row_id),
));
} else {
return Ok(IOResult::Done(None));
}
}
if self.has_record.get() {
let page = self.stack.top();