Packages

RocksDB Cloud for Erlang

Current section

Files

Jump to
rocksdb_cloud test db_range.erl
Raw

test/db_range.erl

%%%-------------------------------------------------------------------
%%% @author benoitc
%%% @copyright (C) 2017-2018, Benoit Chesneau
%%% @doc
%%%
%%% @end
%%% Created : 28. Aug 2017 20:39
%%%-------------------------------------------------------------------
-module(db_range).
-author("benoitc").
%% API
-include_lib("eunit/include/eunit.hrl").
delete_range_test() ->
os:cmd("rm -rf ltest"), % NOTE
{ok, Ref} = rocksdb:open("ltest", [{create_if_missing, true}]),
try
rocksdb:put(Ref, <<"a">>, <<"1">>, []),
rocksdb:put(Ref, <<"b">>, <<"2">>, []),
rocksdb:put(Ref, <<"c">>, <<"3">>, []),
rocksdb:put(Ref, <<"d">>, <<"4">>, []),
rocksdb:put(Ref, <<"e">>, <<"5">>, []),
ok = rocksdb:delete_range(Ref, <<"b">>, <<"e">>, []),
[<<"a">>, <<"e">>] = lists:reverse(
rocksdb:fold_keys(
Ref,
fun(K, Acc) -> [K | Acc] end,
[],
[]
)
)
after
rocksdb:close(Ref)
end.
cf_delete_range_test() ->
os:cmd("rm -rf ltest"), % NOTE
{ok, Ref} = rocksdb:open("ltest", [{create_if_missing, true}]),
{ok, TestH} = rocksdb:create_column_family(Ref, "test", []),
try
rocksdb:put(Ref, TestH, <<"a">>, <<"1">>, []),
rocksdb:put(Ref, TestH, <<"b">>, <<"2">>, []),
rocksdb:put(Ref, TestH, <<"c">>, <<"3">>, []),
rocksdb:put(Ref, TestH, <<"d">>, <<"4">>, []),
rocksdb:put(Ref, TestH, <<"e">>, <<"5">>, []),
ok = rocksdb:delete_range(Ref, TestH, <<"b">>, <<"e">>, []),
[<<"a">>, <<"e">>] = lists:reverse(
rocksdb:fold_keys(
Ref,
TestH,
fun(K, Acc) -> [K | Acc] end,
[],
[]
)
)
after
rocksdb:close(Ref)
end.