summaryrefslogtreecommitdiff
path: root/src/exchangedb/exchange_do_get_link_data.sql
diff options
context:
space:
mode:
authorJoseph <Joseph.xu@efrei.net>2023-01-30 08:43:38 -0500
committerJoseph <Joseph.xu@efrei.net>2023-01-30 08:45:51 -0500
commit4bb96abc975aa6753828731a015b8ea7c00684f1 (patch)
tree92c0652ba29221eb3e0bbd1cb7038c2f3558965e /src/exchangedb/exchange_do_get_link_data.sql
parenta1c0c2fafde7f516223eabac8002f443dbef86ea (diff)
downloadexchange-4bb96abc975aa6753828731a015b8ea7c00684f1.tar.gz
exchange-4bb96abc975aa6753828731a015b8ea7c00684f1.tar.bz2
exchange-4bb96abc975aa6753828731a015b8ea7c00684f1.zip
test for link data
Diffstat (limited to 'src/exchangedb/exchange_do_get_link_data.sql')
-rw-r--r--src/exchangedb/exchange_do_get_link_data.sql59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/exchangedb/exchange_do_get_link_data.sql b/src/exchangedb/exchange_do_get_link_data.sql
new file mode 100644
index 000000000..a76f4aaaf
--- /dev/null
+++ b/src/exchangedb/exchange_do_get_link_data.sql
@@ -0,0 +1,59 @@
+--
+-- This file is part of TALER
+-- Copyright (C) 2014--2022 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
+-- Foundation; either version 3, or (at your option) any later version.
+--
+-- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+-- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License along with
+-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+--
+/*DROP FUNCTION exchange_do_refund_by_coin(
+ IN in_coin_pub BYTEA,
+ IN in_merchant_pub BYTEA,
+ IN in_h_contract BYTEA
+);*/
+CREATE OR REPLACE FUNCTION exchange_do_get_link_data(
+ IN in_coin_pub BYTEA
+)
+RETURNS SETOF record
+LANGUAGE plpgsql
+AS $$
+DECLARE
+ curs CURSOR
+ FOR
+ SELECT
+ melt_serial_id
+ FROM refresh_commitments
+ WHERE old_coin_pub=in_coin_pub;
+
+DECLARE
+ i RECORD;
+BEGIN
+OPEN curs;
+LOOP
+ FETCH NEXT FROM curs INTO i;
+ EXIT WHEN NOT FOUND;
+ RETURN QUERY
+ SELECT
+ tp.transfer_pub
+ ,denoms.denom_pub
+ ,rrc.ev_sig
+ ,rrc.ewv
+ ,rrc.link_sig
+ ,rrc.freshcoin_index
+ ,rrc.coin_ev
+ FROM refresh_revealed_coins rrc
+ JOIN refresh_transfer_keys tp
+ ON (tp.melt_serial_id=rrc.melt_serial_id)
+ JOIN denominations denoms
+ ON (rrc.denominations_serial=denoms.denominations_serial)
+ WHERE rrc.melt_serial_id =i.melt_serial_id;
+END LOOP;
+CLOSE curs;
+END $$;