summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2018-05-31 19:20:50 +0100
committerErik Johnston <erik@matrix.org>2018-05-31 19:20:50 +0100
commit397e4c1d3ddbbef6e4cc53b81932567c4e6e7c16 (patch)
tree18ba18007b5531d74eb4005b197bd3468ee2ff67
parentfixup (diff)
downloadsynapse-397e4c1d3ddbbef6e4cc53b81932567c4e6e7c16.tar.xz
fixup
-rw-r--r--synapse/storage/chunk_ordered_table.py37
1 files changed, 19 insertions, 18 deletions
diff --git a/synapse/storage/chunk_ordered_table.py b/synapse/storage/chunk_ordered_table.py
index 909101de6b..a65c10f652 100644
--- a/synapse/storage/chunk_ordered_table.py
+++ b/synapse/storage/chunk_ordered_table.py
@@ -327,33 +327,34 @@ class ChunkDBOrderedListStore(OrderedListStore):
     def _delete_ordering(self, node_id):
         """Implements OrderedListStore"""
 
+        next_chunk_id = SQLBaseStore._simple_select_one_onecol_txn(
+            txn,
+            table="chunk_linearized",
+            keyvalues={
+                "chunk_id": node_id,
+            },
+            retcol="next_chunk_id",
+        )
+
+        SQLBaseStore._simple_delete_txn(
+            self.txn,
+            table="chunk_linearized",
+            keyvalues={"chunk_id": node_id},
+        )
+
         sql = """
-            UPDATE chunk_linearized SET next_chunk_id = (
-                SELECT next_chunk_id
-                FROM chunk_linearized
-                WHERE chunk_id = ?
-            )
+            UPDATE chunk_linearized SET next_chunk_id = ?
             WHERE next_chunk_id = ?
         """
 
-        self.txn.execute(sql, (node_id, node_id,))
+        self.txn.execute(sql, (next_chunk_id, node_id,))
 
         sql = """
-            UPDATE chunk_linearized_first SET chunk_id = (
-                SELECT next_chunk_id
-                FROM chunk_linearized
-                WHERE chunk_id = ?
-            )
+            UPDATE chunk_linearized_first SET chunk_id = ?
             WHERE chunk_id = ?
         """
 
-        self.txn.execute(sql, (node_id, node_id,))
-
-        SQLBaseStore._simple_delete_txn(
-            self.txn,
-            table="chunk_linearized",
-            keyvalues={"chunk_id": node_id},
-        )
+        self.txn.execute(sql, (next_chunk_id, node_id,))
 
     def _add_edge_to_graph(self, source_id, target_id):
         """Implements OrderedListStore"""