diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2023-10-05 11:07:38 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-05 11:07:38 -0400 |
commit | fa907025f4b263d27c2b338fb0fe86d257d74fa8 (patch) | |
tree | 325bfac7ba840c71a0b9a7b3e7a72e3549f03c54 /synapse/storage/databases/main/roommember.py | |
parent | Add __slots__ to replication commands. (#16429) (diff) | |
download | synapse-fa907025f4b263d27c2b338fb0fe86d257d74fa8.tar.xz |
Remove manys calls to cursor_to_dict (#16431)
This avoids calling cursor_to_dict and then immediately unpacking the values in the dict for other users. By not creating the intermediate dictionary we can avoid allocating the dictionary and strings for the keys, which should generally be more performant. Additionally this improves type hints by avoid Dict[str, Any] dictionaries coming out of the database layer.
Diffstat (limited to 'synapse/storage/databases/main/roommember.py')
-rw-r--r-- | synapse/storage/databases/main/roommember.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/synapse/storage/databases/main/roommember.py b/synapse/storage/databases/main/roommember.py index e93573f315..bbe08368db 100644 --- a/synapse/storage/databases/main/roommember.py +++ b/synapse/storage/databases/main/roommember.py @@ -1349,18 +1349,16 @@ class RoomMemberBackgroundUpdateStore(SQLBaseStore): txn.execute(sql, (target_min_stream_id, max_stream_id, batch_size)) - rows = self.db_pool.cursor_to_dict(txn) + rows = txn.fetchall() if not rows: return 0 - min_stream_id = rows[-1]["stream_ordering"] + min_stream_id = rows[-1][0] to_update = [] - for row in rows: - event_id = row["event_id"] - room_id = row["room_id"] + for _, event_id, room_id, json in rows: try: - event_json = db_to_json(row["json"]) + event_json = db_to_json(json) content = event_json["content"] except Exception: continue |