diff options
author | Erik Johnston <erik@matrix.org> | 2016-03-18 14:53:13 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-03-18 14:53:13 +0000 |
commit | 7f79a6405bb58c4476b169f6a72efd6cb2a8d1a1 (patch) | |
tree | 32142838794cb446c581a954d5bea5a044b8a5eb | |
parent | Merge pull request #652 from matrix-org/erikj/delete_alias (diff) | |
parent | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/get_event (diff) | |
download | synapse-7f79a6405bb58c4476b169f6a72efd6cb2a8d1a1.tar.xz |
Merge pull request #656 from matrix-org/erikj/get_event
Dedupe requested event list in _get_events
-rw-r--r-- | synapse/events/__init__.py | 4 | ||||
-rw-r--r-- | synapse/storage/events.py | 26 |
2 files changed, 15 insertions, 15 deletions
diff --git a/synapse/events/__init__.py b/synapse/events/__init__.py index bbfa5a7265..abed6b5e6b 100644 --- a/synapse/events/__init__.py +++ b/synapse/events/__init__.py @@ -168,5 +168,7 @@ class FrozenEvent(EventBase): def __repr__(self): return "<FrozenEvent event_id='%s', type='%s', state_key='%s'>" % ( - self.event_id, self.type, self.get("state_key", None), + self.get("event_id", None), + self.get("type", None), + self.get("state_key", None), ) diff --git a/synapse/storage/events.py b/synapse/storage/events.py index 552e7ca35b..285c586cfe 100644 --- a/synapse/storage/events.py +++ b/synapse/storage/events.py @@ -526,6 +526,9 @@ class EventsStore(SQLBaseStore): if not event_ids: defer.returnValue([]) + event_id_list = event_ids + event_ids = set(event_ids) + event_map = self._get_events_from_cache( event_ids, check_redacted=check_redacted, @@ -535,23 +538,18 @@ class EventsStore(SQLBaseStore): missing_events_ids = [e for e in event_ids if e not in event_map] - if not missing_events_ids: - defer.returnValue([ - event_map[e_id] for e_id in event_ids - if e_id in event_map and event_map[e_id] - ]) - - missing_events = yield self._enqueue_events( - missing_events_ids, - check_redacted=check_redacted, - get_prev_content=get_prev_content, - allow_rejected=allow_rejected, - ) + if missing_events_ids: + missing_events = yield self._enqueue_events( + missing_events_ids, + check_redacted=check_redacted, + get_prev_content=get_prev_content, + allow_rejected=allow_rejected, + ) - event_map.update(missing_events) + event_map.update(missing_events) defer.returnValue([ - event_map[e_id] for e_id in event_ids + event_map[e_id] for e_id in event_id_list if e_id in event_map and event_map[e_id] ]) |