remove throw statements from fold functions
This commit is contained in:
parent
a911734134
commit
4dab3a65e5
1 changed files with 19 additions and 37 deletions
|
@ -169,13 +169,8 @@ fold_buckets(FoldBucketsFun, Acc, Opts, #state{tree=Tree}) ->
|
||||||
FoldFun = fold_buckets_fun(FoldBucketsFun),
|
FoldFun = fold_buckets_fun(FoldBucketsFun),
|
||||||
BucketFolder =
|
BucketFolder =
|
||||||
fun() ->
|
fun() ->
|
||||||
try
|
|
||||||
Range = #btree_range{to_key = <<>>},
|
Range = #btree_range{to_key = <<>>},
|
||||||
lsm_btree:sync_fold_range(Tree, FoldFun, {Acc, []}, Range)
|
lsm_btree:sync_fold_range(Tree, FoldFun, {Acc, []}, Range)
|
||||||
catch
|
|
||||||
{break, AccFinal} ->
|
|
||||||
AccFinal
|
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
case lists:member(async_fold, Opts) of
|
case lists:member(async_fold, Opts) of
|
||||||
true ->
|
true ->
|
||||||
|
@ -196,8 +191,8 @@ fold_keys(FoldKeysFun, Acc, Opts, #state{tree=Tree}) ->
|
||||||
Index = lists:keyfind(index, 1, Opts),
|
Index = lists:keyfind(index, 1, Opts),
|
||||||
|
|
||||||
%% Multiple limiters may exist. Take the most specific limiter.
|
%% Multiple limiters may exist. Take the most specific limiter.
|
||||||
Limiter =
|
Limiter = if
|
||||||
if Index /= false -> Index;
|
Index /= false -> Index;
|
||||||
Bucket /= false -> Bucket;
|
Bucket /= false -> Bucket;
|
||||||
true -> undefined
|
true -> undefined
|
||||||
end,
|
end,
|
||||||
|
@ -206,13 +201,8 @@ fold_keys(FoldKeysFun, Acc, Opts, #state{tree=Tree}) ->
|
||||||
FoldFun = fold_keys_fun(FoldKeysFun, Limiter),
|
FoldFun = fold_keys_fun(FoldKeysFun, Limiter),
|
||||||
KeyFolder =
|
KeyFolder =
|
||||||
fun() ->
|
fun() ->
|
||||||
try
|
|
||||||
Range = #btree_range{to_key = <<>>},
|
Range = #btree_range{to_key = <<>>},
|
||||||
lsm_btree:sync_fold_range(Tree, FoldFun, Acc, Range)
|
lsm_btree:sync_fold_range(Tree, FoldFun, Acc, Range)
|
||||||
catch
|
|
||||||
{break, AccFinal} ->
|
|
||||||
AccFinal
|
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
case lists:member(async_fold, Opts) of
|
case lists:member(async_fold, Opts) of
|
||||||
true ->
|
true ->
|
||||||
|
@ -231,13 +221,8 @@ fold_objects(FoldObjectsFun, Acc, Opts, #state{tree=Tree}) ->
|
||||||
FoldFun = fold_objects_fun(FoldObjectsFun, Bucket),
|
FoldFun = fold_objects_fun(FoldObjectsFun, Bucket),
|
||||||
ObjectFolder =
|
ObjectFolder =
|
||||||
fun() ->
|
fun() ->
|
||||||
try
|
|
||||||
Range = #btree_range{to_key = <<>>},
|
Range = #btree_range{to_key = <<>>},
|
||||||
lsm_btree:sync_fold_range(Tree, FoldFun, Acc, Range)
|
lsm_btree:sync_fold_range(Tree, FoldFun, Acc, Range)
|
||||||
catch
|
|
||||||
{break, AccFinal} ->
|
|
||||||
AccFinal
|
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
case lists:member(async_fold, Opts) of
|
case lists:member(async_fold, Opts) of
|
||||||
true ->
|
true ->
|
||||||
|
@ -289,8 +274,7 @@ get_data_dir(DataRoot, Partition) ->
|
||||||
ok ->
|
ok ->
|
||||||
{ok, PartitionDir};
|
{ok, PartitionDir};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
lager:error("Failed to create lsm_btree dir ~s: ~p",
|
lager:error("Failed to create lsm_btree dir ~s: ~p", [PartitionDir, Reason]),
|
||||||
[PartitionDir, Reason]),
|
|
||||||
{error, Reason}
|
{error, Reason}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -302,9 +286,7 @@ fold_buckets_fun(FoldBucketsFun) ->
|
||||||
{LastBucket, _} ->
|
{LastBucket, _} ->
|
||||||
{Acc, LastBucket};
|
{Acc, LastBucket};
|
||||||
{Bucket, _} ->
|
{Bucket, _} ->
|
||||||
{FoldBucketsFun(Bucket, Acc), Bucket};
|
{FoldBucketsFun(Bucket, Acc), Bucket}
|
||||||
_ ->
|
|
||||||
throw({break, Acc})
|
|
||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -317,7 +299,7 @@ fold_keys_fun(FoldKeysFun, undefined) ->
|
||||||
{Bucket, Key} ->
|
{Bucket, Key} ->
|
||||||
FoldKeysFun(Bucket, Key, Acc);
|
FoldKeysFun(Bucket, Key, Acc);
|
||||||
_ ->
|
_ ->
|
||||||
throw({break, Acc})
|
Acc
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
fold_keys_fun(FoldKeysFun, {bucket, FilterBucket}) ->
|
fold_keys_fun(FoldKeysFun, {bucket, FilterBucket}) ->
|
||||||
|
@ -327,7 +309,7 @@ fold_keys_fun(FoldKeysFun, {bucket, FilterBucket}) ->
|
||||||
{Bucket, Key} when Bucket == FilterBucket ->
|
{Bucket, Key} when Bucket == FilterBucket ->
|
||||||
FoldKeysFun(Bucket, Key, Acc);
|
FoldKeysFun(Bucket, Key, Acc);
|
||||||
_ ->
|
_ ->
|
||||||
throw({break, Acc})
|
Acc
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
fold_keys_fun(_FoldKeysFun, Other) ->
|
fold_keys_fun(_FoldKeysFun, Other) ->
|
||||||
|
@ -342,7 +324,7 @@ fold_objects_fun(FoldObjectsFun, FilterBucket) ->
|
||||||
Bucket == FilterBucket ->
|
Bucket == FilterBucket ->
|
||||||
FoldObjectsFun(Bucket, Key, Value, Acc);
|
FoldObjectsFun(Bucket, Key, Value, Acc);
|
||||||
_ ->
|
_ ->
|
||||||
throw({break, Acc})
|
Acc
|
||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -363,13 +345,13 @@ from_object_key(LKey) ->
|
||||||
-ifdef(TEST).
|
-ifdef(TEST).
|
||||||
|
|
||||||
simple_test_() ->
|
simple_test_() ->
|
||||||
?assertCmd("rm -rf test/lsm_btree-backend"),
|
?assertCmd("rm -rf test/lsm-btree-backend"),
|
||||||
application:set_env(lsm_btree, data_root, "test/lsm_btree-backend"),
|
application:set_env(lsm_btree, data_root, "test/lsm-btree-backend"),
|
||||||
lsm_btree_temp_riak_kv_backend:standard_test(?MODULE, []).
|
lsm_btree_temp_riak_kv_backend:standard_test(?MODULE, []).
|
||||||
|
|
||||||
custom_config_test_() ->
|
custom_config_test_() ->
|
||||||
?assertCmd("rm -rf test/lsm_btree-backend"),
|
?assertCmd("rm -rf test/lsm_btree-backend"),
|
||||||
application:set_env(lsm_btree, data_root, ""),
|
application:set_env(lsm_btree, data_root, ""),
|
||||||
lsm_btree_temp_riak_kv_backend:standard_test(?MODULE, [{data_root, "test/lsm_btree-backend"}]).
|
lsm_btree_temp_riak_kv_backend:standard_test(?MODULE, [{data_root, "test/lsm-btree-backend"}]).
|
||||||
|
|
||||||
-endif.
|
-endif.
|
||||||
|
|
Loading…
Reference in a new issue