aboutsummaryrefslogtreecommitdiff
path: root/src/node_flat.erl
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2017-09-27 11:18:12 +0200
committerChristophe Romain <christophe.romain@process-one.net>2017-09-27 11:18:12 +0200
commit89e504c55feb03b1baa1d445b3f3810bdd28a2dd (patch)
tree983dee90da4821faf4b1da8e6ed021ea44a9e1c3 /src/node_flat.erl
parentMerge branch 'master' of github.com:processone/ejabberd (diff)
PubSub: fix get_items behaviour with mnesia
Diffstat (limited to '')
-rw-r--r--src/node_flat.erl7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/node_flat.erl b/src/node_flat.erl
index 3989e0d94..57bf61394 100644
--- a/src/node_flat.erl
+++ b/src/node_flat.erl
@@ -727,7 +727,7 @@ del_state(#pubsub_state{stateid = {Key, Nidx}, items = Items}) ->
%% relational database), or they can even decide not to persist any items.</p>
get_items(Nidx, _From, _RSM) ->
Items = mnesia:index_read(pubsub_item, Nidx, #pubsub_item.nodeidx),
- {result, {lists:reverse(lists:keysort(#pubsub_item.modification, Items)), undefined}}.
+ {result, {lists:keysort(#pubsub_item.creation, Items), undefined}}.
get_items(Nidx, JID, AccessModel, PresenceSubscription, RosterGroup, _SubId, RSM) ->
SubKey = jid:tolower(JID),
@@ -766,8 +766,9 @@ get_items(Nidx, JID, AccessModel, PresenceSubscription, RosterGroup, _SubId, RSM
end.
get_last_items(Nidx, From, Count) when Count > 0 ->
- {result, {Items, _}} = get_items(Nidx, From, undefined),
- {result, lists:sublist(Items, Count)};
+ Items = mnesia:index_read(pubsub_item, Nidx, #pubsub_item.nodeidx),
+ LastItems = lists:reverse(lists:keysort(#pubsub_item.modification, Items)),
+ {result, lists:sublist(LastItems, Count)};
get_last_items(_Nidx, _From, _Count) ->
{result, []}.