Whitespace. Call wterl:drop not truncate for drop calls and set force
to true when calling so that we ignore ENOENT. Change the session estimate down a bit.
This commit is contained in:
parent
40bdda15bb
commit
d505f7f9c8
3 changed files with 73 additions and 65 deletions
|
@ -1264,11 +1264,18 @@ ASYNC_NIF_DECL(
|
||||||
WT_CURSOR* cursor;
|
WT_CURSOR* cursor;
|
||||||
rc = session->open_cursor(session, args->uri, NULL, (config.data[0] != 0) ? (char *)config.data : "overwrite,raw", &cursor);
|
rc = session->open_cursor(session, args->uri, NULL, (config.data[0] != 0) ? (char *)config.data : "overwrite,raw", &cursor);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
|
session->close(session, NULL);
|
||||||
ASYNC_NIF_REPLY(__strerror_term(env, rc));
|
ASYNC_NIF_REPLY(__strerror_term(env, rc));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
WterlCursorHandle* cursor_handle = enif_alloc_resource(wterl_cursor_RESOURCE, sizeof(WterlCursorHandle));
|
WterlCursorHandle* cursor_handle = enif_alloc_resource(wterl_cursor_RESOURCE, sizeof(WterlCursorHandle));
|
||||||
|
if (!cursor_handle) {
|
||||||
|
cursor->close(cursor);
|
||||||
|
session->close(session, NULL);
|
||||||
|
ASYNC_NIF_REPLY(__strerror_term(env, ENOMEM));
|
||||||
|
return;
|
||||||
|
}
|
||||||
cursor_handle->session = session;
|
cursor_handle->session = session;
|
||||||
cursor_handle->cursor = cursor;
|
cursor_handle->cursor = cursor;
|
||||||
ERL_NIF_TERM result = enif_make_resource(env, cursor_handle);
|
ERL_NIF_TERM result = enif_make_resource(env, cursor_handle);
|
||||||
|
@ -1304,9 +1311,10 @@ ASYNC_NIF_DECL(
|
||||||
WT_CURSOR *cursor = args->cursor_handle->cursor;
|
WT_CURSOR *cursor = args->cursor_handle->cursor;
|
||||||
WT_SESSION *session = args->cursor_handle->session;
|
WT_SESSION *session = args->cursor_handle->session;
|
||||||
/* Note: session->close() will cause all open cursors in the session to be
|
/* Note: session->close() will cause all open cursors in the session to be
|
||||||
closed first, so we don't have explicitly to do that here. */
|
closed first, so we don't have explicitly to do that here.
|
||||||
int rc = cursor->close(cursor);
|
rc = cursor->close(cursor);
|
||||||
(void)session->close(session, NULL);
|
*/
|
||||||
|
int rc = session->close(session, NULL);
|
||||||
ASYNC_NIF_REPLY(rc == 0 ? ATOM_OK : __strerror_term(env, rc));
|
ASYNC_NIF_REPLY(rc == 0 ? ATOM_OK : __strerror_term(env, rc));
|
||||||
},
|
},
|
||||||
{ // post
|
{ // post
|
||||||
|
|
|
@ -310,7 +310,7 @@ fold_objects(FoldObjectsFun, Acc, Opts, #state{connection=Connection, table=Tabl
|
||||||
%% @doc Delete all objects from this wterl backend
|
%% @doc Delete all objects from this wterl backend
|
||||||
-spec drop(state()) -> {ok, state()} | {error, term(), state()}.
|
-spec drop(state()) -> {ok, state()} | {error, term(), state()}.
|
||||||
drop(#state{connection=Connection, table=Table}=State) ->
|
drop(#state{connection=Connection, table=Table}=State) ->
|
||||||
case wterl:truncate(Connection, Table) of
|
case wterl:drop(Connection, Table) of
|
||||||
ok ->
|
ok ->
|
||||||
{ok, State};
|
{ok, State};
|
||||||
Error ->
|
Error ->
|
||||||
|
@ -355,7 +355,7 @@ max_sessions(Config) ->
|
||||||
undefined -> 1024;
|
undefined -> 1024;
|
||||||
Size -> Size
|
Size -> Size
|
||||||
end,
|
end,
|
||||||
Est = 1000 * (RingSize * erlang:system_info(schedulers)), % TODO: review/fix this logic
|
Est = 100 * (RingSize * erlang:system_info(schedulers)), % TODO: review/fix this logic
|
||||||
case Est > 1000000000 of % Note: WiredTiger uses a signed int for this
|
case Est > 1000000000 of % Note: WiredTiger uses a signed int for this
|
||||||
true -> 1000000000;
|
true -> 1000000000;
|
||||||
false -> Est
|
false -> Est
|
||||||
|
|
|
@ -147,7 +147,7 @@ create_nif(_AsyncNif, _Ref, _Name, _Config) ->
|
||||||
-spec drop(connection(), string()) -> ok | {error, term()}.
|
-spec drop(connection(), string()) -> ok | {error, term()}.
|
||||||
-spec drop(connection(), string(), config_list()) -> ok | {error, term()}.
|
-spec drop(connection(), string(), config_list()) -> ok | {error, term()}.
|
||||||
drop(Ref, Name) ->
|
drop(Ref, Name) ->
|
||||||
drop(Ref, Name, []).
|
drop(Ref, Name, [{force, true}]).
|
||||||
drop(Ref, Name, Config) ->
|
drop(Ref, Name, Config) ->
|
||||||
?ASYNC_NIF_CALL(fun drop_nif/4, [Ref, Name, config_to_bin(Config)]).
|
?ASYNC_NIF_CALL(fun drop_nif/4, [Ref, Name, config_to_bin(Config)]).
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue