From a1dae0199f3bc3e9f66fc1375c652c6f99b26b2c Mon Sep 17 00:00:00 2001
From: Özgür Kesim <oec-taler@kesim.org>
Date: Fri, 28 Jul 2023 19:01:57 +0200
Subject: FAILING attempt to make echange.reserve use taler_amount

Fails with

> TALER_PREFIX=/usr/local ./test-exchangedb-postgres
2023-07-28T19:02:25.150845+0200 /home/oec/projects/taler/exchange/src/exchangedb/.libs/test-exchangedb-postgres-2559159 WARNING Could not run PSQL on file /usr/local/share/taler//sql/exchange/drop.sql: psql exit code was 3
2023-07-28T19:02:32.488085+0200 pq-2559159 ERROR Query `call_withdraw' failed with result: invalid input syntax for type bigint:
"(1,1000)"/(null)/ERROR:  invalid input syntax for type bigint: "(1,1000)"
CONTEXT:  PL/pgSQL function exchange_do_withdraw(bytea,taler_amount,bytea,bytea,bytea,bytea,bytea,bigint,bigint,boolean) line 23 at SQL statement
/PGRES_FATAL_ERROR/ERROR:  invalid input syntax for type bigint: "(1,1000)"
CONTEXT:  PL/pgSQL function exchange_do_withdraw(bytea,taler_amount,bytea,bytea,bytea,bytea,bytea,bigint,bigint,boolean) line 23 at SQL statement
2023-07-28T19:02:32.488146+0200 /home/oec/projects/taler/exchange/src/exchangedb/.libs/test-exchangedb-postgres-2559159 ERROR Assertion failed at test_exchangedb.c:1428.
---
 src/exchangedb/exchange_do_history_request.sql | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

(limited to 'src/exchangedb/exchange_do_history_request.sql')

diff --git a/src/exchangedb/exchange_do_history_request.sql b/src/exchangedb/exchange_do_history_request.sql
index 2f604174..7eb368ef 100644
--- a/src/exchangedb/exchange_do_history_request.sql
+++ b/src/exchangedb/exchange_do_history_request.sql
@@ -54,23 +54,23 @@ BEGIN
   -- Update reserve balance.
   UPDATE exchange.reserves
    SET
-    current_balance_frac=current_balance_frac-in_history_fee_frac
+    current_balance.frac=current_balance.frac-in_history_fee_frac
        + CASE
-         WHEN current_balance_frac < in_history_fee_frac
+         WHEN current_balance.frac < in_history_fee_frac
          THEN 100000000
          ELSE 0
          END,
-    current_balance_val=current_balance_val-in_history_fee_val
+    current_balance.val=current_balance.val-in_history_fee_val
        - CASE
-         WHEN current_balance_frac < in_history_fee_frac
+         WHEN current_balance.frac < in_history_fee_frac
          THEN 1
          ELSE 0
          END
   WHERE
     reserve_pub=in_reserve_pub
-    AND ( (current_balance_val > in_history_fee_val) OR
-          ( (current_balance_frac >= in_history_fee_frac) AND
-            (current_balance_val >= in_history_fee_val) ) );
+    AND ( (current_balance.val > in_history_fee_val) OR
+          ( (current_balance.frac >= in_history_fee_frac) AND
+            (current_balance.val >= in_history_fee_val) ) );
 
   IF NOT FOUND
   THEN
-- 
cgit v1.2.3

