Compare commits

...

3 Commits

Author SHA1 Message Date
Eric Eastwood
b0a0879010 Pull out the right column 2023-06-06 21:56:14 -05:00
Eric Eastwood
c4cefbb236 Add changelog 2023-06-06 21:54:27 -05:00
Eric Eastwood
91c0fe4507 Remove extra current_state_events join from queries to grab profile info
Spawning from https://github.com/matrix-org/synapse/pull/15731
2023-06-06 21:51:11 -05:00
2 changed files with 6 additions and 13 deletions

1
changelog.d/15734.misc Normal file
View File

@@ -0,0 +1 @@
Remove redundant table join with `current_state_events` when doing a `get_users_in_room_with_profiles()`/`get_subset_users_in_room_with_profiles()` call.

View File

@@ -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 user_id, 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 user_id, display_name, avatar_url FROM room_memberships
WHERE room_id = ? AND membership = ?
"""
txn.execute(sql, (room_id, Membership.JOIN))