mirror of
https://github.com/isar/rusqlite.git
synced 2025-10-08 12:32:20 +08:00
Introduce to_sqlite_error
643c0f699f
One small step to support creating loadable extension
This commit is contained in:
@@ -17,10 +17,11 @@ use std::ptr;
|
||||
use std::slice;
|
||||
|
||||
use crate::context::set_result;
|
||||
use crate::error::error_from_sqlite_code;
|
||||
use crate::error::{error_from_sqlite_code, to_sqlite_error};
|
||||
use crate::ffi;
|
||||
pub use crate::ffi::{sqlite3_vtab, sqlite3_vtab_cursor};
|
||||
use crate::types::{FromSql, FromSqlError, ToSql, ValueRef};
|
||||
use crate::util::alloc;
|
||||
use crate::{str_to_cstring, Connection, Error, InnerConnection, Result};
|
||||
|
||||
// let conn: Connection = ...;
|
||||
@@ -964,8 +965,7 @@ where
|
||||
ffi::SQLITE_OK
|
||||
} else {
|
||||
let err = error_from_sqlite_code(rc, None);
|
||||
*err_msg = alloc(&err.to_string());
|
||||
rc
|
||||
to_sqlite_error(&err, err_msg)
|
||||
}
|
||||
}
|
||||
Err(err) => {
|
||||
@@ -973,16 +973,7 @@ where
|
||||
ffi::SQLITE_ERROR
|
||||
}
|
||||
},
|
||||
Err(Error::SqliteFailure(err, s)) => {
|
||||
if let Some(s) = s {
|
||||
*err_msg = alloc(&s);
|
||||
}
|
||||
err.extended_code
|
||||
}
|
||||
Err(err) => {
|
||||
*err_msg = alloc(&err.to_string());
|
||||
ffi::SQLITE_ERROR
|
||||
}
|
||||
Err(err) => to_sqlite_error(&err, err_msg),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1016,8 +1007,7 @@ where
|
||||
ffi::SQLITE_OK
|
||||
} else {
|
||||
let err = error_from_sqlite_code(rc, None);
|
||||
*err_msg = alloc(&err.to_string());
|
||||
rc
|
||||
to_sqlite_error(&err, err_msg)
|
||||
}
|
||||
}
|
||||
Err(err) => {
|
||||
@@ -1025,16 +1015,7 @@ where
|
||||
ffi::SQLITE_ERROR
|
||||
}
|
||||
},
|
||||
Err(Error::SqliteFailure(err, s)) => {
|
||||
if let Some(s) = s {
|
||||
*err_msg = alloc(&s);
|
||||
}
|
||||
err.extended_code
|
||||
}
|
||||
Err(err) => {
|
||||
*err_msg = alloc(&err.to_string());
|
||||
ffi::SQLITE_ERROR
|
||||
}
|
||||
Err(err) => to_sqlite_error(&err, err_msg),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1311,12 +1292,6 @@ unsafe fn result_error<T>(ctx: *mut ffi::sqlite3_context, result: Result<T>) ->
|
||||
}
|
||||
}
|
||||
|
||||
// Space to hold this string must be obtained
|
||||
// from an SQLite memory allocation function
|
||||
fn alloc(s: &str) -> *mut c_char {
|
||||
crate::util::SqliteMallocString::from_str(s).into_raw()
|
||||
}
|
||||
|
||||
#[cfg(feature = "array")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "array")))]
|
||||
pub mod array;
|
||||
|
Reference in New Issue
Block a user