From 8545c5d011222fd5b6cb940114b63e9b75499133 Mon Sep 17 00:00:00 2001 From: "Taylor C. Richberger" Date: Wed, 7 Jun 2023 13:59:08 -0600 Subject: [PATCH] add test for savepoint Commit or Rollback release After a top-level savepoint exits on non-Ignore, the savepoint should not be left on the stack. --- src/transaction.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/transaction.rs b/src/transaction.rs index a7abaf5..122371f 100644 --- a/src/transaction.rs +++ b/src/transaction.rs @@ -668,6 +668,24 @@ mod test { Ok(()) } + #[test] + fn test_savepoint_drop_behavior_releases() -> Result<()> { + let mut db = checked_memory_handle()?; + + { + let mut sp = db.savepoint()?; + sp.set_drop_behavior(DropBehavior::Commit); + } + assert!(db.is_autocommit()); + { + let mut sp = db.savepoint()?; + sp.set_drop_behavior(DropBehavior::Rollback); + } + assert!(db.is_autocommit()); + + Ok(()) + } + #[test] fn test_savepoint_names() -> Result<()> { let mut db = checked_memory_handle()?;