diff options
Diffstat (limited to 'src/exchangedb')
| -rw-r--r-- | src/exchangedb/0003-withdraw_age_commitments.sql | 7 | ||||
| -rw-r--r-- | src/exchangedb/0003-withdraw_age_reveals.sql | 31 | 
2 files changed, 33 insertions, 5 deletions
| diff --git a/src/exchangedb/0003-withdraw_age_commitments.sql b/src/exchangedb/0003-withdraw_age_commitments.sql index f6f8b44d..1aac8bb2 100644 --- a/src/exchangedb/0003-withdraw_age_commitments.sql +++ b/src/exchangedb/0003-withdraw_age_commitments.sql @@ -36,7 +36,7 @@ BEGIN        ',timestamp INT8 NOT NULL'      ') %s ;'      ,table_name -    ,'PARTITION BY HASH (h_commitment)' +    ,'PARTITION BY HASH (reserve_pub)'      ,partition_suffix    );    PERFORM comment_partitioned_table( @@ -96,9 +96,8 @@ BEGIN    table_name = concat_ws('_', table_name, partition_suffix);    EXECUTE FORMAT ( -    'CREATE INDEX ' || table_name || '_by_reserve_pub' -    ' ON ' || table_name || -    ' (reserve_pub);' +    'ALTER TABLE ' || table_name || +    ' ADD PRIMARY KEY  (h_commitment, reserve_pub);'    );    EXECUTE FORMAT (      'ALTER TABLE ' || table_name || diff --git a/src/exchangedb/0003-withdraw_age_reveals.sql b/src/exchangedb/0003-withdraw_age_reveals.sql index 2279c647..3353d936 100644 --- a/src/exchangedb/0003-withdraw_age_reveals.sql +++ b/src/exchangedb/0003-withdraw_age_reveals.sql @@ -25,7 +25,8 @@ DECLARE  BEGIN    PERFORM create_partitioned_table(      'CREATE TABLE %I' -      '(h_commitment BYTEA NOT NULL CHECK (LENGTH(h_commitment)=32)' +      '(withdraw_age_reveals_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE +      ',h_commitment BYTEA NOT NULL CHECK (LENGTH(h_commitment)=32)'        ',freshcoin_index INT4 NOT NULL'        ',denominations_serial INT8 NOT NULL'        ',h_coin_ev BYTEA CHECK (LENGTH(h_coin_ev)=32)' @@ -66,6 +67,29 @@ BEGIN  END  $$; +CREATE FUNCTION constrain_table_withdraw_age_reveals( +  IN partition_suffix VARCHAR +) +RETURNS void +LANGUAGE plpgsql +AS $$ +DECLARE +  table_name VARCHAR DEFAULT 'withdraw_age_reveals'; +BEGIN +  table_name = concat_ws('_', table_name, partition_suffix); + +  EXECUTE FORMAT ( +    'ALTER TABLE ' || table_name || +    ' ADD CONSTRAINT ' || table_name || '_withdraw_age_reveals_id_key' +    ' UNIQUE (withdraw_age_reveals_id);' +  ); +  EXECUTE FORMAT ( +    'ALTER TABLE ' || table_name || +    ' ADD CONSTRAINT ' || table_name || '_freshcoin_index_and_h_commitment_uniqueness' +    ' UNIQUE (freshcoin_index, h_commitment);' +  ); +END +$$;  CREATE FUNCTION foreign_table_withdraw_age_reveals()  RETURNS void @@ -104,6 +128,11 @@ INSERT INTO exchange_tables      ,FALSE),      ('withdraw_age_reveals'      ,'exchange-0003' +    ,'constrain' +    ,TRUE +    ,FALSE), +    ('withdraw_age_reveals' +    ,'exchange-0003'      ,'foreign'      ,TRUE      ,FALSE); | 
