aboutsummaryrefslogtreecommitdiff
path: root/src/exchangedb/0002-recoup.sql
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2023-09-16 20:48:25 +0200
committerChristian Grothoff <christian@grothoff.org>2023-09-16 20:48:25 +0200
commit7045d3df1694d92c98369402adee675238833d6c (patch)
treea9925390f9261413b8d57651e043ba5a0e36d609 /src/exchangedb/0002-recoup.sql
parent94a313d74b403f7afa130a999ab2171414f86a46 (diff)
downloadexchange-7045d3df1694d92c98369402adee675238833d6c.tar.xz
add triggers to populate reserve history table
Diffstat (limited to 'src/exchangedb/0002-recoup.sql')
-rw-r--r--src/exchangedb/0002-recoup.sql20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/exchangedb/0002-recoup.sql b/src/exchangedb/0002-recoup.sql
index 600091b61..4b3452498 100644
--- a/src/exchangedb/0002-recoup.sql
+++ b/src/exchangedb/0002-recoup.sql
@@ -165,13 +165,13 @@ CREATE FUNCTION recoup_insert_trigger()
LANGUAGE plpgsql
AS $$
BEGIN
- INSERT INTO exchange.recoup_by_reserve
+ INSERT INTO recoup_by_reserve
(reserve_out_serial_id
,coin_pub)
VALUES
(NEW.reserve_out_serial_id
,NEW.coin_pub);
- INSERT INTO exchange.coin_history
+ INSERT INTO coin_history
(coin_pub
,table_name
,serial_id)
@@ -179,7 +179,19 @@ BEGIN
(NEW.coin_pub
,'recoup'
,NEW.recoup_uuid);
- RETURN NEW;
+ INSERT INTO reserve_history
+ (reserve_pub
+ ,table_name
+ ,serial_id)
+ SELECT
+ res.reserve_pub
+ ,'recoup'
+ ,NEW.recoup_uuid
+ FROM reserves_out rout
+ JOIN reserves res
+ USING (reserve_uuid)
+ WHERE rout.reserve_out_serial_id = NEW.reserve_out_serial_id;
+ RETURN NEW;
END $$;
COMMENT ON FUNCTION recoup_insert_trigger()
IS 'Replicates recoup inserts into recoup_by_reserve table and updates the coin_history table.';
@@ -190,7 +202,7 @@ CREATE FUNCTION recoup_delete_trigger()
LANGUAGE plpgsql
AS $$
BEGIN
- DELETE FROM exchange.recoup_by_reserve
+ DELETE FROM recoup_by_reserve
WHERE reserve_out_serial_id = OLD.reserve_out_serial_id
AND coin_pub = OLD.coin_pub;
RETURN OLD;