diff options
| author | ubq323 <ubq323@ubq323.website> | 2023-03-24 22:04:17 +0000 |
|---|---|---|
| committer | the lemons <citrons@mondecitronne.com> | 2023-04-04 21:49:26 -0500 |
| commit | d27bb860ea5d3edb59b78413325102104a24ce1e (patch) | |
| tree | 1e9972f9796d4ad2eb029790a8873da7bd3d67c1 /lmdb.c | |
| parent | 241690fe5733e758166d8fcd52acaa5f2e505cb0 (diff) | |
add mapsize option
Diffstat (limited to 'lmdb.c')
| -rw-r--r-- | lmdb.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -70,6 +70,8 @@ static int env_open(lua_State *L) { int flags = 0; int maxdbs = 0; int maxdbs_supplied = 0; + int mapsize = 0; + int mapsize_supplied = 0; if (!lua_isnil(L, 2)) { for (int i = 0; env_flags[i].name != NULL; i++) { lua_getfield(L, 2, env_flags[i].name); @@ -78,11 +80,20 @@ static int env_open(lua_State *L) { } lua_getfield(L, 2, "maxdbs"); maxdbs = lua_tointegerx(L, -1, &maxdbs_supplied); + lua_getfield(L, 2, "mapsize"); + mapsize = lua_tointegerx(L, -1, &mapsize_supplied); } MDB_env *env; reterr(mdb_env_create(&env)); if (maxdbs_supplied) mdb_env_set_maxdbs(env, maxdbs); + if (mapsize_supplied) + mdb_env_set_mapsize(env, mapsize); + else + // lmdb default mapsize is 1MiB which is tiny + // so we use a default of 1GiB instead + mdb_env_set_mapsize(env, 1073741824); + int result = mdb_env_open(env, lua_tostring(L, 1), flags, 0664); if (result != 0) { mdb_env_close(env); |
