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<()> {