diff options
Diffstat (limited to 'synapse/storage')
-rw-r--r-- | synapse/storage/__init__.py | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/synapse/storage/__init__.py b/synapse/storage/__init__.py index 0d57073aa4..accb4359bd 100644 --- a/synapse/storage/__init__.py +++ b/synapse/storage/__init__.py @@ -246,20 +246,10 @@ class DataStore(RoomMemberStore, RoomStore, ) def _store_deletion(self, txn, event): - event_id = event.event_id - deletes = event.deletes - - # We check if this new delete deletes an old delete or has been - # deleted by a previous delete that we received out of order. - sql = "SELECT * FROM deletions WHERE event_id = ? OR deletes = ?" - txn.execute(sql, (deletes, event_id)) - - if txn.fetchall(): - sql = "DELETE FROM deletions WHERE event_id = ? OR deletes = ?" - txn.execute(sql, (deletes, event_id, )) - else: - sql = "INSERT INTO deletions (event_id, deletes) VALUES (?,?)" - txn.execute(sql, (event_id, deletes)) + txn.execute( + "INSERT INTO deletions (event_id, deletes) VALUES (?,?) OR IGNORE", + (event.event_id, event.deletes) + ) @defer.inlineCallbacks def get_current_state(self, room_id, event_type=None, state_key=""): |