const std = @import("std");
const lmdb = @cImport(@cInclude("lmdb.h"));
-pub usingnamespace lmdb;
-
pub const Cursor = struct {
const Self = @This();
ptr: ?*lmdb.MDB_txn = undefined,
env: Env = undefined,
- pub fn dbi(self: Txn, name: [:0]const u8) !Dbi {
+ pub fn dbi(self: Txn, name: ?[:0]const u8) !Dbi {
var result = Dbi{ .env = self.env, .txn = self };
// TODO: lmdb.MDB_INTEGERKEY?
switch (lmdb.mdb_dbi_open(self.ptr, @ptrCast(name), lmdb.MDB_CREATE, &result.ptr)) {
_ = lmdb.mdb_env_create(&result.ptr);
_ = lmdb.mdb_env_set_maxdbs(result.ptr, 10);
_ = lmdb.mdb_env_set_mapsize(result.ptr, size);
- const res = lmdb.mdb_env_open(result.ptr, name, lmdb.MDB_WRITEMAP, 0o664);
+ const res = lmdb.mdb_env_open(result.ptr, name, lmdb.MDB_WRITEMAP | lmdb.MDB_NOSUBDIR, 0o664);
// _ = lmdb.mdb_env_open(result.ptr, name, lmdb.MDB_NOSYNC | lmdb.MDB_WRITEMAP, 0o664);
if (res != 0) {
}
while (try cursor.get(&key, Value, .Next)) |val| {
- std.debug.print("{}: {?}\n", .{ key, val });
+ std.debug.print("{}: {}\n", .{ key, val });
}
}