diff options
-rw-r--r-- | synapse/storage/databases/main/stream.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/synapse/storage/databases/main/stream.py b/synapse/storage/databases/main/stream.py index f5645dbbff..ec0a2d4d16 100644 --- a/synapse/storage/databases/main/stream.py +++ b/synapse/storage/databases/main/stream.py @@ -2057,12 +2057,15 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore): def _sliding_sync_room_metadata_bg_update_txn(txn: LoggingTransaction) -> int: sql = """ - SELECT room_id, MAX(stream_ordering) FROM rooms - INNER JOIN events USING (room_id) - WHERE room_id > ? AND stream_ordering IS NOT NULL + SELECT room_id, MAX(stream_ordering) FROM events + WHERE stream_ordering IS NOT NULL + AND room_id IN ( + SELECT room_id FROM rooms + WHERE room_id > ? + ORDER BY room_id ASC + LIMIT ? + ) GROUP BY room_id - ORDER BY room_id ASC - LIMIT ? """ txn.execute(sql, (previous_room, batch_size)) rows = txn.fetchall() |