summary refs log tree commit diff
diff options
context:
space:
mode:
-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):