Simplify delete_forward_extremities_for_room_txn SQL

As per feedback.

Signed-off-by: Jason Robinson <jasonr@matrix.org>
pull/9062/head
Jason Robinson 2021-01-11 23:49:58 +02:00
parent da16d06301
commit 49c619a9a2
1 changed files with 4 additions and 10 deletions

View File

@ -35,17 +35,11 @@ class EventForwardExtremitiesStore(SQLBaseStore):
def delete_forward_extremities_for_room_txn(txn): def delete_forward_extremities_for_room_txn(txn):
# First we need to get the event_id to not delete # First we need to get the event_id to not delete
sql = """ sql = """
SELECT SELECT event_id FROM event_forward_extremities
last_value(event_id) OVER w AS event_id INNER JOIN events USING (room_id, event_id)
FROM event_forward_extremities
NATURAL JOIN events
WHERE room_id = ? WHERE room_id = ?
WINDOW w AS ( ORDER BY stream_ordering DESC
PARTITION BY room_id LIMIT 1
ORDER BY stream_ordering
range between unbounded preceding and unbounded following
)
ORDER BY stream_ordering
""" """
txn.execute(sql, (room_id,)) txn.execute(sql, (room_id,))
rows = txn.fetchall() rows = txn.fetchall()