commit ba29af74ce7f39185316be05541596bce4bb73d3
parent 4ab8ca5498dac971d259529996df72808e2ac262
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 4 Aug 2024 13:53:06 +0200
avoid creating duplicate measures
Diffstat:
1 file changed, 27 insertions(+), 14 deletions(-)
diff --git a/src/exchangedb/exchange_do_trigger_kyc_rule_for_account.sql b/src/exchangedb/exchange_do_trigger_kyc_rule_for_account.sql
@@ -51,19 +51,32 @@ THEN
INTO my_access_token;
END IF;
-INSERT INTO legitimization_measures
- (access_token
- ,start_time
- ,jmeasures
- ,display_priority)
- VALUES
- (my_access_token
- ,in_now
- ,in_jmeasures
- ,in_display_priority)
- RETURNING
- legitimization_measure_serial_id
- INTO
- out_legitimization_measure_serial_id;
+-- First check if a perfectly equivalent legi measure
+-- already exists, to avoid creating tons of duplicates.
+SELECT legitimization_measure_serial_id
+ INTO out_legitimization_measure_serial_id
+ FROM legitimization_measures
+ WHERE access_token=my_access_token
+ AND jmeasures=in_jmeasures
+ AND display_priority=in_display_priority
+ AND NOT is_finished;
+
+IF NOT FOUND
+THEN
+ INSERT INTO legitimization_measures
+ (access_token
+ ,start_time
+ ,jmeasures
+ ,display_priority)
+ VALUES
+ (my_access_token
+ ,in_now
+ ,in_jmeasures
+ ,in_display_priority)
+ RETURNING
+ legitimization_measure_serial_id
+ INTO
+ out_legitimization_measure_serial_id;
+END IF;
END $$;