Add FoldKeysFun
Add the capability to pass FoldKeysFun into the index_query to allow for compatability with riak backend requirements.
This commit is contained in:
parent
e3004faa6e
commit
ac223ced68
4 changed files with 83 additions and 87 deletions
|
@ -187,25 +187,21 @@ query_count(_Config) ->
|
|||
ok
|
||||
end,
|
||||
{ok, RegMia} = re:compile("[0-9]+Mia"),
|
||||
Query1 = {index_query,
|
||||
"Bucket",
|
||||
{fun testutil:foldkeysfun/3, []},
|
||||
{"idx2_bin", "2000", "2000~"},
|
||||
{false, RegMia}},
|
||||
{async,
|
||||
Mia2KFolder1} = leveled_bookie:book_returnfolder(Book2,
|
||||
{index_query,
|
||||
"Bucket",
|
||||
{"idx2_bin",
|
||||
"2000",
|
||||
"2000~"},
|
||||
{false,
|
||||
RegMia}}),
|
||||
Mia2KFolder1} = leveled_bookie:book_returnfolder(Book2, Query1),
|
||||
Mia2000Count1 = length(Mia2KFolder1()),
|
||||
Query2 = {index_query,
|
||||
"Bucket",
|
||||
{fun testutil:foldkeysfun/3, []},
|
||||
{"idx2_bin", "2000", "2001"},
|
||||
{true, undefined}},
|
||||
{async,
|
||||
Mia2KFolder2} = leveled_bookie:book_returnfolder(Book2,
|
||||
{index_query,
|
||||
"Bucket",
|
||||
{"idx2_bin",
|
||||
"2000",
|
||||
"2001"},
|
||||
{true,
|
||||
undefined}}),
|
||||
Mia2KFolder2} = leveled_bookie:book_returnfolder(Book2, Query2),
|
||||
Mia2000Count2 = lists:foldl(fun({Term, _Key}, Acc) ->
|
||||
case re:run(Term, RegMia) of
|
||||
nomatch ->
|
||||
|
@ -222,15 +218,13 @@ query_count(_Config) ->
|
|||
ok
|
||||
end,
|
||||
{ok, RxMia2K} = re:compile("^2000[0-9]+Mia"),
|
||||
Query3 = {index_query,
|
||||
"Bucket",
|
||||
{fun testutil:foldkeysfun/3, []},
|
||||
{"idx2_bin", "1980", "2100"},
|
||||
{false, RxMia2K}},
|
||||
{async,
|
||||
Mia2KFolder3} = leveled_bookie:book_returnfolder(Book2,
|
||||
{index_query,
|
||||
"Bucket",
|
||||
{"idx2_bin",
|
||||
"1980",
|
||||
"2100"},
|
||||
{false,
|
||||
RxMia2K}}),
|
||||
Mia2KFolder3} = leveled_bookie:book_returnfolder(Book2, Query3),
|
||||
Mia2000Count1 = length(Mia2KFolder3()),
|
||||
|
||||
V9 = testutil:get_compressiblevalue(),
|
||||
|
@ -238,13 +232,12 @@ query_count(_Config) ->
|
|||
[{_RN, Obj9, Spc9}] = testutil:generate_objects(1, uuid, [], V9, Indexes9),
|
||||
ok = testutil:book_riakput(Book2, Obj9, Spc9),
|
||||
R9 = lists:map(fun({add, IdxF, IdxT}) ->
|
||||
R = leveled_bookie:book_returnfolder(Book2,
|
||||
{index_query,
|
||||
"Bucket",
|
||||
{IdxF,
|
||||
IdxT,
|
||||
IdxT},
|
||||
?KEY_ONLY}),
|
||||
Q = {index_query,
|
||||
"Bucket",
|
||||
{fun testutil:foldkeysfun/3, []},
|
||||
{IdxF, IdxT, IdxT},
|
||||
?KEY_ONLY},
|
||||
R = leveled_bookie:book_returnfolder(Book2, Q),
|
||||
{async, Fldr} = R,
|
||||
case length(Fldr()) of
|
||||
X when X > 0 ->
|
||||
|
@ -256,13 +249,12 @@ query_count(_Config) ->
|
|||
Spc9),
|
||||
ok = testutil:book_riakput(Book2, Obj9, Spc9Del),
|
||||
lists:foreach(fun({IdxF, IdxT, X}) ->
|
||||
R = leveled_bookie:book_returnfolder(Book2,
|
||||
{index_query,
|
||||
"Bucket",
|
||||
{IdxF,
|
||||
IdxT,
|
||||
IdxT},
|
||||
?KEY_ONLY}),
|
||||
Q = {index_query,
|
||||
"Bucket",
|
||||
{fun testutil:foldkeysfun/3, []},
|
||||
{IdxF, IdxT, IdxT},
|
||||
?KEY_ONLY},
|
||||
R = leveled_bookie:book_returnfolder(Book2, Q),
|
||||
{async, Fldr} = R,
|
||||
case length(Fldr()) of
|
||||
Y ->
|
||||
|
@ -273,13 +265,12 @@ query_count(_Config) ->
|
|||
ok = leveled_bookie:book_close(Book2),
|
||||
{ok, Book3} = leveled_bookie:book_start(RootPath, 2000, 50000000),
|
||||
lists:foreach(fun({IdxF, IdxT, X}) ->
|
||||
R = leveled_bookie:book_returnfolder(Book3,
|
||||
{index_query,
|
||||
"Bucket",
|
||||
{IdxF,
|
||||
IdxT,
|
||||
IdxT},
|
||||
?KEY_ONLY}),
|
||||
Q = {index_query,
|
||||
"Bucket",
|
||||
{fun testutil:foldkeysfun/3, []},
|
||||
{IdxF, IdxT, IdxT},
|
||||
?KEY_ONLY},
|
||||
R = leveled_bookie:book_returnfolder(Book3, Q),
|
||||
{async, Fldr} = R,
|
||||
case length(Fldr()) of
|
||||
Y ->
|
||||
|
@ -291,13 +282,12 @@ query_count(_Config) ->
|
|||
ok = leveled_bookie:book_close(Book3),
|
||||
{ok, Book4} = leveled_bookie:book_start(RootPath, 2000, 50000000),
|
||||
lists:foreach(fun({IdxF, IdxT, X}) ->
|
||||
R = leveled_bookie:book_returnfolder(Book4,
|
||||
{index_query,
|
||||
"Bucket",
|
||||
{IdxF,
|
||||
IdxT,
|
||||
IdxT},
|
||||
?KEY_ONLY}),
|
||||
Q = {index_query,
|
||||
"Bucket",
|
||||
{fun testutil:foldkeysfun/3, []},
|
||||
{IdxF, IdxT, IdxT},
|
||||
?KEY_ONLY},
|
||||
R = leveled_bookie:book_returnfolder(Book4, Q),
|
||||
{async, Fldr} = R,
|
||||
case length(Fldr()) of
|
||||
X ->
|
||||
|
@ -316,13 +306,12 @@ count_termsonindex(Bucket, IdxField, Book, QType) ->
|
|||
SW = os:timestamp(),
|
||||
ST = integer_to_list(X),
|
||||
ET = ST ++ "~",
|
||||
R = leveled_bookie:book_returnfolder(Book,
|
||||
{index_query,
|
||||
Bucket,
|
||||
{IdxField,
|
||||
ST,
|
||||
ET},
|
||||
QType}),
|
||||
Q = {index_query,
|
||||
Bucket,
|
||||
{fun testutil:foldkeysfun/3, []},
|
||||
{IdxField, ST, ET},
|
||||
QType},
|
||||
R = leveled_bookie:book_returnfolder(Book, Q),
|
||||
{async, Folder} = R,
|
||||
Items = length(Folder()),
|
||||
io:format("2i query from term ~s on index ~s took " ++
|
||||
|
|
|
@ -70,21 +70,15 @@ recovr_strategy(_Config) ->
|
|||
true = V == V4
|
||||
end,
|
||||
lists:nthtail(6400, AllSpcL)),
|
||||
{async, TFolder} = leveled_bookie:book_returnfolder(Book1,
|
||||
{index_query,
|
||||
"Bucket6",
|
||||
{"idx1_bin",
|
||||
"#", "~"},
|
||||
{true,
|
||||
undefined}}),
|
||||
Q = fun(RT) -> {index_query,
|
||||
"Bucket6",
|
||||
{fun testutil:foldkeysfun/3, []},
|
||||
{"idx1_bin", "#", "~"},
|
||||
{RT, undefined}}
|
||||
end,
|
||||
{async, TFolder} = leveled_bookie:book_returnfolder(Book1, Q(true)),
|
||||
KeyTermList = TFolder(),
|
||||
{async, KFolder} = leveled_bookie:book_returnfolder(Book1,
|
||||
{index_query,
|
||||
"Bucket6",
|
||||
{"idx1_bin",
|
||||
"#", "~"},
|
||||
{false,
|
||||
undefined}}),
|
||||
{async, KFolder} = leveled_bookie:book_returnfolder(Book1, Q(false)),
|
||||
KeyList = lists:usort(KFolder()),
|
||||
io:format("KeyList ~w KeyTermList ~w~n",
|
||||
[length(KeyList), length(KeyTermList)]),
|
||||
|
|
|
@ -40,7 +40,8 @@
|
|||
restore_topending/2,
|
||||
find_journals/1,
|
||||
riak_hash/1,
|
||||
wait_for_compaction/1]).
|
||||
wait_for_compaction/1,
|
||||
foldkeysfun/3]).
|
||||
|
||||
-define(RETURN_TERMS, {true, undefined}).
|
||||
-define(SLOWOFFER_DELAY, 5).
|
||||
|
@ -328,6 +329,8 @@ get_randomdate() ->
|
|||
[Year, Month, Day, Hour, Minute, Second])).
|
||||
|
||||
|
||||
foldkeysfun(_Bucket, Item, Acc) -> Acc ++ [Item].
|
||||
|
||||
check_indexed_objects(Book, B, KSpecL, V) ->
|
||||
% Check all objects match, return what should be the results of an all
|
||||
% index query
|
||||
|
@ -343,6 +346,7 @@ check_indexed_objects(Book, B, KSpecL, V) ->
|
|||
R = leveled_bookie:book_returnfolder(Book,
|
||||
{index_query,
|
||||
B,
|
||||
{fun foldkeysfun/3, []},
|
||||
{"idx1_bin",
|
||||
"0",
|
||||
"~"},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue