diff --git a/src/functions.rs b/src/functions.rs index 2ae29a8..41d9d1a 100644 --- a/src/functions.rs +++ b/src/functions.rs @@ -71,21 +71,13 @@ use crate::types::{FromSql, FromSqlError, ToSql, ValueRef}; use crate::{str_to_cstring, Connection, Error, InnerConnection, Result}; unsafe fn report_error(ctx: *mut sqlite3_context, err: &Error) { - // Extended constraint error codes were added in SQLite 3.7.16. We don't have - // an explicit feature check for that, and this doesn't really warrant one. - // We'll use the extended code if we're on the bundled version (since it's - // at least 3.17.0) and the normal constraint error code if not. - fn constraint_error_code() -> i32 { - ffi::SQLITE_CONSTRAINT_FUNCTION - } - if let Error::SqliteFailure(ref err, ref s) = *err { ffi::sqlite3_result_error_code(ctx, err.extended_code); if let Some(Ok(cstr)) = s.as_ref().map(|s| str_to_cstring(s)) { ffi::sqlite3_result_error(ctx, cstr.as_ptr(), -1); } } else { - ffi::sqlite3_result_error_code(ctx, constraint_error_code()); + ffi::sqlite3_result_error_code(ctx, ffi::SQLITE_CONSTRAINT_FUNCTION); if let Ok(cstr) = str_to_cstring(&err.to_string()) { ffi::sqlite3_result_error(ctx, cstr.as_ptr(), -1); } diff --git a/src/types/mod.rs b/src/types/mod.rs index 421061c..4dbc19d 100644 --- a/src/types/mod.rs +++ b/src/types/mod.rs @@ -211,10 +211,10 @@ mod test { fn test_option() -> Result<()> { let db = checked_memory_handle()?; - let s = Some("hello, world!"); + let s = "hello, world!"; let b = Some(vec![1u8, 2, 3, 4]); - db.execute("INSERT INTO foo(t) VALUES (?1)", [&s])?; + db.execute("INSERT INTO foo(t) VALUES (?1)", [Some(s)])?; db.execute("INSERT INTO foo(b) VALUES (?1)", [&b])?; let mut stmt = db.prepare("SELECT t, b FROM foo ORDER BY ROWID ASC")?; @@ -224,7 +224,7 @@ mod test { let row1 = rows.next()?.unwrap(); let s1: Option = row1.get_unwrap(0); let b1: Option> = row1.get_unwrap(1); - assert_eq!(s.unwrap(), s1.unwrap()); + assert_eq!(s, s1.unwrap()); assert!(b1.is_none()); }