gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] branch master updated (c741c1fa -> 61a37f50)


From: gnunet
Subject: [taler-exchange] branch master updated (c741c1fa -> 61a37f50)
Date: Tue, 17 Oct 2023 12:54:22 +0200

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

grothoff pushed a change to branch master
in repository exchange.

    from c741c1fa kill another dead index, beautify SQL
     new f2a28c54 kill another dead index, beautify SQL
     new a200dd59 minor clean ups
     new c0ec4a14 add was_decided field and automatically set it via trigger
     new ae827bec -remove silly comment
     new 0c8b264d use new 'was_decided' field instead of expensive subquery
     new 61a37f50 avoid dumping accounts file everywhere

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/exchangedb/0002-account_merges.sql            |  7 +++++++
 src/exchangedb/0002-purse_decision.sql            |  5 ++++-
 src/exchangedb/0002-purse_merges.sql              | 11 +----------
 src/exchangedb/0002-purse_requests.sql            |  9 ++++-----
 src/exchangedb/0002-refresh_revealed_coins.sql    |  9 ++++++---
 src/exchangedb/0002-wad_in_entries.sql            | 10 ----------
 src/exchangedb/0002-wad_out_entries.sql           |  6 ------
 src/exchangedb/exchange_do_expire_purse.sql       |  7 +++----
 src/exchangedb/exchange_do_gc.sql                 | 14 +++++++-------
 src/exchangedb/exchange_do_purse_deposit.sql      |  4 ++--
 src/exchangedb/exchange_do_purse_merge.sql        |  8 ++++----
 src/exchangedb/exchange_do_reserve_purse.sql      |  6 +++---
 src/exchangedb/pg_select_recoup_above_serial_id.c |  1 -
 src/testing/taler-unified-setup.sh                |  2 ++
 14 files changed, 43 insertions(+), 56 deletions(-)

diff --git a/src/exchangedb/0002-account_merges.sql 
b/src/exchangedb/0002-account_merges.sql
index e791b60d..1dd7e5bf 100644
--- a/src/exchangedb/0002-account_merges.sql
+++ b/src/exchangedb/0002-account_merges.sql
@@ -74,6 +74,13 @@ DECLARE
 BEGIN
   table_name = concat_ws('_', table_name, partition_suffix);
 
