diff options
author | Erik Johnston <erik@matrix.org> | 2016-03-18 14:31:31 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-03-18 14:31:31 +0000 |
commit | 67ed8065dba960055c2e3d1740af12229b7d19a4 (patch) | |
tree | c538cacc63e0faa1d8b357e342334587c138eb1d | |
parent | Merge pull request #650 from matrix-org/dbkr/register_idempotent_with_username (diff) | |
download | synapse-67ed8065dba960055c2e3d1740af12229b7d19a4.tar.xz |
Dedupe requested event list in _get_events
Diffstat (limited to '')
-rw-r--r-- | synapse/storage/events.py | 26 |
1 files changed, 12 insertions, 14 deletions
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] ]) |