diff options
author | Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> | 2024-02-23 14:12:10 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-23 14:12:10 +0000 |
commit | 274f289a52a0097784d7179c1d912dbc3cfda3ee (patch) | |
tree | 451fe90b506623f1a0e993248c6ed6227edc93c1 | |
parent | Add docs on upgrading from a very old version (#16951) (diff) | |
download | synapse-274f289a52a0097784d7179c1d912dbc3cfda3ee.tar.xz |
Ignore notification counts from rooms you've left (#16954)
Co-authored-by: reivilibre <oliverw@matrix.org>
-rw-r--r-- | changelog.d/16954.bugfix | 1 | ||||
-rw-r--r-- | synapse/storage/databases/main/event_push_actions.py | 18 |
2 files changed, 16 insertions, 3 deletions
diff --git a/changelog.d/16954.bugfix b/changelog.d/16954.bugfix new file mode 100644 index 0000000000..7e5ad69094 --- /dev/null +++ b/changelog.d/16954.bugfix @@ -0,0 +1 @@ +Fix a bug introduced in v1.100.0 where notifications from rooms you've left would continue to be counted. \ No newline at end of file diff --git a/synapse/storage/databases/main/event_push_actions.py b/synapse/storage/databases/main/event_push_actions.py index d7aa8a0ee0..56c549ae66 100644 --- a/synapse/storage/databases/main/event_push_actions.py +++ b/synapse/storage/databases/main/event_push_actions.py @@ -404,7 +404,11 @@ class EventPushActionsWorkerStore(ReceiptsWorkerStore, StreamWorkerStore, SQLBas SELECT e.room_id, notif_count, e.stream_ordering, e.thread_id, last_receipt_stream_ordering, ev.stream_ordering AS receipt_stream_ordering FROM event_push_summary AS e - INNER JOIN local_current_membership USING (user_id, room_id) + INNER JOIN local_current_membership AS lcm ON ( + e.user_id = lcm.user_id + AND e.room_id = lcm.room_id + AND lcm.membership = 'join' + ) LEFT JOIN receipts_linearized AS r ON ( e.user_id = r.user_id AND e.room_id = r.room_id @@ -472,7 +476,11 @@ class EventPushActionsWorkerStore(ReceiptsWorkerStore, StreamWorkerStore, SQLBas SELECT e.room_id, e.stream_ordering, e.thread_id, ev.stream_ordering AS receipt_stream_ordering FROM event_push_actions AS e - INNER JOIN local_current_membership USING (user_id, room_id) + INNER JOIN local_current_membership AS lcm ON ( + e.user_id = lcm.user_id + AND e.room_id = lcm.room_id + AND lcm.membership = 'join' + ) LEFT JOIN receipts_linearized AS r ON ( e.user_id = r.user_id AND e.room_id = r.room_id @@ -514,7 +522,11 @@ class EventPushActionsWorkerStore(ReceiptsWorkerStore, StreamWorkerStore, SQLBas SELECT e.room_id, e.stream_ordering, e.thread_id, ev.stream_ordering AS receipt_stream_ordering FROM event_push_actions AS e - INNER JOIN local_current_membership USING (user_id, room_id) + INNER JOIN local_current_membership AS lcm ON ( + e.user_id = lcm.user_id + AND e.room_id = lcm.room_id + AND lcm.membership = 'join' + ) LEFT JOIN receipts_linearized AS r ON ( e.user_id = r.user_id AND e.room_id = r.room_id |