diff --git a/src/exchangedb/0002-age_withdraw.sql b/src/exchangedb/0002-age_withdraw.sql index 05c0df272..e3bd71a63 100644 --- a/src/exchangedb/0002-age_withdraw.sql +++ b/src/exchangedb/0002-age_withdraw.sql @@ -138,7 +138,7 @@ BEGIN 'ALTER TABLE ' || table_name || ' ADD CONSTRAINT ' || table_name || '_foreign_reserve_pub' ' FOREIGN KEY (reserve_pub)' - ' REFERENCES reserves(reserve_pub);' -- ON DELETE CASCADE;' + ' REFERENCES reserves(reserve_pub) ON DELETE CASCADE;' ); END $$; @@ -151,6 +151,7 @@ INSERT INTO exchange_tables ,partitioned ,by_range) VALUES - ('age_withdraw', 'exchange-0003', 'create', TRUE ,FALSE), - ('age_withdraw', 'exchange-0003', 'constrain',TRUE ,FALSE), - ('age_withdraw', 'exchange-0003', 'foreign', TRUE ,FALSE); + ('age_withdraw', 'exchange-0002', 'create', TRUE ,FALSE), + ('age_withdraw', 'exchange-0002', 'constrain',TRUE ,FALSE), + ('age_withdraw', 'exchange-0002', 'foreign', TRUE ,FALSE); + diff --git a/src/exchangedb/0002-aml_history.sql b/src/exchangedb/0002-aml_history.sql index e57a2313f..1768b97d4 100644 --- a/src/exchangedb/0002-aml_history.sql +++ b/src/exchangedb/0002-aml_history.sql @@ -137,12 +137,12 @@ INSERT INTO exchange_tables ,by_range) VALUES ('aml_history' - ,'exchange-0003' + ,'exchange-0002' ,'create' ,TRUE ,FALSE), ('aml_history' - ,'exchange-0003' + ,'exchange-0002' ,'constrain' ,TRUE ,FALSE); diff --git a/src/exchangedb/0002-aml_status.sql b/src/exchangedb/0002-aml_status.sql index ee61cc391..f7b7e83b1 100644 --- a/src/exchangedb/0002-aml_status.sql +++ b/src/exchangedb/0002-aml_status.sql @@ -91,12 +91,12 @@ INSERT INTO exchange_tables ,by_range) VALUES ('aml_status' - ,'exchange-0003' + ,'exchange-0002' ,'create' ,TRUE ,FALSE), ('aml_status' - ,'exchange-0003' + ,'exchange-0002' ,'constrain' ,TRUE ,FALSE); diff --git a/src/exchangedb/0002-kyc_attributes.sql b/src/exchangedb/0002-kyc_attributes.sql index 9b18b6c2f..d02e2568f 100644 --- a/src/exchangedb/0002-kyc_attributes.sql +++ b/src/exchangedb/0002-kyc_attributes.sql @@ -55,12 +55,6 @@ BEGIN ,table_name ,partition_suffix ); - PERFORM comment_partitioned_column( - 'birth date of the user, in format YYYY-MM-DD where a value of 0 is used to indicate unknown (in official documents); NULL if the birth date was not collected by the provider; used for KYC-driven age restrictions' - ,'birthdate' - ,table_name - ,partition_suffix - ); PERFORM comment_partitioned_column( 'time when the attributes were collected by the provider' ,'collection_time' @@ -144,12 +138,12 @@ INSERT INTO exchange_tables ,by_range) VALUES ('kyc_attributes' - ,'exchange-0003' + ,'exchange-0002' ,'create' ,TRUE ,FALSE), ('kyc_attributes' - ,'exchange-0003' + ,'exchange-0002' ,'constrain' ,TRUE ,FALSE); diff --git a/src/exchangedb/0002-purse_actions.sql b/src/exchangedb/0002-purse_actions.sql index b4e7e132d..fc09e7fa3 100644 --- a/src/exchangedb/0002-purse_actions.sql +++ b/src/exchangedb/0002-purse_actions.sql @@ -110,12 +110,12 @@ INSERT INTO exchange_tables ,by_range) VALUES ('purse_actions' - ,'exchange-0003' + ,'exchange-0002' ,'create' ,TRUE ,FALSE), ('purse_actions' - ,'exchange-0003' + ,'exchange-0002' ,'master' ,TRUE ,FALSE); diff --git a/src/exchangedb/0002-purse_deletion.sql b/src/exchangedb/0002-purse_deletion.sql index 69db4293c..6bbc24c87 100644 --- a/src/exchangedb/0002-purse_deletion.sql +++ b/src/exchangedb/0002-purse_deletion.sql @@ -94,17 +94,17 @@ INSERT INTO exchange_tables ,by_range) VALUES ('purse_deletion' - ,'exchange-0003' + ,'exchange-0002' ,'create' ,TRUE ,FALSE), ('purse_deletion' - ,'exchange-0003' + ,'exchange-0002' ,'constrain' ,TRUE ,FALSE), ('purse_requests_was_deleted' - ,'exchange-0003' + ,'exchange-0002' ,'master' ,TRUE ,FALSE); diff --git a/src/exchangedb/drop.sql b/src/exchangedb/drop.sql index 843cda8ec..ff383d743 100644 --- a/src/exchangedb/drop.sql +++ b/src/exchangedb/drop.sql @@ -20,8 +20,6 @@ BEGIN; SELECT _v.unregister_patch('exchange-0001'); SELECT _v.unregister_patch('exchange-0002'); -SELECT _v.unregister_patch('exchange-0003'); -SELECT _v.unregister_patch('exchange-0004'); DROP SCHEMA exchange CASCADE; diff --git a/src/exchangedb/exchange-0001.sql b/src/exchangedb/exchange-0001.sql index a5998b852..8f44c5664 100644 --- a/src/exchangedb/exchange-0001.sql +++ b/src/exchangedb/exchange-0001.sql @@ -137,90 +137,10 @@ COMMENT ON FUNCTION comment_partitioned_column IS 'Generic function to create a comment on column of a table that is partitioned.'; --------------------------------------------------------------- --- Taler amounts and helper functiosn -------------------------------------------------------------- - - -CREATE PROCEDURE amount_normalize( - IN amount taler_amount - ,OUT normalized taler_amount -) -LANGUAGE plpgsql -AS $$ -BEGIN - normalized.val = amount.val + amount.frac / 100000000; - normalized.frac = amount.frac % 100000000; -END $$; - -COMMENT ON PROCEDURE amount_normalize - IS 'Returns the normalized amount by adding to the .val the value of (.frac / 100000000) and removing the modulus 100000000 from .frac.'; - -CREATE PROCEDURE amount_add( - IN a taler_amount - ,IN b taler_amount - ,OUT sum taler_amount -) -LANGUAGE plpgsql -AS $$ -BEGIN - sum = (a.val + b.val, a.frac + b.frac); - CALL amount_normalize(sum ,sum); - - IF (sum.val > (1<<52)) - THEN - RAISE EXCEPTION 'addition overflow'; - END IF; -END $$; - -COMMENT ON PROCEDURE amount_add - IS 'Returns the normalized sum of two amounts. It raises an exception when the resulting .val is larger than 2^52'; - -CREATE FUNCTION amount_left_minus_right( - IN l taler_amount - ,IN r taler_amount - ,OUT diff taler_amount - ,OUT ok BOOLEAN -) -LANGUAGE plpgsql -AS $$ -BEGIN - -IF (l.val > r.val) -THEN - ok = TRUE; - IF (l.frac >= r.frac) - THEN - diff.val = l.val - r.val; - diff.frac = l.frac - r.frac; - ELSE - diff.val = l.val - r.val - 1; - diff.frac = l.frac + 100000000 - r.frac; - END IF; -ELSE - IF (l.val = r.val) AND (l.frac >= r.frac) - THEN - diff.val = 0; - diff.frac = l.frac - r.frac; - ok = TRUE; - ELSE - diff = (-1, -1); - ok = FALSE; - END IF; -END IF; - -RETURN; -END $$; - -COMMENT ON FUNCTION amount_left_minus_right - IS 'Subtracts the right amount from the left and returns the difference and TRUE, if the left amount is larger than the right, or an invalid amount and FALSE otherwise.'; - - --------------------------------------------------------------------------- -- Main DB setup loop --------------------------------------------------------------------------- - CREATE FUNCTION do_create_tables( num_partitions INTEGER -- NULL: no partitions, add foreign constraints diff --git a/src/exchangedb/exchange-0002.sql.in b/src/exchangedb/exchange-0002.sql.in index 35113fb5d..9dd62a3d1 100644 --- a/src/exchangedb/exchange-0002.sql.in +++ b/src/exchangedb/exchange-0002.sql.in @@ -22,7 +22,8 @@ SET search_path TO exchange; CREATE TYPE taler_amount AS (val INT8 - ,frac INT4); + ,frac INT4 + ); COMMENT ON TYPE taler_amount IS 'Stores an amount, fraction is in units of 1/100000000 of the base value'; @@ -95,5 +96,4 @@ COMMENT ON TYPE exchange_do_array_reserve_insert_return_type #include "0002-age_withdraw.sql" - COMMIT; diff --git a/src/exchangedb/procedures.sql.in b/src/exchangedb/procedures.sql.in index 7166540fa..7fff2fd41 100644 --- a/src/exchangedb/procedures.sql.in +++ b/src/exchangedb/procedures.sql.in @@ -18,6 +18,7 @@ BEGIN; SET search_path TO exchange; +#include "exchange_do_amount_specific.sql" #include "exchange_do_withdraw.sql" #include "exchange_do_batch_withdraw.sql" #include "exchange_do_batch_withdraw_insert.sql"