gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] 03/06: add was_decided field and automatically set it v


From: gnunet
Subject: [taler-exchange] 03/06: add was_decided field and automatically set it via trigger
Date: Tue, 17 Oct 2023 12:54:25 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

commit c0ec4a14441b3015bd23464084b3211c4f87d3dd
Author: Christian Grothoff <grothoff@gnunet.org>
AuthorDate: Tue Oct 17 12:16:02 2023 +0200

    add was_decided field and automatically set it via trigger
---
 src/exchangedb/0002-purse_decision.sql | 5 ++++-
 src/exchangedb/0002-purse_requests.sql | 9 ++++-----
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/exchangedb/0002-purse_decision.sql 
b/src/exchangedb/0002-purse_decision.sql
index 15a1de1b..091bd468 100644
--- a/src/exchangedb/0002-purse_decision.sql
+++ b/src/exchangedb/0002-purse_decision.sql
@@ -74,6 +74,9 @@ CREATE OR REPLACE FUNCTION purse_decision_insert_trigger()
   LANGUAGE plpgsql
   AS $$
 BEGIN
+  UPDATE purse_requests
+     SET was_decided=TRUE
+   WHERE purse_pub=NEW.purse_pub;
   IF NEW.refunded
   THEN
     INSERT INTO coin_history
@@ -101,7 +104,7 @@ BEGIN
   RETURN NEW;
 END $$;
 COMMENT ON FUNCTION purse_decision_insert_trigger()
-  IS 'Automatically generate coin history entry.';
+  IS 'Automatically generate coin history entry and update decision status for 
the purse.';
 
 
 CREATE FUNCTION master_table_purse_decision()
diff --git a/src/exchangedb/0002-purse_requests.sql 
b/src/exchangedb/0002-purse_requests.sql
index 3cc7eac9..0fa07633 100644
--- a/src/exchangedb/0002-purse_requests.sql
+++ b/src/exchangedb/0002-purse_requests.sql
@@ -1,6 +1,6 @@
 --
 -- This file is part of TALER
--- Copyright (C) 2014--2022 Taler Systems SA
+-- Copyright (C) 2014--2023 Taler Systems SA
 --
 -- TALER is free software; you can redistribute it and/or modify it under the
 -- terms of the GNU General Public License as published by the Free Software
@@ -34,6 +34,7 @@ BEGIN
       ',age_limit INT4 NOT NULL'
       ',flags INT4 NOT NULL'
       ',in_reserve_quota BOOLEAN NOT NULL DEFAULT(FALSE)'
+      ',was_decided BOOLEAN NOT NULL DEFAULT(FALSE)'
       ',amount_with_fee taler_amount NOT NULL'
       ',purse_fee taler_amount NOT NULL'
       ',balance taler_amount NOT NULL DEFAULT (0,0)'
@@ -123,18 +124,16 @@ DECLARE
 BEGIN
   table_name = concat_ws('_', table_name, partition_suffix);
 
-  -- FIXME: change to materialized index by merge_pub!
   EXECUTE FORMAT (
     'CREATE INDEX ' || table_name || '_merge_pub '
     'ON ' || table_name || ' '
     '(merge_pub);'
   );
-  -- FIXME: drop index on master (crosses partitions)?
-  -- Or use materialized index? (needed?)
   EXECUTE FORMAT (
     'CREATE INDEX ' || table_name || '_purse_expiration '
     'ON ' || table_name || ' '
-    '(purse_expiration);'
+    '(purse_expiration) ' ||
+    'WHERE NOT was_decided;'
   );
   EXECUTE FORMAT (
     'ALTER TABLE ' || table_name ||

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]