summary refs log tree commit diff
path: root/synapse/storage/devices.py
diff options
context:
space:
mode:
authorAndrew Morgan <andrew@amorgan.xyz>2020-02-26 12:36:30 +0000
committerAndrew Morgan <andrew@amorgan.xyz>2020-02-26 12:36:30 +0000
commit0d542b03deaa9a3719aeb7d5e43d1a070deacabc (patch)
tree25b459fc33d47004bcc6da5bd40d017e4c686b6a /synapse/storage/devices.py
parentMerge pull request #6186 from matrix-org/erikj/disable_sql_bytes (diff)
parentMerge pull request #6156 from matrix-org/erikj/postgres_any (diff)
downloadsynapse-0d542b03deaa9a3719aeb7d5e43d1a070deacabc.tar.xz
Merge pull request #6156 from matrix-org/erikj/postgres_any
Diffstat (limited to 'synapse/storage/devices.py')
-rw-r--r--synapse/storage/devices.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/synapse/storage/devices.py b/synapse/storage/devices.py

index 5dc1c39735..52dc838dd5 100644 --- a/synapse/storage/devices.py +++ b/synapse/storage/devices.py
@@ -30,7 +30,12 @@ from synapse.logging.opentracing import ( whitelisted_homeserver, ) from synapse.metrics.background_process_metrics import run_as_background_process -from synapse.storage._base import Cache, SQLBaseStore, db_to_json +from synapse.storage._base import ( + Cache, + SQLBaseStore, + db_to_json, + make_in_list_sql_clause, +) from synapse.storage.background_updates import BackgroundUpdateStore from synapse.util import batch_iter from synapse.util.caches.descriptors import cached, cachedInlineCallbacks, cachedList @@ -452,11 +457,14 @@ class DeviceWorkerStore(SQLBaseStore): sql = """ SELECT DISTINCT user_id FROM device_lists_stream WHERE stream_id > ? - AND user_id IN (%s) + AND """ for chunk in batch_iter(to_check, 100): - txn.execute(sql % (",".join("?" for _ in chunk),), (from_key,) + chunk) + clause, args = make_in_list_sql_clause( + txn.database_engine, "user_id", chunk + ) + txn.execute(sql + clause, (from_key,) + tuple(args)) changes.update(user_id for user_id, in txn) return changes