1 files changed, 14 insertions, 7 deletions
diff --git a/synapse/storage/roommember.py b/synapse/storage/roommember.py
index 127434d27a..27b7d8eb13 100644
--- a/synapse/storage/roommember.py
+++ b/synapse/storage/roommember.py
@@ -123,6 +123,19 @@ class RoomMemberStore(SQLBaseStore):
else:
return None
+ def get_users_in_room(self, room_id):
+ def f(txn):
+ sql = (
+ "SELECT m.user_id FROM room_memberships as m"
+ " INNER JOIN current_state_events as c"
+ " ON m.event_id = c.event_id"
+ " WHERE m.membership = ? AND m.room_id = ?"
+ )
+
+ txn.execute(sql, (Membership.JOIN, room_id))
+ return [r[0] for r in txn.fetchall()]
+ return self.runInteraction("get_users_in_room", f)
+
def get_room_members(self, room_id, membership=None):
"""Retrieve the current room member list for a room.
@@ -183,20 +196,14 @@ class RoomMemberStore(SQLBaseStore):
)
def _get_members_query_txn(self, txn, where_clause, where_values):
- del_sql = (
- "SELECT event_id FROM redactions WHERE redacts = e.event_id "
- "LIMIT 1"
- )
-
sql = (
- "SELECT e.*, (%(redacted)s) AS redacted FROM events as e "
+ "SELECT e.* FROM events as e "
"INNER JOIN room_memberships as m "
"ON e.event_id = m.event_id "
"INNER JOIN current_state_events as c "
"ON m.event_id = c.event_id "
"WHERE %(where)s "
) % {
- "redacted": del_sql,
"where": where_clause,
}
|