mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-20 16:15:59 +01:00
Fix problem with results of mam queries using rsm with max and before
Plus add test case for it.
This commit is contained in:
parent
5c3b43cd63
commit
5ca59807d9
@ -441,7 +441,7 @@ make_sql_query(User, LServer, MAMQuery, RSM, ExtraUsernames) ->
|
|||||||
true ->
|
true ->
|
||||||
[]
|
[]
|
||||||
end,
|
end,
|
||||||
SubOrderClause = if LimitClause /= [], TopClause /= [] ->
|
SubOrderClause = if LimitClause /= []; TopClause /= [] ->
|
||||||
<<" ORDER BY timestamp DESC ">>;
|
<<" ORDER BY timestamp DESC ">>;
|
||||||
true ->
|
true ->
|
||||||
[]
|
[]
|
||||||
|
@ -642,7 +642,8 @@ query_rsm_after(Config, From, To, NS) ->
|
|||||||
query_rsm_before(Config, From, To) ->
|
query_rsm_before(Config, From, To) ->
|
||||||
lists:foreach(
|
lists:foreach(
|
||||||
fun(NS) ->
|
fun(NS) ->
|
||||||
query_rsm_before(Config, From, To, NS)
|
query_rsm_before(Config, From, To, NS),
|
||||||
|
query_last_message(Config, From, To, NS)
|
||||||
end, ?VERSIONS).
|
end, ?VERSIONS).
|
||||||
|
|
||||||
query_rsm_before(Config, From, To, NS) ->
|
query_rsm_before(Config, From, To, NS) ->
|
||||||
@ -661,6 +662,16 @@ query_rsm_before(Config, From, To, NS) ->
|
|||||||
Last
|
Last
|
||||||
end, <<"">>, lists:reverse([lists:seq(1, N) || N <- lists:seq(0, 5)])).
|
end, <<"">>, lists:reverse([lists:seq(1, N) || N <- lists:seq(0, 5)])).
|
||||||
|
|
||||||
|
query_last_message(Config, From, To, NS) ->
|
||||||
|
ct:comment("Retrieving last message", []),
|
||||||
|
QID = p1_rand:get_string(),
|
||||||
|
Query = #mam_query{xmlns = NS, id = QID,
|
||||||
|
rsm = #rsm_set{before = <<>>, max = 1}},
|
||||||
|
ID = send_query(Config, Query),
|
||||||
|
recv_archived_messages(Config, From, To, QID, [5]),
|
||||||
|
RSM = ?match(#rsm_set{} = RSM, recv_fin(Config, ID, QID, NS, false), RSM),
|
||||||
|
match_rsm_count(RSM, 5).
|
||||||
|
|
||||||
match_rsm_count(#rsm_set{count = undefined}, _) ->
|
match_rsm_count(#rsm_set{count = undefined}, _) ->
|
||||||
%% The backend doesn't support counting
|
%% The backend doesn't support counting
|
||||||
ok;
|
ok;
|
||||||
|
Loading…
Reference in New Issue
Block a user