summary refs log tree commit diff
path: root/synapse/storage
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2019-02-20 16:54:35 +0000
committerErik Johnston <erik@matrix.org>2019-02-20 18:14:12 +0000
commit71b625d80806886794c5e72f7ff11432e99b736c (patch)
tree3150c6d7a279d464f32529669494afdccb10feee /synapse/storage
parentMerge pull request #4694 from matrix-org/erikj/fix_sentry_config_format (diff)
downloadsynapse-71b625d80806886794c5e72f7ff11432e99b736c.tar.xz
Stop backpaginating when events not visible
Diffstat (limited to 'synapse/storage')
-rw-r--r--synapse/storage/event_federation.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/synapse/storage/event_federation.py b/synapse/storage/event_federation.py
index 38809ed0fc..830b171caa 100644
--- a/synapse/storage/event_federation.py
+++ b/synapse/storage/event_federation.py
@@ -442,6 +442,28 @@ class EventFederationWorkerStore(EventsWorkerStore, SignatureWorkerStore,
         event_results.reverse()
         return event_results
 
+    @defer.inlineCallbacks
+    def get_forward_events(self, event_ids):
+        """Fetch all events that have the given events as a prev event
+
+        Args:
+            event_ids (iterable[str])
+
+        Returns:
+            Deferred[list[str]]
+        """
+        rows = yield self._simple_select_many_batch(
+            table="event_edges",
+            column="prev_event_id",
+            iterable=event_ids,
+            retcols=("event_id",),
+            desc="get_forward_events"
+        )
+
+        defer.returnValue([
+            row["event_id"] for row in rows
+        ])
+
 
 class EventFederationStore(EventFederationWorkerStore):
     """ Responsible for storing and serving up the various graphs associated