Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 9907aaa

Browse files
committed
Use simple_select_onecol in get_rooms_for_user
1 parent 21c8e8d commit 9907aaa

File tree

1 file changed

+10
-18
lines changed

1 file changed

+10
-18
lines changed

synapse/storage/databases/main/roommember.py

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -649,26 +649,18 @@ async def get_rooms_for_user(self, user_id: str) -> FrozenSet[str]:
649649
if rooms:
650650
return frozenset(r.room_id for r in rooms)
651651

652-
return await self.db_pool.runInteraction(
653-
"get_rooms_for_user",
654-
self._get_rooms_for_user_txn,
655-
user_id,
652+
room_ids = await self.db_pool.simple_select_onecol(
653+
table="current_state_events",
654+
keyvalues={
655+
"type": EventTypes.Member,
656+
"membership": Membership.JOIN,
657+
"state_key": user_id,
658+
},
659+
retcol="room_id",
660+
desc="get_rooms_for_user",
656661
)
657662

658-
def _get_rooms_for_user_txn(
659-
self, txn: LoggingTransaction, user_id: str
660-
) -> FrozenSet[str]:
661-
sql = """
662-
SELECT room_id
663-
FROM current_state_events AS c
664-
WHERE
665-
c.type = 'm.room.member'
666-
AND c.state_key = ?
667-
AND c.membership = ?
668-
"""
669-
670-
txn.execute(sql, (user_id, Membership.JOIN))
671-
return frozenset(row[0] for row in txn)
663+
return frozenset(room_ids)
672664

673665
@cachedList(
674666
cached_method_name="get_rooms_for_user",

0 commit comments

Comments
 (0)