summary refs log tree commit diff
diff options
context:
space:
mode:
authorKrombel <krombel@krombel.de>2017-05-11 16:05:30 +0200
committerKrombel <krombel@krombel.de>2017-05-11 16:05:30 +0200
commit6b95e35e969f730f7f92f6c3f814691c4bedaeff (patch)
tree3758ea57b5e0a28f23c1eacf01c4f753cc74624a
parentMerge pull request #2214 from matrix-org/rav/hurry_up_purge (diff)
downloadsynapse-6b95e35e969f730f7f92f6c3f814691c4bedaeff.tar.xz
add check to only add a new filter if the same filter does not exist previously
Signed-off-by: Matthias Kesler <krombel@krombel.de>
-rw-r--r--synapse/storage/filtering.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/synapse/storage/filtering.py b/synapse/storage/filtering.py
index a2ccc66ea7..e7ec43cf97 100644
--- a/synapse/storage/filtering.py
+++ b/synapse/storage/filtering.py
@@ -52,6 +52,15 @@ class FilteringStore(SQLBaseStore):
         # INSERT a new one
         def _do_txn(txn):
             sql = (
+                "SELECT filter_id FROM user_filters "
+                "WHERE user_id = ? AND filter_json = ?"
+            )
+            txn.execute(sql, (user_localpart,def_json))
+            filter_id = txn.fetchone()[0]
+            if filter_id is not None:
+                return filter_id
+
+            sql = (
                 "SELECT MAX(filter_id) FROM user_filters "
                 "WHERE user_id = ?"
             )