|
|
@ -34,7 +34,7 @@ lazy_static! {
|
|
|
|
///
|
|
|
|
///
|
|
|
|
/// `engine`: which storage engine to use, can be "mem", "sqlite" or "rocksdb".
|
|
|
|
/// `engine`: which storage engine to use, can be "mem", "sqlite" or "rocksdb".
|
|
|
|
/// `path`: should contain the UTF-8 encoded path name as a null-terminated C-string.
|
|
|
|
/// `path`: should contain the UTF-8 encoded path name as a null-terminated C-string.
|
|
|
|
/// `db_id`: will contain the id of the database opened.
|
|
|
|
/// `db_id`: will contain the ID of the database opened.
|
|
|
|
/// `options`: options for the DB constructor: engine dependent.
|
|
|
|
/// `options`: options for the DB constructor: engine dependent.
|
|
|
|
///
|
|
|
|
///
|
|
|
|
/// When the function is successful, null pointer is returned,
|
|
|
|
/// When the function is successful, null pointer is returned,
|
|
|
@ -76,29 +76,28 @@ pub unsafe extern "C" fn cozo_open_db(
|
|
|
|
|
|
|
|
|
|
|
|
/// Close a database.
|
|
|
|
/// Close a database.
|
|
|
|
///
|
|
|
|
///
|
|
|
|
/// `id`: the ID representing the database to close.
|
|
|
|
/// `db_id`: the ID representing the database to close.
|
|
|
|
///
|
|
|
|
///
|
|
|
|
/// Returns `true` if the database is closed,
|
|
|
|
/// Returns `true` if the database is closed,
|
|
|
|
/// `false` if it has already been closed, or does not exist.
|
|
|
|
/// `false` if it has already been closed, or does not exist.
|
|
|
|
#[no_mangle]
|
|
|
|
#[no_mangle]
|
|
|
|
pub unsafe extern "C" fn cozo_close_db(id: i32) -> bool {
|
|
|
|
pub unsafe extern "C" fn cozo_close_db(db_id: i32) -> bool {
|
|
|
|
let db = {
|
|
|
|
let db = {
|
|
|
|
let mut dbs = HANDLES.dbs.lock().unwrap();
|
|
|
|
let mut dbs = HANDLES.dbs.lock().unwrap();
|
|
|
|
dbs.remove(&id)
|
|
|
|
dbs.remove(&db_id)
|
|
|
|
};
|
|
|
|
};
|
|
|
|
db.is_some()
|
|
|
|
db.is_some()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// Run query against a database.
|
|
|
|
/// Run query against a database.
|
|
|
|
///
|
|
|
|
///
|
|
|
|
/// `db_id`: the ID representing the database to run the query.
|
|
|
|
/// `db_id`: the ID representing the database to run the query.
|
|
|
|
/// `script_raw`: a UTF-8 encoded C-string for the CozoScript to execute.
|
|
|
|
/// `script_raw`: a UTF-8 encoded C-string for the CozoScript to execute.
|
|
|
|
/// `params_raw`: a UTF-8 encoded C-string for the params of the query,
|
|
|
|
/// `params_raw`: a UTF-8 encoded C-string for the params of the query,
|
|
|
|
/// in JSON format. You must always pass in a valid JSON map,
|
|
|
|
/// in JSON format. You must always pass in a valid JSON map,
|
|
|
|
/// even if you do not use params in your query
|
|
|
|
/// even if you do not use params in your query
|
|
|
|
/// (pass "{}" in this case).
|
|
|
|
/// (pass "{}" in this case).
|
|
|
|
/// `errored`: will point to `false` if the query is successful,
|
|
|
|
/// `immutable_query`: whether the query is read-only.
|
|
|
|
/// `true` if an error occurred.
|
|
|
|
|
|
|
|
///
|
|
|
|
///
|
|
|
|
/// Returns a UTF-8-encoded C-string that **must** be freed with `cozo_free_str`.
|
|
|
|
/// Returns a UTF-8-encoded C-string that **must** be freed with `cozo_free_str`.
|
|
|
|
/// The string contains the JSON return value of the query.
|
|
|
|
/// The string contains the JSON return value of the query.
|
|
|
|