mirror of
https://github.com/isar/rusqlite.git
synced 2024-11-22 16:29:20 +08:00
Merge remote-tracking branch 'upstream/master' into series
This commit is contained in:
commit
73bf68f851
@ -424,18 +424,14 @@ fn ensure_safe_sqlite_threading_mode() -> Result<()> {
|
||||
}
|
||||
|
||||
unsafe {
|
||||
let msg = "\
|
||||
Could not ensure safe initialization of SQLite.
|
||||
To fix this, either:
|
||||
* Upgrade SQLite to at least version 3.7.0
|
||||
* Ensure that SQLite has been initialized in Multi-thread or Serialized mode and call
|
||||
rusqlite::bypass_sqlite_initialization() prior to your first connection attempt.";
|
||||
|
||||
if ffi::sqlite3_config(ffi::SQLITE_CONFIG_MULTITHREAD) != ffi::SQLITE_OK {
|
||||
panic!(msg);
|
||||
}
|
||||
if ffi::sqlite3_initialize() != ffi::SQLITE_OK {
|
||||
panic!(msg);
|
||||
if ffi::sqlite3_config(ffi::SQLITE_CONFIG_MULTITHREAD) != ffi::SQLITE_OK || ffi::sqlite3_initialize() != ffi::SQLITE_OK {
|
||||
panic!(
|
||||
"Could not ensure safe initialization of SQLite.\n\
|
||||
To fix this, either:\n\
|
||||
* Upgrade SQLite to at least version 3.7.0\n\
|
||||
* Ensure that SQLite has been initialized in Multi-thread or Serialized mode and call\n\
|
||||
rusqlite::bypass_sqlite_initialization() prior to your first connection attempt."
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -170,6 +170,7 @@ impl RawStatement {
|
||||
r
|
||||
}
|
||||
|
||||
// does not work for PRAGMA
|
||||
#[inline]
|
||||
#[cfg(all(feature = "extra_check", feature = "modern_sqlite"))] // 3.7.4
|
||||
pub fn readonly(&self) -> bool {
|
||||
|
@ -220,7 +220,6 @@ impl Statement<'_> {
|
||||
/// Will return `Err` if binding parameters fails.
|
||||
#[inline]
|
||||
pub fn query<P: Params>(&mut self, params: P) -> Result<Rows<'_>> {
|
||||
self.check_readonly()?;
|
||||
params.__bind_in(self)?;
|
||||
Ok(Rows::new(self))
|
||||
}
|
||||
@ -718,21 +717,6 @@ impl Statement<'_> {
|
||||
self.conn.decode_result(stmt.finalize())
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "modern_sqlite"))]
|
||||
#[inline]
|
||||
fn check_readonly(&self) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(feature = "modern_sqlite")]
|
||||
#[inline]
|
||||
fn check_readonly(&self) -> Result<()> {
|
||||
/*if !self.stmt.readonly() { does not work for PRAGMA
|
||||
return Err(Error::InvalidQuery);
|
||||
}*/
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(all(feature = "modern_sqlite", feature = "extra_check"))]
|
||||
#[inline]
|
||||
fn check_update(&self) -> Result<()> {
|
||||
@ -755,6 +739,7 @@ impl Statement<'_> {
|
||||
|
||||
#[cfg(not(feature = "extra_check"))]
|
||||
#[inline]
|
||||
#[allow(clippy::unnecessary_wraps)]
|
||||
fn check_update(&self) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
@ -793,6 +778,7 @@ impl Statement<'_> {
|
||||
|
||||
#[cfg(not(feature = "extra_check"))]
|
||||
#[inline]
|
||||
#[allow(clippy::unnecessary_wraps)]
|
||||
pub(crate) fn check_no_tail(&self) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user