summary refs log tree commit diff
path: root/synapse/storage/event_federation.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2015-05-05 15:13:25 +0100
committerErik Johnston <erik@matrix.org>2015-05-05 15:13:25 +0100
commit43c2e8deae5f7e2b339ab5c131391231886cad09 (patch)
treeff147eb249c9a77d151fdf552af8850a116ff4af /synapse/storage/event_federation.py
parentDon't call 'encode_parameter' no-op (diff)
downloadsynapse-43c2e8deae5f7e2b339ab5c131391231886cad09.tar.xz
Add support for using executemany
Diffstat (limited to 'synapse/storage/event_federation.py')
-rw-r--r--synapse/storage/event_federation.py40
1 files changed, 21 insertions, 19 deletions
diff --git a/synapse/storage/event_federation.py b/synapse/storage/event_federation.py
index 68f39bd684..0aca4ba17b 100644
--- a/synapse/storage/event_federation.py
+++ b/synapse/storage/event_federation.py
@@ -262,18 +262,19 @@ class EventFederationStore(SQLBaseStore):
         For the given event, update the event edges table and forward and
         backward extremities tables.
         """
-        for e_id, _ in prev_events:
-            # TODO (erikj): This could be done as a bulk insert
-            self._simple_insert_txn(
-                txn,
+        self._simple_insert_many_txn(
+            txn,
                 table="event_edges",
-                values={
-                    "event_id": event_id,
-                    "prev_event_id": e_id,
-                    "room_id": room_id,
-                    "is_state": False,
-                },
-            )
+                values=[
+                    {
+                        "event_id": event_id,
+                        "prev_event_id": e_id,
+                        "room_id": room_id,
+                        "is_state": False,
+                    }
+                    for e_id, _ in prev_events
+                ],
+        )
 
         # Update the extremities table if this is not an outlier.
         if not outlier:
@@ -307,16 +308,17 @@ class EventFederationStore(SQLBaseStore):
 
             # Insert all the prev_events as a backwards thing, they'll get
             # deleted in a second if they're incorrect anyway.
-            for e_id, _ in prev_events:
-                # TODO (erikj): This could be done as a bulk insert
-                self._simple_insert_txn(
-                    txn,
-                    table="event_backward_extremities",
-                    values={
+            self._simple_insert_many_txn(
+                txn,
+                table="event_backward_extremities",
+                values=[
+                    {
                         "event_id": e_id,
                         "room_id": room_id,
-                    },
-                )
+                    }
+                    for e_id, _ in prev_events
+                ],
+            )
 
             # Also delete from the backwards extremities table all ones that
             # reference events that we have already seen