diff options
author | Erik Johnston <erik@matrix.org> | 2016-01-19 11:27:27 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-01-19 11:27:27 +0000 |
commit | 47e7963e50704a1a981b8c009f8403085be721a6 (patch) | |
tree | 1a8b4930d67c314c21d40e8e48436a0b246476f1 /synapse/storage/roommember.py | |
parent | Merge pull request #503 from matrix-org/daniel/nonghosts (diff) | |
parent | Take a deepcopy of push rules before mutating them (diff) | |
download | synapse-47e7963e50704a1a981b8c009f8403085be721a6.tar.xz |
Merge pull request #502 from matrix-org/erikj/push_notif_perf
Unread notification performance.
Diffstat (limited to 'synapse/storage/roommember.py')
-rw-r--r-- | synapse/storage/roommember.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/synapse/storage/roommember.py b/synapse/storage/roommember.py index 7d3ce4579d..68ac88905f 100644 --- a/synapse/storage/roommember.py +++ b/synapse/storage/roommember.py @@ -287,6 +287,7 @@ class RoomMemberStore(SQLBaseStore): txn.execute(sql, (user_id, room_id)) yield self.runInteraction("forget_membership", f) self.was_forgotten_at.invalidate_all() + self.who_forgot_in_room.invalidate_all() self.did_forget.invalidate((user_id, room_id)) @cachedInlineCallbacks(num_args=2) @@ -336,3 +337,15 @@ class RoomMemberStore(SQLBaseStore): return rows[0][0] forgot = yield self.runInteraction("did_forget_membership_at", f) defer.returnValue(forgot == 1) + + @cached() + def who_forgot_in_room(self, room_id): + return self._simple_select_list( + table="room_memberships", + retcols=("user_id", "event_id"), + keyvalues={ + "room_id": room_id, + "forgotten": 1, + }, + desc="who_forgot" + ) |