add check to only add a new filter if the same filter does not exist previously

Signed-off-by: Matthias Kesler <krombel@krombel.de>
This commit is contained in:
Krombel 2017-05-11 16:05:30 +02:00
parent 29ded770b1
commit 6b95e35e96
1 changed files with 9 additions and 0 deletions

View File

@ -51,6 +51,15 @@ class FilteringStore(SQLBaseStore):
# Need an atomic transaction to SELECT the maximal ID so far then # Need an atomic transaction to SELECT the maximal ID so far then
# INSERT a new one # INSERT a new one
def _do_txn(txn): 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 = ( sql = (
"SELECT MAX(filter_id) FROM user_filters " "SELECT MAX(filter_id) FROM user_filters "
"WHERE user_id = ?" "WHERE user_id = ?"