From c0ec4a14441b3015bd23464084b3211c4f87d3dd Mon Sep 17 00:00:00 2001
From: Christian Grothoff <grothoff@gnunet.org>
Date: Tue, 17 Oct 2023 12:16:02 +0200
Subject: add was_decided field and automatically set it via trigger

---
 src/exchangedb/0002-purse_requests.sql | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

(limited to 'src/exchangedb/0002-purse_requests.sql')

diff --git a/src/exchangedb/0002-purse_requests.sql b/src/exchangedb/0002-purse_requests.sql
index 3cc7eac93..0fa076338 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 ||
-- 
cgit v1.2.3

