summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/storage/databases/main/stream.py13
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()