diff options
author | Erik Johnston <erik@matrix.org> | 2016-02-10 14:12:48 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-02-10 14:12:48 +0000 |
commit | e66d0bd03abc75b5a0445acadc776ba23e1090ba (patch) | |
tree | d73f7c0c2621a27c1637223213a930e40140728d /synapse/storage/receipts.py | |
parent | Update CHANGES (diff) | |
parent | Merge pull request #569 from matrix-org/erikj/initial_sync (diff) | |
download | synapse-e66d0bd03abc75b5a0445acadc776ba23e1090ba.tar.xz |
Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.13.0
Diffstat (limited to 'synapse/storage/receipts.py')
-rw-r--r-- | synapse/storage/receipts.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/synapse/storage/receipts.py b/synapse/storage/receipts.py index 8068c73740..4202a6b3dc 100644 --- a/synapse/storage/receipts.py +++ b/synapse/storage/receipts.py @@ -46,6 +46,20 @@ class ReceiptsStore(SQLBaseStore): desc="get_receipts_for_room", ) + @cached(num_args=3) + def get_last_receipt_event_id_for_user(self, user_id, room_id, receipt_type): + return self._simple_select_one_onecol( + table="receipts_linearized", + keyvalues={ + "room_id": room_id, + "receipt_type": receipt_type, + "user_id": user_id + }, + retcol="event_id", + desc="get_own_receipt_for_user", + allow_none=True, + ) + @cachedInlineCallbacks(num_args=2) def get_receipts_for_user(self, user_id, receipt_type): def f(txn): @@ -226,6 +240,11 @@ class ReceiptsStore(SQLBaseStore): room_id, stream_id ) + txn.call_after( + self.get_last_receipt_event_id_for_user.invalidate, + (user_id, room_id, receipt_type) + ) + # We don't want to clobber receipts for more recent events, so we # have to compare orderings of existing receipts sql = ( |