From 06faa066d11e2e76ffcf0207f34ea8c6e66a1a76 Mon Sep 17 00:00:00 2001 From: Estevan Castilho Date: Sat, 9 May 2026 01:10:45 +0000 Subject: We're not using multiple LMDB databases, so avoid passing a name --- lib/external/lmdb.ml | 10 +++++----- lib/management/storage/lmdb.ml | 15 ++++++--------- 2 files changed, 11 insertions(+), 14 deletions(-) (limited to 'lib') diff --git a/lib/external/lmdb.ml b/lib/external/lmdb.ml index a918ce8..ea60f94 100644 --- a/lib/external/lmdb.ml +++ b/lib/external/lmdb.ml @@ -46,11 +46,11 @@ let mdb_env_create' () = with_output_pointer let mdb_env_open = foreign "mdb_env_open" (ptr mdb_env @-> string @-> uint @-> mdb_mode_t @-> returning mdb_result) let mdb_env_close = foreign "mdb_env_close" (ptr mdb_env @-> returning void) -let mdb_dbi_open = foreign "mdb_dbi_open" (ptr mdb_txn @-> string @-> uint @-> ptr mdb_dbi @-> returning mdb_result) -let mdb_dbi_open' txn name flags = with_output_pointer - mdb_dbi - (Unsigned.UInt.of_int 0) - (mdb_dbi_open txn name flags) +let mdb_dbi_open = foreign "mdb_dbi_open" (ptr mdb_txn @-> ptr char @-> uint @-> ptr mdb_dbi @-> returning mdb_result) +let mdb_dbi_open' txn flags = with_output_pointer + mdb_dbi + (Unsigned.UInt.of_int 0) + (mdb_dbi_open txn (from_voidp char null) flags) let mdb_txn_begin = foreign "mdb_txn_begin" (ptr mdb_env @-> ptr mdb_txn @-> uint @-> ptr (ptr mdb_txn) @-> returning mdb_result) let mdb_txn_begin' env parent flags = with_output_pointer diff --git a/lib/management/storage/lmdb.ml b/lib/management/storage/lmdb.ml index 0aa9905..e1c4307 100644 --- a/lib/management/storage/lmdb.ml +++ b/lib/management/storage/lmdb.ml @@ -6,7 +6,7 @@ module B : Physical.BACKEND with type error = string = struct let mdb_notfound = -30798 end - type configuration = { path : string; name : string } + type configuration = { path : string } type connection = { env : mdb_env structure ptr; dbi : mdb_dbi } type error = string (* int *) (* FIXME *) @@ -21,11 +21,7 @@ module B : Physical.BACKEND with type error = string = struct |> Option.to_result ~none:"Missing key: path" |> fmap (Configuration.atom_of_sexp) in - let* name = Utilities.StringMap.find_opt "name" keys - |> Option.to_result ~none:"Missing key: name" - |> fmap (Configuration.atom_of_sexp) - in - Ok { path; name } + Ok { path } let current_tx () = Effect.perform Current let current_tx' () = try current_tx () with Effect.Unhandled Current -> (from_voidp mdb_txn null) @@ -55,11 +51,12 @@ module B : Physical.BACKEND with type error = string = struct let abort _ = Effect.perform Rollback - let connect { path; name } = + let connect { path; _ } = begin let open Utilities.Result in let* env = mdb_env_create' () in - match mdb_env_open env path (Unsigned.UInt.of_int 0) PosixTypes.Mode.zero with + (* TODO: make the POSIX mode a config parameter *) + match mdb_env_open env path Unsigned.UInt.zero (PosixTypes.Mode.of_int 420) with | Error x -> mdb_env_close env; Error x @@ -67,7 +64,7 @@ module B : Physical.BACKEND with type error = string = struct Result.bind (with_transaction' env (fun () -> - let* dbi = mdb_dbi_open' (current_tx ()) name (Unsigned.UInt.of_int 0) in + let* dbi = mdb_dbi_open' (current_tx ()) Unsigned.UInt.zero in Ok { env; dbi })) Option.get end -- cgit v1.2.3