summaryrefslogtreecommitdiff
path: root/src/exchangedb/exchange_do_batch_reserves_update.sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/exchangedb/exchange_do_batch_reserves_update.sql')
-rw-r--r--src/exchangedb/exchange_do_batch_reserves_update.sql25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/exchangedb/exchange_do_batch_reserves_update.sql b/src/exchangedb/exchange_do_batch_reserves_update.sql
index 82b6b84c1..ebb58a149 100644
--- a/src/exchangedb/exchange_do_batch_reserves_update.sql
+++ b/src/exchangedb/exchange_do_batch_reserves_update.sql
@@ -18,9 +18,8 @@ CREATE OR REPLACE FUNCTION exchange_do_batch_reserves_update(
IN in_reserve_pub BYTEA,
IN in_expiration_date INT8,
IN in_wire_ref INT8,
- IN in_credit_val INT8,
- IN in_credit_frac INT4,
- IN in_exchange_account_name VARCHAR,
+ IN in_credit taler_amount,
+ IN in_exchange_account_name TEXT,
IN in_wire_source_h_payto BYTEA,
IN in_notify text,
OUT out_duplicate BOOLEAN)
@@ -30,16 +29,14 @@ BEGIN
INSERT INTO reserves_in
(reserve_pub
,wire_reference
- ,credit_val
- ,credit_frac
+ ,credit
,exchange_account_section
,wire_source_h_payto
,execution_date)
VALUES
(in_reserve_pub
,in_wire_ref
- ,in_credit_val
- ,in_credit_frac
+ ,in_credit
,in_exchange_account_name
,in_wire_source_h_payto
,in_expiration_date)
@@ -48,24 +45,26 @@ BEGIN
THEN
--IF THE INSERTION WAS A SUCCESS IT MEANS NO DUPLICATED TRANSACTION
out_duplicate = FALSE;
- UPDATE reserves
+ UPDATE reserves rs
SET
- current_balance_frac = current_balance_frac+in_credit_frac
+ current_balance.frac = (rs.current_balance).frac+in_credit.frac
- CASE
- WHEN current_balance_frac + in_credit_frac >= 100000000
+ WHEN (rs.current_balance).frac + in_credit.frac >= 100000000
THEN 100000000
ELSE 1
END
- ,current_balance_val = current_balance_val+in_credit_val
+ ,current_balance.val = (rs.current_balance).val+in_credit.val
+ CASE
- WHEN current_balance_frac + in_credit_frac >= 100000000
+ WHEN (rs.current_balance).frac + in_credit.frac >= 100000000
THEN 1
ELSE 0
END
,expiration_date=GREATEST(expiration_date,in_expiration_date)
,gc_date=GREATEST(gc_date,in_expiration_date)
WHERE reserve_pub=in_reserve_pub;
- PERFORM pg_notify(in_notify, NULL);
+ EXECUTE FORMAT (
+ 'NOTIFY %s'
+ ,in_notify);
ELSE
out_duplicate = TRUE;
END IF;