diff options
author | Mark Haines <mjark@negativecurvature.net> | 2016-05-13 15:55:26 +0100 |
---|---|---|
committer | Mark Haines <mjark@negativecurvature.net> | 2016-05-13 15:55:26 +0100 |
commit | a8affd606e7692865bdd9ddac5ecf770436d06df (patch) | |
tree | 6e1ab8695c67cc807d19ec5c3a867aa9e542620c /synapse/storage/receipts.py | |
parent | Merge pull request #741 from negzi/create_user_with_expiry (diff) | |
parent | Allow receipts for events we haven't seen in the db (diff) | |
download | synapse-a8affd606e7692865bdd9ddac5ecf770436d06df.tar.xz |
Merge pull request #784 from matrix-org/markjh/receipts_fix
Allow receipts for events we haven't seen in the db
Diffstat (limited to 'synapse/storage/receipts.py')
-rw-r--r-- | synapse/storage/receipts.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/synapse/storage/receipts.py b/synapse/storage/receipts.py index 94be820f86..fdcf28f3e1 100644 --- a/synapse/storage/receipts.py +++ b/synapse/storage/receipts.py @@ -249,9 +249,11 @@ class ReceiptsStore(SQLBaseStore): table="events", retcols=["topological_ordering", "stream_ordering"], keyvalues={"event_id": event_id}, + allow_none=True ) - topological_ordering = int(res["topological_ordering"]) - stream_ordering = int(res["stream_ordering"]) + + topological_ordering = int(res["topological_ordering"]) if res else None + stream_ordering = int(res["stream_ordering"]) if res else None # We don't want to clobber receipts for more recent events, so we # have to compare orderings of existing receipts @@ -264,7 +266,7 @@ class ReceiptsStore(SQLBaseStore): txn.execute(sql, (room_id, receipt_type, user_id)) results = txn.fetchall() - if results: + if results and topological_ordering: for to, so, _ in results: if int(to) > topological_ordering: return False @@ -294,7 +296,7 @@ class ReceiptsStore(SQLBaseStore): } ) - if receipt_type == "m.read": + if receipt_type == "m.read" and topological_ordering: self._remove_push_actions_before_txn( txn, room_id=room_id, |