mirror of
https://github.com/element-hq/synapse.git
synced 2024-12-19 17:46:20 +03:00
Switch INSERT + UPDATE to UPSERT
This commit is contained in:
parent
657d614f6a
commit
1d9b29190b
1 changed files with 8 additions and 14 deletions
|
@ -359,20 +359,14 @@ class DeviceInboxStore(DeviceInboxWorkerStore, DeviceInboxBackgroundUpdateStore)
|
|||
self, txn, stream_id, messages_by_user_then_device
|
||||
):
|
||||
# Compatible method of performing an upsert
|
||||
sql = "SELECT stream_id FROM device_max_stream_id"
|
||||
|
||||
txn.execute(sql)
|
||||
rows = txn.fetchone()
|
||||
if rows:
|
||||
db_stream_id = rows[0]
|
||||
if db_stream_id < stream_id:
|
||||
# Insert the new stream_id
|
||||
sql = "UPDATE device_max_stream_id SET stream_id = ?"
|
||||
else:
|
||||
# No rows, perform an insert
|
||||
sql = "INSERT INTO device_max_stream_id (stream_id) VALUES (?)"
|
||||
|
||||
txn.execute(sql, (stream_id,))
|
||||
sql = """
|
||||
INSERT INTO device_max_stream_id
|
||||
(stream_id) VALUES (?)
|
||||
ON CONFLICT DO UPDATE device_max_stream_id
|
||||
SET stream_id = ?
|
||||
WHERE stream_id < ?
|
||||
"""
|
||||
txn.execute(sql, (stream_id, stream_id))
|
||||
|
||||
local_by_user_then_device = {}
|
||||
for user_id, messages_by_device in messages_by_user_then_device.items():
|
||||
|
|
Loading…
Reference in a new issue