diff --git a/core/lib.rs b/core/lib.rs index e8e629887..7f35f8861 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -1500,7 +1500,6 @@ impl Connection { pager.end_tx( true, // rollback = true for close self, - self.wal_auto_checkpoint_disabled.get(), ) })?; self.transaction_state.set(TransactionState::None); @@ -2106,7 +2105,7 @@ impl Statement { } let state = self.program.connection.transaction_state.get(); if let TransactionState::Write { .. } = state { - let end_tx_res = self.pager.end_tx(true, &self.program.connection, true)?; + let end_tx_res = self.pager.end_tx(true, &self.program.connection)?; self.program .connection .transaction_state diff --git a/core/mvcc/database/mod.rs b/core/mvcc/database/mod.rs index bb1a0608e..13e28c437 100644 --- a/core/mvcc/database/mod.rs +++ b/core/mvcc/database/mod.rs @@ -546,7 +546,6 @@ impl StateTransition for CommitStateMachine { .end_tx( false, // rollback = false since we're committing &self.connection, - self.connection.wal_auto_checkpoint_disabled.get(), ) .map_err(|e| LimboError::InternalError(e.to_string())) .unwrap(); diff --git a/core/storage/btree.rs b/core/storage/btree.rs index 855641b08..cc14856a7 100644 --- a/core/storage/btree.rs +++ b/core/storage/btree.rs @@ -7959,10 +7959,7 @@ mod tests { pager.deref(), ) .unwrap(); - pager - .io - .block(|| pager.end_tx(false, &conn, false)) - .unwrap(); + pager.io.block(|| pager.end_tx(false, &conn)).unwrap(); pager.begin_read_tx().unwrap(); // FIXME: add sorted vector instead, should be okay for small amounts of keys for now :P, too lazy to fix right now let _c = cursor.move_to_root().unwrap(); @@ -8107,10 +8104,7 @@ mod tests { if let Some(c) = c { pager.io.wait_for_completion(c).unwrap(); } - pager - .io - .block(|| pager.end_tx(false, &conn, false)) - .unwrap(); + pager.io.block(|| pager.end_tx(false, &conn)).unwrap(); } // Check that all keys can be found by seeking @@ -8316,10 +8310,7 @@ mod tests { if let Some(c) = c { pager.io.wait_for_completion(c).unwrap(); } - pager - .io - .block(|| pager.end_tx(false, &conn, false)) - .unwrap(); + pager.io.block(|| pager.end_tx(false, &conn)).unwrap(); } // Final validation diff --git a/core/storage/pager.rs b/core/storage/pager.rs index 2d672b9e2..17cfbc102 100644 --- a/core/storage/pager.rs +++ b/core/storage/pager.rs @@ -1026,7 +1026,6 @@ impl Pager { &self, rollback: bool, connection: &Connection, - wal_auto_checkpoint_disabled: bool, ) -> Result> { if connection.is_nested_stmt.get() { // Parent statement will handle the transaction rollback. @@ -1050,7 +1049,8 @@ impl Pager { self.rollback(schema_did_change, connection, is_write)?; return Ok(IOResult::Done(PagerCommitResult::Rollback)); } - let commit_status = return_if_io!(self.commit_dirty_pages(wal_auto_checkpoint_disabled)); + let commit_status = + return_if_io!(self.commit_dirty_pages(connection.wal_auto_checkpoint_disabled.get())); wal.borrow().end_write_tx(); wal.borrow().end_read_tx(); diff --git a/core/vdbe/execute.rs b/core/vdbe/execute.rs index c910d827f..849b37839 100644 --- a/core/vdbe/execute.rs +++ b/core/vdbe/execute.rs @@ -2170,7 +2170,7 @@ pub fn op_auto_commit( if *auto_commit != conn.auto_commit.get() { if *rollback { // TODO(pere): add rollback I/O logic once we implement rollback journal - return_if_io!(pager.end_tx(true, &conn, false)); + return_if_io!(pager.end_tx(true, &conn)); conn.transaction_state.replace(TransactionState::None); conn.auto_commit.replace(true); } else { diff --git a/core/vdbe/mod.rs b/core/vdbe/mod.rs index a12e5772e..afb4485ac 100644 --- a/core/vdbe/mod.rs +++ b/core/vdbe/mod.rs @@ -434,9 +434,7 @@ impl Program { // Connection is closed for whatever reason, rollback the transaction. let state = self.connection.transaction_state.get(); if let TransactionState::Write { .. } = state { - pager - .io - .block(|| pager.end_tx(true, &self.connection, false))?; + pager.io.block(|| pager.end_tx(true, &self.connection))?; } return Err(LimboError::InternalError("Connection closed".to_string())); } @@ -608,11 +606,7 @@ impl Program { connection: &Connection, rollback: bool, ) -> Result> { - let cacheflush_status = pager.end_tx( - rollback, - connection, - connection.wal_auto_checkpoint_disabled.get(), - )?; + let cacheflush_status = pager.end_tx(rollback, connection)?; match cacheflush_status { IOResult::Done(_) => { if self.change_cnt_on { @@ -869,7 +863,7 @@ pub fn handle_program_error( _ => { pager .io - .block(|| pager.end_tx(true, connection, false)) + .block(|| pager.end_tx(true, connection)) .inspect_err(|e| { tracing::error!("end_tx failed: {e}"); })?;