diff options
| author | Christian Grothoff <christian@grothoff.org> | 2022-12-29 10:10:11 +0100 | 
|---|---|---|
| committer | Christian Grothoff <christian@grothoff.org> | 2022-12-29 10:10:11 +0100 | 
| commit | 5828eead705965b5ac87cfad78636b1363b16396 (patch) | |
| tree | 488da922fde5c327e897fe38660b6d5a325c9d56 /src/exchangedb | |
| parent | f864d66d930690449e855d0a7aa0b146174f4388 (diff) | |
-fix SQL
Diffstat (limited to 'src/exchangedb')
| -rw-r--r-- | src/exchangedb/0003-aml_history.sql | 4 | ||||
| -rw-r--r-- | src/exchangedb/0003-aml_staff.sql | 2 | ||||
| -rw-r--r-- | src/exchangedb/0003-purse_deletion.sql | 18 | ||||
| -rw-r--r-- | src/exchangedb/Makefile.am | 1 | ||||
| -rw-r--r-- | src/exchangedb/drop.sql | 1 | ||||
| -rw-r--r-- | src/exchangedb/exchange_do_purse_deposit.sql | 13 | 
6 files changed, 24 insertions, 15 deletions
| diff --git a/src/exchangedb/0003-aml_history.sql b/src/exchangedb/0003-aml_history.sql index 2d6298ed..009f79d8 100644 --- a/src/exchangedb/0003-aml_history.sql +++ b/src/exchangedb/0003-aml_history.sql @@ -32,8 +32,8 @@ BEGIN        ',new_status INT4 NOT NULL DEFAULT(0)'        ',decision_time INT8 NOT NULL DEFAULT(0)'        ',justification VARCHAR NOT NULL' -      ',decider_pub BYTEA PRIMARY KEY CHECK (LENGTH(decider_pub)=32)' -      ',decider_sig BYTEA PRIMARY KEY CHECK (LENGTH(decider_sig)=64)' +      ',decider_pub BYTEA CHECK (LENGTH(decider_pub)=32)' +      ',decider_sig BYTEA CHECK (LENGTH(decider_sig)=64)'      ') %s ;'      ,table_name      ,'PARTITION BY HASH (h_payto)' diff --git a/src/exchangedb/0003-aml_staff.sql b/src/exchangedb/0003-aml_staff.sql index 9015c780..dca0fc8d 100644 --- a/src/exchangedb/0003-aml_staff.sql +++ b/src/exchangedb/0003-aml_staff.sql @@ -18,7 +18,7 @@  CREATE TABLE aml_staff    (aml_staff_uuid BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE    ,decider_pub BYTEA PRIMARY KEY CHECK (LENGTH(decider_pub)=32) -  ,master_sig BYTEA PRIMARY KEY CHECK (LENGTH(master_sig)=64) +  ,master_sig BYTEA CHECK (LENGTH(master_sig)=64)    ,decider_name VARCHAR NOT NULL    ,is_active BOOLEAN NOT NULL    ,last_change INT8 NOT NULL diff --git a/src/exchangedb/0003-purse_deletion.sql b/src/exchangedb/0003-purse_deletion.sql index 5434a334..69db4293 100644 --- a/src/exchangedb/0003-purse_deletion.sql +++ b/src/exchangedb/0003-purse_deletion.sql @@ -51,7 +51,7 @@ COMMENT ON FUNCTION create_table_purse_deletion  CREATE OR REPLACE FUNCTION constrain_table_purse_deletion( -  IN partition_suffix VARCHAR +  IN partition_suffix VARCHAR DEFAULT NULL  )  RETURNS void  LANGUAGE plpgsql @@ -68,8 +68,7 @@ BEGIN  END $$; -CREATE OR REPLACE FUNCTION create_table_purse_requests_was_deleted ( -  IN partition_suffix VARCHAR +CREATE OR REPLACE FUNCTION master_table_purse_requests_was_deleted (  )  RETURNS void  LANGUAGE plpgsql @@ -77,18 +76,13 @@ AS $$  DECLARE    table_name VARCHAR DEFAULT 'purse_requests';  BEGIN -  table_name = concat_ws('_', table_name, partition_suffix);    EXECUTE FORMAT ( -    'ALTER TABLE ' || table_name || +    'ALTER TABLE exchange.' || table_name ||      ' ADD COLUMN'      ' was_deleted BOOLEAN NOT NULL DEFAULT(FALSE)'    ); -  PERFORM comment_partitioned_column( -     'TRUE if the purse was explicitly deleted (purse must have an entry in the purse_deletion table)' -    ,'was_deleted' -    ,table_name -    ,partition_suffix -  ); +  COMMENT ON COLUMN purse_requests.was_deleted +    IS 'TRUE if the purse was explicitly deleted (purse must have an entry in the purse_deletion table)';  END $$; @@ -111,6 +105,6 @@ INSERT INTO exchange_tables      ,FALSE),      ('purse_requests_was_deleted'      ,'exchange-0003' -    ,'create' +    ,'master'      ,TRUE      ,FALSE); diff --git a/src/exchangedb/Makefile.am b/src/exchangedb/Makefile.am index 6955a0af..4adb4180 100644 --- a/src/exchangedb/Makefile.am +++ b/src/exchangedb/Makefile.am @@ -27,6 +27,7 @@ sql_DATA = \    versioning.sql \    exchange-0001.sql \    exchange-0002.sql \ +  exchange-0003.sql \    drop.sql \    procedures.sql diff --git a/src/exchangedb/drop.sql b/src/exchangedb/drop.sql index ff383d74..ecebde6f 100644 --- a/src/exchangedb/drop.sql +++ b/src/exchangedb/drop.sql @@ -20,6 +20,7 @@ BEGIN;  SELECT _v.unregister_patch('exchange-0001');  SELECT _v.unregister_patch('exchange-0002'); +SELECT _v.unregister_patch('exchange-0003');  DROP SCHEMA exchange CASCADE; diff --git a/src/exchangedb/exchange_do_purse_deposit.sql b/src/exchangedb/exchange_do_purse_deposit.sql index 0ca4126a..62fcb3b1 100644 --- a/src/exchangedb/exchange_do_purse_deposit.sql +++ b/src/exchangedb/exchange_do_purse_deposit.sql @@ -83,6 +83,19 @@ THEN  END IF; +-- Check if purse was deleted, if so, abort and prevent deposit. +PERFORM +  FROM exchange.purse_deletion +  WHERE purse_pub = in_purse_pub; +IF FOUND +THEN +  out_late=TRUE; +  out_balance_ok=FALSE; +  out_conflict=FALSE; +  RETURN; +END IF; + +  -- Debit the coin  -- Check and update balance of the coin.  UPDATE known_coins | 
