diff options
author | Erik Johnston <erikj@jki.re> | 2019-03-05 09:32:33 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-05 09:32:33 +0000 |
commit | b050a108719d64f219c583beba688869bf56f9b2 (patch) | |
tree | 6a9aaa43e155da5d759e98a6a09cb856fc159e2e /synapse/storage | |
parent | Merge pull request #4799 from matrix-org/rav/clean_up_replication_code (diff) | |
parent | clarify comments (diff) | |
download | synapse-b050a108719d64f219c583beba688869bf56f9b2.tar.xz |
Merge pull request #4699 from matrix-org/erikj/stop_fed_not_in_room
Stop backpaginating when events not visible
Diffstat (limited to 'synapse/storage')
-rw-r--r-- | synapse/storage/event_federation.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/synapse/storage/event_federation.py b/synapse/storage/event_federation.py index 38809ed0fc..a8d90456e3 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_successor_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_successor_events" + ) + + defer.returnValue([ + row["event_id"] for row in rows + ]) + class EventFederationStore(EventFederationWorkerStore): """ Responsible for storing and serving up the various graphs associated |