Use stream_ordering_to_exterm for /keys/changes

This commit is contained in:
Erik Johnston 2017-02-02 14:27:19 +00:00
parent 5ae38b65c1
commit 46ecd9fd6d

View file

@ -17,7 +17,7 @@ from synapse.api import errors
from synapse.api.constants import EventTypes from synapse.api.constants import EventTypes
from synapse.util import stringutils from synapse.util import stringutils
from synapse.util.async import Linearizer from synapse.util.async import Linearizer
from synapse.types import get_domain_from_id from synapse.types import get_domain_from_id, RoomStreamToken
from twisted.internet import defer from twisted.internet import defer
from ._base import BaseHandler from ._base import BaseHandler
@ -243,15 +243,15 @@ class DeviceHandler(BaseHandler):
possibly_changed = set(changed) possibly_changed = set(changed)
for room_id in rooms_changed: for room_id in rooms_changed:
# Fetch (an approximation) of the current state at the time. # Fetch the current state at the time.
event_rows, token = yield self.store.get_recent_event_ids_for_room( stream_ordering = RoomStreamToken.parse_stream_token(from_token.room_key)
room_id, end_token=from_token.room_key, limit=1,
)
if event_rows: try:
last_event_id = event_rows[-1]["event_id"] event_ids = yield self.store.get_forward_extremeties_for_room(
prev_state_ids = yield self.store.get_state_ids_for_event(last_event_id) room_id, stream_ordering=stream_ordering
else: )
prev_state_ids = yield self.store.get_state_ids_for_events(event_ids)
except:
prev_state_ids = {} prev_state_ids = {}
current_state_ids = yield self.state.get_current_state_ids(room_id) current_state_ids = yield self.state.get_current_state_ids(room_id)