diff --git a/synapse/storage/client_ips.py b/synapse/storage/client_ips.py index f95921d73..b01f0046e 100644 --- a/synapse/storage/client_ips.py +++ b/synapse/storage/client_ips.py @@ -90,6 +90,7 @@ class ClientIpStore(background_updates.BackgroundUpdateStore): are (user_id, device_id) tuples. The values are also dicts, with keys giving the column names """ + res = yield self.runInteraction( "get_last_client_ip_by_device", self._get_last_client_ip_by_device_txn, @@ -109,9 +110,6 @@ class ClientIpStore(background_updates.BackgroundUpdateStore): @classmethod def _get_last_client_ip_by_device_txn(cls, txn, devices, retcols): - if not devices: - return [] - where_clauses = [] bindings = [] for (user_id, device_id) in devices: @@ -122,6 +120,9 @@ class ClientIpStore(background_updates.BackgroundUpdateStore): where_clauses.append("(user_id = ? AND device_id = ?)") bindings.extend((user_id, device_id)) + if not where_clauses: + return [] + inner_select = ( "SELECT MAX(last_seen) mls, user_id, device_id FROM user_ips " "WHERE %(where)s "