+  -- Note: this index *may* be useful in
+  -- pg_get_reserve_history depending on how
+  -- smart the DB is when computing the JOIN.
+  -- Removing it MAY boost performance slightly, at
+  -- the expense of trouble if the "merge_by_reserve"
+  -- query planner goes off the rails. Needs benchmarking
+  -- to be sure.
   EXECUTE FORMAT (
     'CREATE INDEX ' || table_name || '_by_reserve_pub '
     'ON ' || table_name || ' '
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_merges.sql 
b/src/exchangedb/0002-purse_merges.sql
index 178a36cc..0b4d230b 100644
--- a/src/exchangedb/0002-purse_merges.sql
+++ b/src/exchangedb/0002-purse_merges.sql
@@ -86,16 +86,7 @@ DECLARE
   table_name TEXT DEFAULT 'purse_merges';
 BEGIN
   table_name = concat_ws('_', table_name, partition_suffix);
-  -- FIXME: change to materialized index by reserve_pub!
-  EXECUTE FORMAT (
-    'CREATE INDEX ' || table_name || '_reserve_pub '
-    'ON ' || table_name || ' '
-    '(reserve_pub);'
-  );
-  EXECUTE FORMAT (
-    'COMMENT ON INDEX ' || table_name || '_reserve_pub '
-    'IS ' || quote_literal('needed in reserve history computation') || ';'
-  );
+
   EXECUTE FORMAT (
     'ALTER TABLE ' || table_name ||
     ' ADD CONSTRAINT ' || table_name || '_purse_merge_request_serial_id_key'
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 ||
diff --git a/src/exchangedb/0002-refresh_revealed_coins.sql 
b/src/exchangedb/0002-refresh_revealed_coins.sql
index 9bf846e5..ad65c994 100644
--- a/src/exchangedb/0002-refresh_revealed_coins.sql
+++ b/src/exchangedb/0002-refresh_revealed_coins.sql
@@ -62,9 +62,12 @@ BEGIN
     ,table_name
     ,partition_suffix
   );
-  --
-  -- FIXME: Add comment for link_sig
-  --
+  PERFORM comment_partitioned_column(
+     'Signature of type WALLET_COIN_LINK, proves exchange did not tamper with 
the link data'
+    ,'link_sig'
+    ,table_name
+    ,partition_suffix
+  );
   PERFORM comment_partitioned_column(
      'envelope of the new coin to be signed'
     ,'coin_ev'
diff --git a/src/exchangedb/0002-wad_in_entries.sql 
b/src/exchangedb/0002-wad_in_entries.sql
index 000f5c6c..3ef1f1b8 100644
--- a/src/exchangedb/0002-wad_in_entries.sql
+++ b/src/exchangedb/0002-wad_in_entries.sql
@@ -127,16 +127,6 @@ DECLARE
 BEGIN
   table_name = concat_ws('_', table_name, partition_suffix);
 
-  -- FIXME: change to materialized index by reserve_pub!
-  EXECUTE FORMAT (
-    'CREATE INDEX ' || table_name || '_reserve_pub '
-    'ON ' || table_name || ' '
-    '(reserve_pub);'
-  );
-  EXECUTE FORMAT (
-    'COMMENT ON INDEX ' || table_name || '_reserve_pub '
-    'IS ' || quote_literal('needed in reserve history computation') || ';'
-  );
   EXECUTE FORMAT (
     'ALTER TABLE ' || table_name ||
     ' ADD CONSTRAINT ' || table_name || '_wad_in_entry_serial_id_key'
diff --git a/src/exchangedb/0002-wad_out_entries.sql 
b/src/exchangedb/0002-wad_out_entries.sql
index 8da0f04f..de921637 100644
--- a/src/exchangedb/0002-wad_out_entries.sql
+++ b/src/exchangedb/0002-wad_out_entries.sql
@@ -129,12 +129,6 @@ DECLARE
 BEGIN
   table_name = concat_ws('_', table_name, partition_suffix);
 
-  -- FIXME: change to materialized index by reserve_pub!
-  EXECUTE FORMAT (
-    'CREATE INDEX ' || table_name || '_by_reserve_pub '
-    'ON ' || table_name || ' '
-    '(reserve_pub);'
-  );
   EXECUTE FORMAT (
     'ALTER TABLE ' || table_name ||
     ' ADD CONSTRAINT ' || table_name || '_wad_out_entry_serial_id_key'
diff --git a/src/exchangedb/exchange_do_expire_purse.sql 
b/src/exchangedb/exchange_do_expire_purse.sql
index 2d9f7e09..1a17869a 100644
--- a/src/exchangedb/exchange_do_expire_purse.sql
+++ b/src/exchangedb/exchange_do_expire_purse.sql
@@ -35,12 +35,11 @@ SELECT purse_pub
       ,in_reserve_quota
   INTO my_purse_pub
       ,my_in_reserve_quota
-  FROM exchange.purse_requests
+  FROM purse_requests
  WHERE (purse_expiration >= in_start_time) AND
        (purse_expiration < in_end_time) AND
-   purse_pub NOT IN (SELECT purse_pub
-                       FROM purse_decision)
- ORDER BY purse_expiration ASC
+       NOT was_decided
+  ORDER BY purse_expiration ASC
  LIMIT 1;
 out_found = FOUND;
 IF NOT FOUND
diff --git a/src/exchangedb/exchange_do_gc.sql 
b/src/exchangedb/exchange_do_gc.sql
index 5758cb2d..140a4553 100644
--- a/src/exchangedb/exchange_do_gc.sql
+++ b/src/exchangedb/exchange_do_gc.sql
@@ -34,8 +34,8 @@ DELETE FROM exchange.prewire
 DELETE FROM exchange.wire_fee
   WHERE end_date < in_ancient_date;
 
--- TODO: use closing fee as threshold?
-DELETE FROM exchange.reserves
+-- FIXME: use closing fee as threshold?
+DELETE FROM reserves
   WHERE gc_date < in_now
     AND current_balance = (0, 0);
 
@@ -43,7 +43,7 @@ SELECT
      reserve_out_serial_id
   INTO
      reserve_out_min
-  FROM exchange.reserves_out
+  FROM reserves_out
   ORDER BY reserve_out_serial_id ASC
   LIMIT 1;
 
@@ -59,19 +59,19 @@ SELECT
   ORDER BY reserve_uuid ASC
   LIMIT 1;
 
-DELETE FROM exchange.reserves_out
+DELETE FROM reserves_out
   WHERE reserve_uuid < reserve_uuid_min;
 
 -- FIXME: this query will be horribly slow;
 -- need to find another way to formulate it...
-DELETE FROM exchange.denominations
+DELETE FROM denominations
   WHERE expire_legal < in_now
     AND denominations_serial NOT IN
       (SELECT DISTINCT denominations_serial
-         FROM exchange.reserves_out)
+         FROM reserves_out)
     AND denominations_serial NOT IN
       (SELECT DISTINCT denominations_serial
-         FROM exchange.known_coins
+         FROM known_coins
         WHERE coin_pub IN
           (SELECT DISTINCT coin_pub
              FROM exchange.recoup))
diff --git a/src/exchangedb/exchange_do_purse_deposit.sql 
b/src/exchangedb/exchange_do_purse_deposit.sql
index 1e97e2a1..49d3c919 100644
--- a/src/exchangedb/exchange_do_purse_deposit.sql
+++ b/src/exchangedb/exchange_do_purse_deposit.sql
@@ -155,7 +155,7 @@ SELECT COALESCE(partner_serial_id,0)
       ,reserve_pub
   INTO psi
       ,my_reserve_pub
-  FROM exchange.purse_merges
+  FROM purse_merges
  WHERE purse_pub=in_purse_pub;
 
 IF NOT FOUND
@@ -212,7 +212,7 @@ THEN
     SET purses_active=purses_active-1
   WHERE reserve_pub IN
     (SELECT reserve_pub
-       FROM exchange.purse_merges
+       FROM purse_merges
       WHERE purse_pub=my_purse_pub
      LIMIT 1);
 END IF;
diff --git a/src/exchangedb/exchange_do_purse_merge.sql 
b/src/exchangedb/exchange_do_purse_merge.sql
index 7f8af9ed..946fd7e9 100644
--- a/src/exchangedb/exchange_do_purse_merge.sql
+++ b/src/exchangedb/exchange_do_purse_merge.sql
@@ -104,7 +104,7 @@ my_in_reserve_quota := rval.in_reserve_quota;
 out_no_balance=FALSE;
 
 -- Store purse merge signature, checks for purse_pub uniqueness
-INSERT INTO exchange.purse_merges
+INSERT INTO purse_merges
     (partner_serial_id
     ,reserve_pub
     ,purse_pub
@@ -124,7 +124,7 @@ THEN
   -- Note that by checking 'merge_sig', we implicitly check
   -- identity over everything that the signature covers.
   PERFORM
-  FROM exchange.purse_merges
+  FROM purse_merges
   WHERE purse_pub=in_purse_pub
      AND merge_sig=in_merge_sig;
   IF NOT FOUND
@@ -169,13 +169,13 @@ THEN
     SET purses_active=purses_active-1
   WHERE reserve_pub IN
     (SELECT reserve_pub
-       FROM exchange.purse_merges
+       FROM purse_merges
       WHERE purse_pub=my_purse_pub
      LIMIT 1);
 END IF;
 
 -- Store account merge signature.
-INSERT INTO exchange.account_merges
+INSERT INTO account_merges
   (reserve_pub
   ,reserve_sig
   ,purse_pub
diff --git a/src/exchangedb/exchange_do_reserve_purse.sql 
b/src/exchangedb/exchange_do_reserve_purse.sql
index 43d4c91a..8ae652e6 100644
--- a/src/exchangedb/exchange_do_reserve_purse.sql
+++ b/src/exchangedb/exchange_do_reserve_purse.sql
@@ -33,7 +33,7 @@ AS $$
 BEGIN
 
 -- Store purse merge signature, checks for purse_pub uniqueness
-INSERT INTO exchange.purse_merges
+INSERT INTO purse_merges
     (partner_serial_id
     ,reserve_pub
     ,purse_pub
@@ -53,7 +53,7 @@ THEN
   -- Note that by checking 'merge_sig', we implicitly check
   -- identity over everything that the signature covers.
   PERFORM
-  FROM exchange.purse_merges
+  FROM purse_merges
   WHERE purse_pub=in_purse_pub
      AND merge_sig=in_merge_sig;
   IF NOT FOUND
@@ -145,7 +145,7 @@ out_no_funds=FALSE;
 
 
 -- Store account merge signature.
-INSERT INTO exchange.account_merges
+INSERT INTO account_merges
   (reserve_pub
   ,reserve_sig
   ,purse_pub
diff --git a/src/exchangedb/pg_select_recoup_above_serial_id.c 
b/src/exchangedb/pg_select_recoup_above_serial_id.c
index 62e94f36..2ff30c7d 100644
--- a/src/exchangedb/pg_select_recoup_above_serial_id.c
+++ b/src/exchangedb/pg_select_recoup_above_serial_id.c
@@ -157,7 +157,6 @@ TEH_PG_select_recoup_above_serial_id (
   };
   enum GNUNET_DB_QueryStatus qs;
 
-  /* Used in #postgres_select_recoup_above_serial_id() to obtain recoup 
transactions */
   PREPARE (pg,
            "recoup_get_incr",
            "SELECT"
diff --git a/src/testing/taler-unified-setup.sh 
b/src/testing/taler-unified-setup.sh
index 511faa73..8b3911fd 100755
--- a/src/testing/taler-unified-setup.sh
+++ b/src/testing/taler-unified-setup.sh
@@ -242,6 +242,8 @@ register_bank_account() {
         --body-data="${BODY}" \
         --content-on-error \
         -a wget-register-account.log \
+        -o /dev/null \
+        -O /dev/null \
         "http://localhost:${BANK_PORT}/accounts";
 }
 

-- 
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]