Packages
rocksdb
2.0.0
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
guides/bitset_merge_operator.md
The bitset operator allows you to maintain a bitmap. You can set or unset a bit at a oisutuib in a fixed bitmap.
Ex:
```erlang
{ok, Db} = rocksdb:open("/tmp/rocksdb_merge_db.test",
[{create_if_missing, true},
{merge_operator, {bitset_merge_operator, 1024}}]),
Bitmap = << 0:1024/unsigned >>,
ok = rocksdb:put(Db, <<"bitmap">>, Bitmap, []),
ok = rocksdb:merge(Db, <<"bitmap">>, <<"+2">>, []),
{ok, << 32, _/binary>> } = rocksdb:get(Db, <<"bitmap">>, []),
ok = rocksdb:merge(Db, <<"bitmap">>, <<"-2">>, []),
{ok, << 0, _/binary>> } = rocksdb:get(Db, <<"bitmap">>, []),
ok = rocksdb:merge(Db, <<"bitmap">>, <<"+11">>, []),
{ok, << 0, 16, _/binary>> } = rocksdb:get(Db, <<"bitmap">>, []),
ok = rocksdb:merge(Db, <<"bitmap">>, <<"+10">>, []),
{ok, << 0, 48, _/binary>> } = rocksdb:get(Db, <<"bitmap">>, []),
ok = rocksdb:merge(Db, <<"unsetbitmap">>, <<"+2">>, []),
{ok, << 32, _/binary>> } = rocksdb:get(Db, <<"unsetbitmap">>, []),
ok = rocksdb:merge(Db, <<"unsetbitmap">>, <<"-2">>, []),
{ok, << 0, _/binary>> } = rocksdb:get(Db, <<"unsetbitmap">>, []),
ok = rocksdb:merge(Db, <<"unsetbitmap">>, <<"+11">>, []),
{ok, << 0, 16, _/binary>> } = rocksdb:get(Db, <<"unsetbitmap">>, []),
ok = rocksdb:merge(Db, <<"unsetbitmap">>, <<"+10">>, []),
{ok, << 0, 48, _/binary>> } = rocksdb:get(Db, <<"unsetbitmap">>, []),
ok = rocksdb:close(Db),
```