Remove get_room_event_after_stream_ordering entirely

This commit is contained in:
Brendan Abolivier 2020-01-16 20:24:17 +00:00
parent e601f35d3b
commit 842c2cfbf1
No known key found for this signature in database
GPG Key ID: 1E015C145F1916CD
2 changed files with 13 additions and 58 deletions

View File

@ -107,7 +107,7 @@ class PurgeHistoryRestServlet(RestServlet):
stream_ordering = await self.store.find_first_stream_ordering_after_ts(ts)
r = await self.store.get_room_event_after_stream_ordering(
r = await self.store.get_room_event_before_stream_ordering(
room_id, stream_ordering
)
if not r:

View File

@ -525,25 +525,6 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore):
return rows, token
def get_room_event_after_stream_ordering(self, room_id, stream_ordering):
"""Gets details of the first event in a room at or after a stream ordering
Args:
room_id (str):
stream_ordering (int):
Returns:
Deferred[(int, int, str)]:
(stream ordering, topological ordering, event_id)
"""
return self.db.runInteraction(
"get_room_event_after_stream_ordering",
self.get_room_event_around_stream_ordering_txn,
room_id,
stream_ordering,
"f",
)
def get_room_event_before_stream_ordering(self, room_id, stream_ordering):
"""Gets details of the first event in a room at or before a stream ordering
@ -555,46 +536,20 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore):
Deferred[(int, int, str)]:
(stream ordering, topological ordering, event_id)
"""
return self.db.runInteraction(
"get_room_event_before_stream_ordering",
self.get_room_event_around_stream_ordering_txn,
room_id,
stream_ordering,
"b",
)
def get_room_event_around_stream_ordering_txn(
self, txn, room_id, stream_ordering, dir="f"
):
"""Gets details of the first event in a room at or either after or before a
stream ordering, depending on the provided direction.
Args:
room_id (str):
stream_ordering (int):
dir (str): Direction in which we're looking towards in the room's history,
either "f" (forward) or "b" (backward).
Returns:
Deferred[(int, int, str)]:
(stream ordering, topological ordering, event_id)
"""
# Figure out which comparison operation to perform and how to order the results,
# using the provided direction.
op = "<=" if dir == "b" else ">="
order = "DESC" if dir == "b" else "ASC"
def _f(txn):
sql = (
"SELECT stream_ordering, topological_ordering, event_id"
" FROM events"
" WHERE room_id = ? AND stream_ordering %s ?"
" WHERE room_id = ? AND stream_ordering <= ?"
" AND NOT outlier"
" ORDER BY stream_ordering %s"
" ORDER BY stream_ordering DESC"
" LIMIT 1"
) % (op, order)
)
txn.execute(sql, (room_id, stream_ordering))
return txn.fetchone()
return self.db.runInteraction("get_room_event_before_stream_ordering", _f)
@defer.inlineCallbacks
def get_room_events_max_id(self, room_id=None):
"""Returns the current token for rooms stream.