summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2014-09-24 13:29:20 +0100
committerErik Johnston <erik@matrix.org>2014-09-24 13:29:20 +0100
commit1e6c5b205c95c1f6941688c13a15314100a8470d (patch)
treed7a69c914a85be8474daf241d78438237f7cfb32
parentFill out the prune_event method. (diff)
downloadsynapse-1e6c5b205c95c1f6941688c13a15314100a8470d.tar.xz
Fix bug where we didn't correctly pull out the event_id of the deletion
-rw-r--r--synapse/storage/__init__.py6
-rw-r--r--synapse/storage/_base.py5
2 files changed, 8 insertions, 3 deletions
diff --git a/synapse/storage/__init__.py b/synapse/storage/__init__.py

index 4e8a54c8f7..0d57073aa4 100644 --- a/synapse/storage/__init__.py +++ b/synapse/storage/__init__.py
@@ -263,13 +263,17 @@ class DataStore(RoomMemberStore, RoomStore, @defer.inlineCallbacks def get_current_state(self, room_id, event_type=None, state_key=""): + del_sql = ( + "SELECT event_id FROM deletions WHERE deletes = e.event_id" + ) + sql = ( "SELECT e.*, (%(deleted)s) AS deleted FROM events as e " "INNER JOIN current_state_events as c ON e.event_id = c.event_id " "INNER JOIN state_events as s ON e.event_id = s.event_id " "WHERE c.room_id = ? " ) % { - "deleted": "e.event_id IN (SELECT deletes FROM deletions)", + "deleted": del_sql, } if event_type: diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py
index d64119a473..444e7628d1 100644 --- a/synapse/storage/_base.py +++ b/synapse/storage/_base.py
@@ -403,9 +403,10 @@ class SQLBaseStore(object): return events def _has_been_deleted_txn(self, txn, event): - sql = "SELECT * FROM deletions WHERE deletes = ?" + sql = "SELECT event_id FROM deletions WHERE deletes = ?" txn.execute(sql, (event.event_id,)) - return len(txn.fetchall()) > 0 + result = txn.fetchone() + return result[0] if result else None class Table(object):