From 7c1d5a186356e6aaa4125ac68b2f11570cc928e3 Mon Sep 17 00:00:00 2001 From: Johnny Graettinger Date: Wed, 22 Mar 2023 21:16:53 +0000 Subject: [PATCH] Add Statement.readonly() accessor Remove cfg(extra_check) from RawStatement::readonly() --- src/raw_statement.rs | 1 - src/statement.rs | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/raw_statement.rs b/src/raw_statement.rs index 1d57c2c..1683c7b 100644 --- a/src/raw_statement.rs +++ b/src/raw_statement.rs @@ -197,7 +197,6 @@ impl RawStatement { } // does not work for PRAGMA - #[cfg(feature = "extra_check")] #[inline] pub fn readonly(&self) -> bool { unsafe { ffi::sqlite3_stmt_readonly(self.ptr) != 0 } diff --git a/src/statement.rs b/src/statement.rs index a7d53ba..982567a 100644 --- a/src/statement.rs +++ b/src/statement.rs @@ -709,6 +709,12 @@ impl Statement<'_> { self.stmt.is_explain() } + /// Returns true if the statement is read only. + #[inline] + pub fn readonly(&self) -> bool { + self.stmt.readonly() + } + #[cfg(feature = "extra_check")] #[inline] pub(crate) fn check_no_tail(&self) -> Result<()> { @@ -1324,6 +1330,14 @@ mod test { Ok(()) } + #[test] + fn readonly() -> Result<()> { + let db = Connection::open_in_memory()?; + let stmt = db.prepare("SELECT 1;")?; + assert!(stmt.readonly()); + Ok(()) + } + #[test] #[cfg(feature = "modern_sqlite")] // SQLite >= 3.38.0 fn test_error_offset() -> Result<()> {