From 7dfbc4b8d12986f6a23b38c6d81b66b25f9ef882 Mon Sep 17 00:00:00 2001 From: gwenn Date: Wed, 22 Nov 2023 20:31:47 +0100 Subject: [PATCH] Show pathological cases --- src/row.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/row.rs b/src/row.rs index 2d25900..d9022b2 100644 --- a/src/row.rs +++ b/src/row.rs @@ -585,4 +585,24 @@ mod tests { // We don't test one bigger because it's unimplemented Ok(()) } + + #[test] + #[cfg(feature = "bundled")] + fn pathological_case() -> Result<()> { + let conn = Connection::open_in_memory()?; + conn.execute_batch( + "CREATE TABLE foo(x); + CREATE TRIGGER oops BEFORE INSERT ON foo BEGIN SELECT RAISE(FAIL, 'Boom'); END;", + )?; + let mut stmt = conn.prepare("INSERT INTO foo VALUES (0) RETURNING rowid;")?; + { + let n = stmt.query_map([], |_| Ok(()))?.count(); + assert_eq!(1, n); // should be 0 + } + { + let last = stmt.query_map([], |_| Ok(()))?.last(); + assert!(last.is_some()); // should be none + } + Ok(()) + } }