浏览代码

Remove extra `current_state_events` join from queries to grab profile info

Spawning from https://github.com/matrix-org/synapse/pull/15731
Eric Eastwood 1 年之前
父节点
当前提交
91c0fe4507
共有 1 个文件被更改,包括 5 次插入13 次删除
  1. 5 13
      synapse/storage/databases/main/roommember.py

+ 5 - 13
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))