fix(paging): respect matchspec even if qs is empty when counting
This commit is contained in:
parent
e7883e0ee2
commit
b3e62bd8f8
|
@ -109,14 +109,17 @@ t_api(_) ->
|
||||||
]),
|
]),
|
||||||
[]
|
[]
|
||||||
),
|
),
|
||||||
#{
|
?assertEqual(
|
||||||
<<"data">> := [],
|
#{
|
||||||
<<"meta">> := #{
|
<<"data">> => [],
|
||||||
<<"limit">> := 20,
|
<<"meta">> => #{
|
||||||
<<"page">> := 1,
|
<<"limit">> => 20,
|
||||||
<<"hasnext">> := false
|
<<"page">> => 1,
|
||||||
}
|
<<"hasnext">> => false
|
||||||
} = jsx:decode(Request1_1),
|
}
|
||||||
|
},
|
||||||
|
jsx:decode(Request1_1)
|
||||||
|
),
|
||||||
|
|
||||||
{ok, 200, Request2} =
|
{ok, 200, Request2} =
|
||||||
request(
|
request(
|
||||||
|
@ -160,6 +163,14 @@ t_api(_) ->
|
||||||
[]
|
[]
|
||||||
),
|
),
|
||||||
|
|
||||||
|
% ensure that db contain a mix of records
|
||||||
|
{ok, 204, _} =
|
||||||
|
request(
|
||||||
|
post,
|
||||||
|
uri(["authorization", "sources", "built_in_database", "username"]),
|
||||||
|
[?USERNAME_RULES_EXAMPLE]
|
||||||
|
),
|
||||||
|
|
||||||
{ok, 204, _} =
|
{ok, 204, _} =
|
||||||
request(
|
request(
|
||||||
post,
|
post,
|
||||||
|
|
|
@ -384,8 +384,6 @@ apply_total_query(QueryState = #{table := Tab}) ->
|
||||||
Fun(Tab)
|
Fun(Tab)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
counting_total_fun(_QueryState = #{qs := {[], []}}) ->
|
|
||||||
fun(Tab) -> ets:info(Tab, size) end;
|
|
||||||
counting_total_fun(_QueryState = #{match_spec := Ms, fuzzy_fun := undefined}) ->
|
counting_total_fun(_QueryState = #{match_spec := Ms, fuzzy_fun := undefined}) ->
|
||||||
%% XXX: Calculating the total number of data that match a certain
|
%% XXX: Calculating the total number of data that match a certain
|
||||||
%% condition under a large table is very expensive because the
|
%% condition under a large table is very expensive because the
|
||||||
|
@ -400,7 +398,9 @@ counting_total_fun(_QueryState = #{match_spec := Ms, fuzzy_fun := undefined}) ->
|
||||||
counting_total_fun(_QueryState = #{fuzzy_fun := FuzzyFun}) when FuzzyFun =/= undefined ->
|
counting_total_fun(_QueryState = #{fuzzy_fun := FuzzyFun}) when FuzzyFun =/= undefined ->
|
||||||
%% XXX: Calculating the total number for a fuzzy searching is very very expensive
|
%% XXX: Calculating the total number for a fuzzy searching is very very expensive
|
||||||
%% so it is not supported now
|
%% so it is not supported now
|
||||||
false.
|
false;
|
||||||
|
counting_total_fun(_QueryState = #{qs := {[], []}}) ->
|
||||||
|
fun(Tab) -> ets:info(Tab, size) end.
|
||||||
|
|
||||||
%% ResultAcc :: #{count := integer(),
|
%% ResultAcc :: #{count := integer(),
|
||||||
%% cursor := integer(),
|
%% cursor := integer(),
|
||||||
|
|
Loading…
Reference in New Issue