diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2022-01-18 11:38:57 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-18 11:38:57 -0500 |
commit | 68acb0a29dcb03a0ecbcebdb95e09c5999598f42 (patch) | |
tree | a14144b467bf09b1a60a608a511f2065ac1d16a0 /synapse/storage/databases/main/events.py | |
parent | Remove `log_function` and its uses (#11761) (diff) | |
download | synapse-68acb0a29dcb03a0ecbcebdb95e09c5999598f42.tar.xz |
Include whether the requesting user has participated in a thread. (#11577)
Per updates to MSC3440. This is implement as a separate method since it needs to be cached on a per-user basis, instead of a per-thread basis.
Diffstat (limited to 'synapse/storage/databases/main/events.py')
-rw-r--r-- | synapse/storage/databases/main/events.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/synapse/storage/databases/main/events.py b/synapse/storage/databases/main/events.py index 2be36a741a..7278002322 100644 --- a/synapse/storage/databases/main/events.py +++ b/synapse/storage/databases/main/events.py @@ -1793,6 +1793,13 @@ class PersistEventsStore: txn.call_after( self.store.get_thread_summary.invalidate, (parent_id, event.room_id) ) + # It should be safe to only invalidate the cache if the user has not + # previously participated in the thread, but that's difficult (and + # potentially error-prone) so it is always invalidated. + txn.call_after( + self.store.get_thread_participated.invalidate, + (parent_id, event.room_id, event.sender), + ) def _handle_insertion_event(self, txn: LoggingTransaction, event: EventBase): """Handles keeping track of insertion events and edges/connections. |