From 89e504c55feb03b1baa1d445b3f3810bdd28a2dd Mon Sep 17 00:00:00 2001 From: Christophe Romain Date: Wed, 27 Sep 2017 11:18:12 +0200 Subject: PubSub: fix get_items behaviour with mnesia --- src/node_flat.erl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') 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.

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, []}. -- cgit v1.2.3