diff --git a/src/lib.rs b/src/lib.rs index a16106c..53f1773 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -451,7 +451,8 @@ impl Connection { let mut sql = sql; while !sql.is_empty() { let stmt = self.prepare(sql)?; - if !stmt.stmt.is_null() && stmt.step()? { + if !stmt.stmt.is_null() && stmt.step()? && cfg!(feature = "extra_check") { + // Some PRAGMA may return rows return Err(Error::ExecuteReturnedResults); } let tail = stmt.stmt.tail(); diff --git a/src/pragma.rs b/src/pragma.rs index b115f8f..4855154 100644 --- a/src/pragma.rs +++ b/src/pragma.rs @@ -430,4 +430,15 @@ mod test { sql.push_string_literal("value'; --"); assert_eq!("'value''; --'", sql.as_str()); } + + #[test] + fn locking_mode() { + let db = Connection::open_in_memory().unwrap(); + let r = db.pragma_update(None, "locking_mode", &"exclusive"); + if cfg!(feature = "extra_check") { + r.unwrap_err(); + } else { + r.unwrap(); + } + } }