Skip to content
Snippets Groups Projects
Unverified Commit 3d9f82ef authored by Patrick Cloke's avatar Patrick Cloke Committed by GitHub
Browse files

Use an upsert for `receipts_graph`. (#13752)

Instead of a delete, then insert.

This was previously done for `receipts_linearized` in
2dc430d3 (#7607).
parent c85c5ace
No related branches found
No related tags found
No related merge requests found
User an additional database query when persisting receipts.
...@@ -812,7 +812,7 @@ class ReceiptsWorkerStore(SQLBaseStore): ...@@ -812,7 +812,7 @@ class ReceiptsWorkerStore(SQLBaseStore):
# FIXME: This shouldn't invalidate the whole cache # FIXME: This shouldn't invalidate the whole cache
txn.call_after(self._get_linearized_receipts_for_room.invalidate, (room_id,)) txn.call_after(self._get_linearized_receipts_for_room.invalidate, (room_id,))
self.db_pool.simple_delete_txn( self.db_pool.simple_upsert_txn(
txn, txn,
table="receipts_graph", table="receipts_graph",
keyvalues={ keyvalues={
...@@ -820,17 +820,13 @@ class ReceiptsWorkerStore(SQLBaseStore): ...@@ -820,17 +820,13 @@ class ReceiptsWorkerStore(SQLBaseStore):
"receipt_type": receipt_type, "receipt_type": receipt_type,
"user_id": user_id, "user_id": user_id,
}, },
)
self.db_pool.simple_insert_txn(
txn,
table="receipts_graph",
values={ values={
"room_id": room_id,
"receipt_type": receipt_type,
"user_id": user_id,
"event_ids": json_encoder.encode(event_ids), "event_ids": json_encoder.encode(event_ids),
"data": json_encoder.encode(data), "data": json_encoder.encode(data),
}, },
# receipts_graph has a unique constraint on
# (user_id, room_id, receipt_type), so no need to lock
lock=False,
) )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment