From 91c0fe45074dc5223c552f6b480f3f2e9c1849ec Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Tue, 6 Jun 2023 21:51:11 -0500 Subject: [PATCH] Remove extra `current_state_events` join from queries to grab profile info Spawning from https://github.com/matrix-org/synapse/pull/15731 --- synapse/storage/databases/main/roommember.py | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/synapse/storage/databases/main/roommember.py b/synapse/storage/databases/main/roommember.py index ae9c201b87..2ab98d1a15 100644 --- a/synapse/storage/databases/main/roommember.py +++ b/synapse/storage/databases/main/roommember.py @@ -220,16 +220,12 @@ class RoomMemberWorkerStore(EventsWorkerStore, CacheInvalidationWorkerStore): txn: LoggingTransaction, ) -> Dict[str, ProfileInfo]: clause, ids = make_in_list_sql_clause( - self.database_engine, "c.state_key", user_ids + self.database_engine, "user_id", user_ids ) sql = """ - SELECT state_key, display_name, avatar_url FROM room_memberships as m - INNER JOIN current_state_events as c - ON m.event_id = c.event_id - AND m.room_id = c.room_id - AND m.user_id = c.state_key - WHERE c.type = 'm.room.member' AND c.room_id = ? AND m.membership = ? AND %s + SELECT state_key, display_name, avatar_url FROM room_memberships + WHERE room_id = ? AND membership = ? AND %s """ % ( clause, ) @@ -267,12 +263,8 @@ class RoomMemberWorkerStore(EventsWorkerStore, CacheInvalidationWorkerStore): txn: LoggingTransaction, ) -> Dict[str, ProfileInfo]: sql = """ - SELECT state_key, display_name, avatar_url FROM room_memberships as m - INNER JOIN current_state_events as c - ON m.event_id = c.event_id - AND m.room_id = c.room_id - AND m.user_id = c.state_key - WHERE c.type = 'm.room.member' AND c.room_id = ? AND m.membership = ? + SELECT state_key, display_name, avatar_url FROM room_memberships + WHERE room_id = ? AND membership = ? """ txn.execute(sql, (room_id, Membership.JOIN))