summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Cloke <patrickc@matrix.org>2022-08-03 16:13:40 -0400
committerPatrick Cloke <patrickc@matrix.org>2022-08-05 09:10:33 -0400
commit426144c9bd1e7c44bc46db8a52eeffafe6f08d44 (patch)
treeecff51157fafab838497c4d2af7ec17cb00fafd1
parentMerge remote-tracking branch 'origin/clokep/thread-api' into clokep/thread-poc (diff)
downloadsynapse-clokep/thread-poc.tar.xz
-rw-r--r--synapse/storage/databases/main/event_push_actions.py79
1 files changed, 41 insertions, 38 deletions
diff --git a/synapse/storage/databases/main/event_push_actions.py b/synapse/storage/databases/main/event_push_actions.py
index 3a007f7539..b688b5296b 100644
--- a/synapse/storage/databases/main/event_push_actions.py
+++ b/synapse/storage/databases/main/event_push_actions.py
@@ -205,10 +205,11 @@ class EventPushActionsWorkerStore(ReceiptsWorkerStore, StreamWorkerStore, SQLBas
 
         self._rotate_count = 10000
         self._doing_notif_rotation = False
-        if hs.config.worker.run_background_tasks:
-            self._rotate_notif_loop = self._clock.looping_call(
-                self._rotate_notifs, 30 * 1000
-            )
+        # XXX Do not rotate summaries for now, they're broken.
+        # if hs.config.worker.run_background_tasks:
+        #     self._rotate_notif_loop = self._clock.looping_call(
+        #         self._rotate_notifs, 30 * 1000
+        #     )
 
         self.db_pool.updates.register_background_index_update(
             "event_push_summary_unique_index",
@@ -310,41 +311,43 @@ class EventPushActionsWorkerStore(ReceiptsWorkerStore, StreamWorkerStore, SQLBas
         # date (as the row was written by an older version of Synapse that
         # updated `event_push_summary` synchronously when persisting a new read
         # receipt).
-        txn.execute(
-            """
-                SELECT notif_count, COALESCE(unread_count, 0), thread_id, MAX(events.stream_ordering)
-                FROM event_push_summary
-                LEFT JOIN receipts_linearized USING (room_id, user_id, thread_id)
-                LEFT JOIN events ON (
-                    events.room_id = receipts_linearized.room_id AND
-                    events.event_id = receipts_linearized.event_id
-                )
-                WHERE event_push_summary.room_id = ? AND user_id = ?
-                AND (
-                    (
-                        last_receipt_stream_ordering IS NULL
-                        AND event_push_summary.stream_ordering > COALESCE(events.stream_ordering, ?)
-                    )
-                    OR last_receipt_stream_ordering = COALESCE(events.stream_ordering, ?)
-                )
-                AND (receipt_type = 'm.read' OR receipt_type = 'org.matrix.msc2285.read.private')
-            """,
-            (room_id, user_id, stream_ordering, stream_ordering),
-        )
-        for notif_count, unread_count, thread_id, _ in txn:
-            # XXX Why are these returned? Related to MAX(...) aggregation.
-            if notif_count is None:
-                continue
 
-            if not thread_id:
-                counts = NotifCounts(
-                    notify_count=notif_count, unread_count=unread_count
-                )
-            # TODO Delete zeroed out threads completely from the database.
-            elif notif_count or unread_count:
-                thread_counts[thread_id] = NotifCounts(
-                    notify_count=notif_count, unread_count=unread_count
-                )
+        # XXX event_push_summary is not currently filled in. broken.
+        # txn.execute(
+        #     """
+        #         SELECT notif_count, COALESCE(unread_count, 0), thread_id, MAX(events.stream_ordering)
+        #         FROM event_push_summary
+        #         LEFT JOIN receipts_linearized USING (room_id, user_id, thread_id)
+        #         LEFT JOIN events ON (
+        #             events.room_id = receipts_linearized.room_id AND
+        #             events.event_id = receipts_linearized.event_id
+        #         )
+        #         WHERE event_push_summary.room_id = ? AND user_id = ?
+        #         AND (
+        #             (
+        #                 last_receipt_stream_ordering IS NULL
+        #                 AND event_push_summary.stream_ordering > COALESCE(events.stream_ordering, ?)
+        #             )
+        #             OR last_receipt_stream_ordering = COALESCE(events.stream_ordering, ?)
+        #         )
+        #         AND (receipt_type = 'm.read' OR receipt_type = 'org.matrix.msc2285.read.private')
+        #     """,
+        #     (room_id, user_id, stream_ordering, stream_ordering),
+        # )
+        # for notif_count, unread_count, thread_id, _ in txn:
+        #     # XXX Why are these returned? Related to MAX(...) aggregation.
+        #     if notif_count is None:
+        #         continue
+        #
+        #     if not thread_id:
+        #         counts = NotifCounts(
+        #             notify_count=notif_count, unread_count=unread_count
+        #         )
+        #     # TODO Delete zeroed out threads completely from the database.
+        #     elif notif_count or unread_count:
+        #         thread_counts[thread_id] = NotifCounts(
+        #             notify_count=notif_count, unread_count=unread_count
+        #         )
 
         # Next we need to count highlights, which aren't summarised
         sql = """