summary refs log tree commit diff
path: root/synapse/storage/signatures.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2014-10-30 10:11:06 +0000
committerErik Johnston <erik@matrix.org>2014-10-30 10:11:06 +0000
commitaa80900a8e8cd9e7305a66cec336a8e150c46651 (patch)
treeaf74586cefc96fd3189af4421d52cf21f88df564 /synapse/storage/signatures.py
parentAdd a run_on_reactor function (diff)
downloadsynapse-aa80900a8e8cd9e7305a66cec336a8e150c46651.tar.xz
Fix SQL so that accepts we may want to persist events twice.
Diffstat (limited to 'synapse/storage/signatures.py')
-rw-r--r--synapse/storage/signatures.py64
1 files changed, 42 insertions, 22 deletions
diff --git a/synapse/storage/signatures.py b/synapse/storage/signatures.py
index b8f8fd44cb..5e99174fcd 100644
--- a/synapse/storage/signatures.py
+++ b/synapse/storage/signatures.py
@@ -181,11 +181,16 @@ class SignatureStore(SQLBaseStore):
             algorithm (str): Hashing algorithm.
             hash_bytes (bytes): Hash function output bytes.
         """
-        self._simple_insert_txn(txn, "event_content_hashes", {
-            "event_id": event_id,
-            "algorithm": algorithm,
-            "hash": buffer(hash_bytes),
-        })
+        self._simple_insert_txn(
+            txn,
+            "event_content_hashes",
+            {
+                "event_id": event_id,
+                "algorithm": algorithm,
+                "hash": buffer(hash_bytes),
+            },
+            or_ignore=True,
+        )
 
     def _get_event_reference_hashes_txn(self, txn, event_id):
         """Get all the hashes for a given PDU.
@@ -212,11 +217,16 @@ class SignatureStore(SQLBaseStore):
             algorithm (str): Hashing algorithm.
             hash_bytes (bytes): Hash function output bytes.
         """
-        self._simple_insert_txn(txn, "event_reference_hashes", {
-            "event_id": event_id,
-            "algorithm": algorithm,
-            "hash": buffer(hash_bytes),
-        })
+        self._simple_insert_txn(
+            txn,
+            "event_reference_hashes",
+            {
+                "event_id": event_id,
+                "algorithm": algorithm,
+                "hash": buffer(hash_bytes),
+            },
+            or_ignore=True,
+        )
 
 
     def _get_event_origin_signatures_txn(self, txn, event_id):
@@ -245,12 +255,17 @@ class SignatureStore(SQLBaseStore):
             key_id (str): Id for the signing key.
             signature (bytes): The signature.
         """
-        self._simple_insert_txn(txn, "event_origin_signatures", {
-            "event_id": event_id,
-            "origin": origin,
-            "key_id": key_id,
-            "signature": buffer(signature_bytes),
-        })
+        self._simple_insert_txn(
+            txn,
+            "event_origin_signatures",
+            {
+                "event_id": event_id,
+                "origin": origin,
+                "key_id": key_id,
+                "signature": buffer(signature_bytes),
+            },
+            or_ignore=True,
+        )
 
     def _get_prev_event_hashes_txn(self, txn, event_id):
         """Get all the hashes for previous PDUs of a PDU
@@ -274,9 +289,14 @@ class SignatureStore(SQLBaseStore):
 
     def _store_prev_event_hash_txn(self, txn, event_id, prev_event_id,
                                  algorithm, hash_bytes):
-        self._simple_insert_txn(txn, "event_edge_hashes", {
-            "event_id": event_id,
-            "prev_event_id": prev_event_id,
-            "algorithm": algorithm,
-            "hash": buffer(hash_bytes),
-        })
\ No newline at end of file
+        self._simple_insert_txn(
+            txn,
+            "event_edge_hashes",
+            {
+                "event_id": event_id,
+                "prev_event_id": prev_event_id,
+                "algorithm": algorithm,
+                "hash": buffer(hash_bytes),
+            },
+            or_ignore=True,
+        )
\ No newline at end of file