summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-03-18 14:53:13 +0000
committerErik Johnston <erik@matrix.org>2016-03-18 14:53:13 +0000
commit7f79a6405bb58c4476b169f6a72efd6cb2a8d1a1 (patch)
tree32142838794cb446c581a954d5bea5a044b8a5eb
parentMerge pull request #652 from matrix-org/erikj/delete_alias (diff)
parentMerge branch 'develop' of github.com:matrix-org/synapse into erikj/get_event (diff)
downloadsynapse-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__.py4
-rw-r--r--synapse/storage/events.py26
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]
         ])