diff --git a/core/vdbe/execute.rs b/core/vdbe/execute.rs index 0ee15fd91..61d715b83 100644 --- a/core/vdbe/execute.rs +++ b/core/vdbe/execute.rs @@ -6412,7 +6412,7 @@ pub fn op_new_rowid( NewRowid { cursor, rowid_reg, - .. + prev_largest_reg, }, insn ); @@ -6455,6 +6455,11 @@ pub fn op_new_rowid( return_if_io!(cursor.rowid()) }; + if *prev_largest_reg > 0 { + state.registers[*prev_largest_reg] = + Register::Value(Value::Integer(current_max.unwrap_or(0))); + } + match current_max { Some(rowid) if rowid < MAX_ROWID => { // Can use sequential