diff options
author | Erik Johnston <erik@matrix.org> | 2016-01-19 16:16:05 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-01-19 16:16:05 +0000 |
commit | 40d9765123463c9b14080b1f39dd1d21cc0c36eb (patch) | |
tree | 3d873a4aeb71913540fffc1bdebdf40a9ca47c4a /synapse/storage/receipts.py | |
parent | Handle glob -> regex errors (diff) | |
parent | Use split rather than endswith (diff) | |
download | synapse-40d9765123463c9b14080b1f39dd1d21cc0c36eb.tar.xz |
Merge pull request #505 from matrix-org/erikj/push_fast
Push actions perf
Diffstat (limited to 'synapse/storage/receipts.py')
-rw-r--r-- | synapse/storage/receipts.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/synapse/storage/receipts.py b/synapse/storage/receipts.py index 21cf88b3da..c80e576620 100644 --- a/synapse/storage/receipts.py +++ b/synapse/storage/receipts.py @@ -14,7 +14,7 @@ # limitations under the License. from ._base import SQLBaseStore -from synapse.util.caches.descriptors import cachedInlineCallbacks, cachedList +from synapse.util.caches.descriptors import cachedInlineCallbacks, cachedList, cached from synapse.util.caches import cache_counter, caches_by_name from twisted.internet import defer @@ -33,6 +33,18 @@ class ReceiptsStore(SQLBaseStore): self._receipts_stream_cache = _RoomStreamChangeCache() + @cached(num_args=2) + def get_receipts_for_room(self, room_id, receipt_type): + return self._simple_select_list( + table="receipts_linearized", + keyvalues={ + "room_id": room_id, + "receipt_type": receipt_type, + }, + retcols=("user_id", "event_id"), + desc="get_receipts_for_room", + ) + @defer.inlineCallbacks def get_linearized_receipts_for_rooms(self, room_ids, to_key, from_key=None): """Get receipts for multiple rooms for sending to clients. |