diff options
author | Erik Johnston <erik@matrix.org> | 2014-09-23 15:28:32 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2014-09-23 15:28:32 +0100 |
commit | 78af6bbb981c41e5509c99454deb7205c31bf964 (patch) | |
tree | 50dcd73e748b2807e22752f59bb940dd420078cb /synapse/storage/roommember.py | |
parent | Add a deletions table (diff) | |
download | synapse-78af6bbb981c41e5509c99454deb7205c31bf964.tar.xz |
Add m.room.deletion. If an event is deleted it will be returned to clients 'pruned', i.e. all client specified keys will be removed.
Diffstat (limited to 'synapse/storage/roommember.py')
-rw-r--r-- | synapse/storage/roommember.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/synapse/storage/roommember.py b/synapse/storage/roommember.py index 04b4067d03..97222da571 100644 --- a/synapse/storage/roommember.py +++ b/synapse/storage/roommember.py @@ -182,14 +182,21 @@ class RoomMemberStore(SQLBaseStore): ) def _get_members_query_txn(self, txn, where_clause, where_values): + del_sql = ( + "SELECT event_id FROM deletions WHERE deletes = e.event_id" + ) + sql = ( - "SELECT e.* FROM events as e " + "SELECT e.*, (%(deleted)s) AS deleted 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 %s " - ) % (where_clause,) + "WHERE %(where)s " + ) % { + "deleted": del_sql, + "where": where_clause, + } txn.execute(sql, where_values) rows = self.cursor_to_dict(txn) |