Switch from binary_bucketlist
Allow for bucket listing of non-binary buckets (integer buckets, buckets with ascii strings)
This commit is contained in:
parent
41fb83abd1
commit
50967438d3
4 changed files with 19 additions and 18 deletions
|
@ -503,7 +503,7 @@ book_head(Pid, Bucket, Key) ->
|
|||
%% {bucket_stats, Bucket} -> return a key count and total object size within
|
||||
%% a bucket
|
||||
%% {riakbucket_stats, Bucket} -> as above, but for buckets with the Riak Tag
|
||||
%% {binary_bucketlist, Tag, {FoldKeysFun, Acc}} -> if we assume buckets and
|
||||
%% {bucket_list, Tag, {FoldKeysFun, Acc}} -> if we assume buckets and
|
||||
%% keys are binaries, provides a fast bucket list function
|
||||
%% {index_query,
|
||||
%% Constraint,
|
||||
|
@ -1200,14 +1200,14 @@ get_runner(State,
|
|||
leveled_runner:foldobjects_byindex(SnapFun,
|
||||
{Tag, Bucket, Field, FromTerm, ToTerm},
|
||||
FoldObjectsFun);
|
||||
get_runner(State, {binary_bucketlist, Tag, FoldAccT}) ->
|
||||
get_runner(State, {bucket_list, Tag, FoldAccT}) ->
|
||||
{FoldBucketsFun, Acc} = FoldAccT,
|
||||
SnapFun = return_snapfun(State, ledger, no_lookup, false, false),
|
||||
leveled_runner:binary_bucketlist(SnapFun, Tag, FoldBucketsFun, Acc);
|
||||
leveled_runner:bucket_list(SnapFun, Tag, FoldBucketsFun, Acc);
|
||||
get_runner(State, {first_bucket, Tag, FoldAccT}) ->
|
||||
{FoldBucketsFun, Acc} = FoldAccT,
|
||||
SnapFun = return_snapfun(State, ledger, no_lookup, false, false),
|
||||
leveled_runner:binary_bucketlist(SnapFun, Tag, FoldBucketsFun, Acc, 1);
|
||||
leveled_runner:bucket_list(SnapFun, Tag, FoldBucketsFun, Acc, 1);
|
||||
%% Set of specific runners, primarily used as exmaples for tests
|
||||
get_runner(State, DeprecatedQuery) ->
|
||||
get_deprecatedrunner(State, DeprecatedQuery).
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
|
||||
-export([
|
||||
bucket_sizestats/3,
|
||||
binary_bucketlist/4,
|
||||
binary_bucketlist/5,
|
||||
bucket_list/4,
|
||||
bucket_list/5,
|
||||
index_query/3,
|
||||
bucketkey_query/4,
|
||||
bucketkey_query/5,
|
||||
|
@ -73,19 +73,20 @@ bucket_sizestats(SnapFun, Bucket, Tag) ->
|
|||
end,
|
||||
{async, Runner}.
|
||||
|
||||
-spec binary_bucketlist(fun(), leveled_codec:tag(), fun(), any())
|
||||
-spec bucket_list(fun(), leveled_codec:tag(), fun(), any())
|
||||
-> {async, fun()}.
|
||||
%% @doc
|
||||
%% List buckets for tag, assuming bucket names are all binary type
|
||||
binary_bucketlist(SnapFun, Tag, FoldBucketsFun, InitAcc) ->
|
||||
binary_bucketlist(SnapFun, Tag, FoldBucketsFun, InitAcc, -1).
|
||||
%% List buckets for tag, assuming bucket names are all either binary, ascii
|
||||
%% strings or integers
|
||||
bucket_list(SnapFun, Tag, FoldBucketsFun, InitAcc) ->
|
||||
bucket_list(SnapFun, Tag, FoldBucketsFun, InitAcc, -1).
|
||||
|
||||
-spec binary_bucketlist(fun(), leveled_codec:tag(), fun(), any(), integer())
|
||||
-spec bucket_list(fun(), leveled_codec:tag(), fun(), any(), integer())
|
||||
-> {async, fun()}.
|
||||
%% @doc
|
||||
%% set Max Buckets to -1 to list all buckets, otherwise will only return
|
||||
%% MaxBuckets (use 1 to confirm that there exists any bucket for a given Tag)
|
||||
binary_bucketlist(SnapFun, Tag, FoldBucketsFun, InitAcc, MaxBuckets) ->
|
||||
bucket_list(SnapFun, Tag, FoldBucketsFun, InitAcc, MaxBuckets) ->
|
||||
Runner =
|
||||
fun() ->
|
||||
{ok, LedgerSnapshot, _JournalSnapshot} = SnapFun(),
|
||||
|
|
|
@ -778,7 +778,7 @@ is_empty_test(_Config) ->
|
|||
ok = testutil:book_riakput(Bookie1, TestObject3, TestSpec3),
|
||||
|
||||
FoldBucketsFun = fun(B, Acc) -> sets:add_element(B, Acc) end,
|
||||
BucketListQuery = {binary_bucketlist,
|
||||
BucketListQuery = {bucket_list,
|
||||
?RIAK_TAG,
|
||||
{FoldBucketsFun, sets:new()}},
|
||||
{async, BL} = leveled_bookie:book_returnfolder(Bookie1, BucketListQuery),
|
||||
|
|
|
@ -173,13 +173,13 @@ small_load_with2i(_Config) ->
|
|||
true = Total2 == Total1,
|
||||
|
||||
FoldBucketsFun = fun(B, Acc) -> sets:add_element(B, Acc) end,
|
||||
% Should not find any buckets - as there is a non-binary bucket, and no
|
||||
% binary ones
|
||||
BucketListQuery = {binary_bucketlist,
|
||||
% this should find Bucket and Bucket1 - as we can now find string-based
|
||||
% buckets using bucket_list - i.e. it isn't just binary buckets now
|
||||
BucketListQuery = {bucket_list,
|
||||
?RIAK_TAG,
|
||||
{FoldBucketsFun, sets:new()}},
|
||||
{async, BL} = leveled_bookie:book_returnfolder(Bookie2, BucketListQuery),
|
||||
true = sets:size(BL()) == 0,
|
||||
true = sets:size(BL()) == 2,
|
||||
|
||||
ok = leveled_bookie:book_close(Bookie2),
|
||||
testutil:reset_filestructure().
|
||||
|
@ -394,7 +394,7 @@ query_count(_Config) ->
|
|||
testutil:check_forobject(Book4, TestObject),
|
||||
|
||||
FoldBucketsFun = fun(B, Acc) -> sets:add_element(B, Acc) end,
|
||||
BucketListQuery = {binary_bucketlist,
|
||||
BucketListQuery = {bucket_list,
|
||||
?RIAK_TAG,
|
||||
{FoldBucketsFun, sets:new()}},
|
||||
{async, BLF1} = leveled_bookie:book_returnfolder(Book4, BucketListQuery),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue