Packages
rocksdb
3.1.2
3.1.2
3.1.1
3.1.0
3.0.0
2.6.2
2.6.1
retired
2.6.0
retired
2.5.0
2.4.1
2.4.0
2.3.0
2.2.0
2.1.0
2.0.0
1.9.0
1.8.0
1.7.0
1.6.0
1.5.1
1.5.0
1.4.0
1.3.2
1.3.1
1.3.0
1.2.0
1.1.1
1.1.0
1.0.0
0.26.2
0.26.1
0.26.0
0.25.0
0.24.0
0.23.3
0.23.2
0.23.1
0.23.0
0.22.0
0.21.0
0.20.1
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
RocksDB for Erlang
Current section
Files
Jump to
Current section
Files
test/get_property.erl
-module(get_property).
-compile([export_all/1]).
-include_lib("eunit/include/eunit.hrl").
-define(DB, "test_getproperty.db").
%% Test get_property/2 (default CF) works
default_cf_test() ->
destroy_and_rm(?DB, []),
{ok, Db} = rocksdb:open(?DB, [{create_if_missing, true}]),
ok = rocksdb:put(Db, <<"k1">>, <<"v1">>, []),
{ok, Val} = rocksdb:get_property(Db, <<"rocksdb.estimate-num-keys">>),
?assert(binary_to_integer(Val) >= 1),
rocksdb:close(Db),
destroy_and_rm(?DB, []),
ok.
%% Test get_property/3 returns correct per-CF count (the core bug)
cf_property_test() ->
destroy_and_rm(?DB, []),
CFs = [{"default", []}, {"data", []}],
{ok, Db, [DefaultH, DataH]} = rocksdb:open(?DB,
[{create_if_missing, true}, {create_missing_column_families, true}], CFs),
%% Write 5 keys to "data" CF, nothing to "default"
[ok = rocksdb:put(Db, DataH, <<"k", (N + $0)>>, <<"v">>, [])
|| N <- lists:seq(1, 5)],
ok = rocksdb:flush(Db, DataH, [{wait, true}]),
%% get_property/3 on "data" CF must reflect the 5 keys
{ok, DataCount} = rocksdb:get_property(Db, DataH, <<"rocksdb.estimate-num-keys">>),
?assert(binary_to_integer(DataCount) >= 5),
%% get_property/3 on "default" CF should be 0
{ok, DefaultCount} = rocksdb:get_property(Db, DefaultH, <<"rocksdb.estimate-num-keys">>),
?assertEqual(0, binary_to_integer(DefaultCount)),
rocksdb:close(Db),
destroy_and_rm(?DB, []),
ok.
destroy_and_rm(Dir, Options) ->
rocksdb:destroy(Dir, Options),
rocksdb_test_util:rm_rf(Dir).