Open
Description
When I was loading this extension, the fts5
function was missing.
Used sqlite3_auto_extension
in rusqlite
Dependencies
anyhow = "^1.0"
rusqlite = { version = "~0.31", features = ["bundled"] }
sqlite-regex = "0.2.4-alpha.1"
Code
use std::ffi::{c_char, c_int};
use anyhow::Result;
use rusqlite::Connection;
use rusqlite::ffi::{sqlite3, sqlite3_api_routines, sqlite3_auto_extension, SQLITE_OK};
fn main() -> Result<()> {
unsafe extern "C" fn regex(db: *mut sqlite3, pz_err_msg: *mut *const c_char, p_api: *const sqlite3_api_routines) -> c_int {
sqlite_regex::sqlite3_regex_init(db as _, pz_err_msg as _, p_api as _) as _
}
unsafe {
assert_eq!(sqlite3_auto_extension(Some(regex)), SQLITE_OK);
};
let connection = Connection::open_in_memory()?;
connection.prepare("SELECT fts5(?1)")?;
Ok(())
}
But when I comment out these lines:
unsafe {
assert_eq!(sqlite3_auto_extension(Some(regex)), SQLITE_OK);
};
it works.
Is there any error in my code? I'm curious why, these should be two unrelated extensions.
Metadata
Metadata
Assignees
Labels
No labels