Merge pull request #794 from gwenn/fix_pragma_update

pragma_update fails with ExecuteReturnedResults
This commit is contained in:
gwenn 2020-08-17 19:57:12 +02:00 committed by GitHub
commit da2d2e371a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View File

@ -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();

View File

@ -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();
}
}
}