diff options
Diffstat (limited to 'src/exchangedb/0002-batch_deposits.sql')
-rw-r--r-- | src/exchangedb/0002-batch_deposits.sql | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/exchangedb/0002-batch_deposits.sql b/src/exchangedb/0002-batch_deposits.sql index 57a476a97..71a4b4205 100644 --- a/src/exchangedb/0002-batch_deposits.sql +++ b/src/exchangedb/0002-batch_deposits.sql @@ -111,13 +111,6 @@ BEGIN ' PRIMARY KEY (batch_deposit_serial_id) ' ',ADD CONSTRAINT ' || table_name || '_merchant_pub_h_contract_terms' ' UNIQUE (shard, merchant_pub, h_contract_terms)' - -- The policy_details_serial_id is a foreign key. - -- But, due to partitioning its table by a different column, we can not - -- simply reference policy_details_serial_id of the policy_details. Thus, - -- the following is commented out: - -- ',ADD CONSTRAINT ' || table_name || '_foreign_policy_details' - -- ' FOREIGN KEY (policy_details_serial_id) ' - -- ' REFERENCES policy_details (policy_details_serial_id) ON DELETE RESTRICT' ); EXECUTE FORMAT ( 'CREATE INDEX ' || table_name || '_by_ready ' @@ -137,6 +130,22 @@ BEGIN END $$; +CREATE OR REPLACE FUNCTION foreign_table_batch_deposits() +RETURNS VOID +LANGUAGE plpgsql +AS $$ +DECLARE + table_name TEXT DEFAULT 'batch_deposits'; +BEGIN + EXECUTE FORMAT ( + 'ALTER TABLE ' || table_name || + ' ADD CONSTRAINT ' || table_name || '_foreign_policy_details' + ' FOREIGN KEY (policy_details_serial_id) ' + ' REFERENCES policy_details (policy_details_serial_id) ON DELETE RESTRICT' + ); +END +$$; + INSERT INTO exchange_tables (name @@ -154,5 +163,10 @@ INSERT INTO exchange_tables ,'exchange-0002' ,'constrain' ,TRUE + ,FALSE), + ('batch_deposits' + ,'exchange-0002' + ,'foreign' + ,TRUE ,FALSE) ; |