Fix notification count after a highlighted message (#13223)
Fixes #13196 Broke by #13005
This commit is contained in:
parent
a962c5a56d
commit
757bc0caef
|
@ -0,0 +1 @@
|
||||||
|
Fix bug where notification counts would get stuck after a highlighted message. Broke in v1.62.0.
|
|
@ -1016,9 +1016,14 @@ class EventPushActionsWorkerStore(ReceiptsWorkerStore, StreamWorkerStore, SQLBas
|
||||||
upd.stream_ordering
|
upd.stream_ordering
|
||||||
FROM (
|
FROM (
|
||||||
SELECT user_id, room_id, count(*) as cnt,
|
SELECT user_id, room_id, count(*) as cnt,
|
||||||
max(stream_ordering) as stream_ordering
|
max(ea.stream_ordering) as stream_ordering
|
||||||
FROM event_push_actions
|
FROM event_push_actions AS ea
|
||||||
WHERE ? < stream_ordering AND stream_ordering <= ?
|
LEFT JOIN event_push_summary AS old USING (user_id, room_id)
|
||||||
|
WHERE ? < ea.stream_ordering AND ea.stream_ordering <= ?
|
||||||
|
AND (
|
||||||
|
old.last_receipt_stream_ordering IS NULL
|
||||||
|
OR old.last_receipt_stream_ordering < ea.stream_ordering
|
||||||
|
)
|
||||||
AND %s = 1
|
AND %s = 1
|
||||||
GROUP BY user_id, room_id
|
GROUP BY user_id, room_id
|
||||||
) AS upd
|
) AS upd
|
||||||
|
|
|
@ -196,6 +196,13 @@ class EventPushActionsStoreTestCase(HomeserverTestCase):
|
||||||
_mark_read(10, 10)
|
_mark_read(10, 10)
|
||||||
_assert_counts(0, 0)
|
_assert_counts(0, 0)
|
||||||
|
|
||||||
|
_inject_actions(11, HIGHLIGHT)
|
||||||
|
_assert_counts(1, 1)
|
||||||
|
_mark_read(11, 11)
|
||||||
|
_assert_counts(0, 0)
|
||||||
|
_rotate(11)
|
||||||
|
_assert_counts(0, 0)
|
||||||
|
|
||||||
def test_find_first_stream_ordering_after_ts(self) -> None:
|
def test_find_first_stream_ordering_after_ts(self) -> None:
|
||||||
def add_event(so: int, ts: int) -> None:
|
def add_event(so: int, ts: int) -> None:
|
||||||
self.get_success(
|
self.get_success(
|
||||||
|
|
Loading…
Reference in New Issue