tested shard creation locally
This commit is contained in:
parent
afb1b5f902
commit
0eed0c0de2
@ -173,7 +173,7 @@ BEGIN
|
|||||||
PERFORM create_partitioned_table(
|
PERFORM create_partitioned_table(
|
||||||
'CREATE TABLE IF NOT EXISTS %I'
|
'CREATE TABLE IF NOT EXISTS %I'
|
||||||
'(reserve_in_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE'
|
'(reserve_in_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE'
|
||||||
',reserve_pub BYTEA PRIMARY KEY REFERENCES reserves (reserve_pub) ON DELETE CASCADE'
|
',reserve_pub BYTEA PRIMARY KEY' -- REFERENCES reserves (reserve_pub) ON DELETE CASCADE'
|
||||||
',wire_reference INT8 NOT NULL'
|
',wire_reference INT8 NOT NULL'
|
||||||
',credit_val INT8 NOT NULL'
|
',credit_val INT8 NOT NULL'
|
||||||
',credit_frac INT4 NOT NULL'
|
',credit_frac INT4 NOT NULL'
|
||||||
@ -191,6 +191,11 @@ BEGIN
|
|||||||
ADD CONSTRAINT reserves_in_reserve_serial_id_key
|
ADD CONSTRAINT reserves_in_reserve_serial_id_key
|
||||||
UNIQUE (reserve_in_serial_id)
|
UNIQUE (reserve_in_serial_id)
|
||||||
;
|
;
|
||||||
|
ELSE
|
||||||
|
ALTER TABLE IF EXISTS reserves_in
|
||||||
|
ADD CONSTRAINT reserves_in_reserve_pub_fkey
|
||||||
|
FOREIGN KEY (reserve_pub) REFERENCES reserves (reserve_pub) ON DELETE CASCADE
|
||||||
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END
|
END
|
||||||
@ -212,7 +217,7 @@ BEGIN
|
|||||||
PERFORM create_partitioned_table(
|
PERFORM create_partitioned_table(
|
||||||
'CREATE TABLE IF NOT EXISTS %I'
|
'CREATE TABLE IF NOT EXISTS %I'
|
||||||
'(close_uuid BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE / PRIMARY KEY'
|
'(close_uuid BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE / PRIMARY KEY'
|
||||||
',reserve_pub BYTEA NOT NULL REFERENCES reserves (reserve_pub) ON DELETE CASCADE'
|
',reserve_pub BYTEA NOT NULL' -- REFERENCES reserves (reserve_pub) ON DELETE CASCADE'
|
||||||
',execution_date INT8 NOT NULL'
|
',execution_date INT8 NOT NULL'
|
||||||
',wtid BYTEA NOT NULL CHECK (LENGTH(wtid)=32)'
|
',wtid BYTEA NOT NULL CHECK (LENGTH(wtid)=32)'
|
||||||
',wire_target_serial_id INT8 NOT NULL' -- REFERENCES wire_targets (wire_target_serial_id)'
|
',wire_target_serial_id INT8 NOT NULL' -- REFERENCES wire_targets (wire_target_serial_id)'
|
||||||
@ -231,6 +236,11 @@ BEGIN
|
|||||||
ADD CONSTRAINT reserves_close_close_uuid_pkey
|
ADD CONSTRAINT reserves_close_close_uuid_pkey
|
||||||
PRIMARY KEY (close_uuid)
|
PRIMARY KEY (close_uuid)
|
||||||
;
|
;
|
||||||
|
ELSE
|
||||||
|
ALTER TABLE IF EXISTS reserves_close
|
||||||
|
ADD CONSTRAINT reserves_close_reserve_pub_fkey
|
||||||
|
FOREIGN KEY (reserve_pub) REFERENCES reserves (reserve_pub) ON DELETE CASCADE
|
||||||
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END
|
END
|
||||||
@ -253,7 +263,7 @@ BEGIN
|
|||||||
'CREATE TABLE IF NOT EXISTS %I'
|
'CREATE TABLE IF NOT EXISTS %I'
|
||||||
'(reserve_out_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE'
|
'(reserve_out_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE'
|
||||||
',h_blind_ev BYTEA CHECK (LENGTH(h_blind_ev)=64) UNIQUE'
|
',h_blind_ev BYTEA CHECK (LENGTH(h_blind_ev)=64) UNIQUE'
|
||||||
',denominations_serial INT8 NOT NULL REFERENCES denominations (denominations_serial)'
|
',denominations_serial INT8 NOT NULL' -- REFERENCES denominations (denominations_serial)'
|
||||||
',denom_sig BYTEA NOT NULL'
|
',denom_sig BYTEA NOT NULL'
|
||||||
',reserve_uuid INT8 NOT NULL' -- REFERENCES reserves (reserve_uuid) ON DELETE CASCADE'
|
',reserve_uuid INT8 NOT NULL' -- REFERENCES reserves (reserve_uuid) ON DELETE CASCADE'
|
||||||
',reserve_sig BYTEA NOT NULL CHECK (LENGTH(reserve_sig)=64)'
|
',reserve_sig BYTEA NOT NULL CHECK (LENGTH(reserve_sig)=64)'
|
||||||
@ -271,6 +281,12 @@ BEGIN
|
|||||||
ADD CONSTRAINT reserves_out_reserve_out_serial_id_key
|
ADD CONSTRAINT reserves_out_reserve_out_serial_id_key
|
||||||
UNIQUE (reserve_out_serial_id)
|
UNIQUE (reserve_out_serial_id)
|
||||||
;
|
;
|
||||||
|
ELSE
|
||||||
|
-- FIXME once denominations are replicated we can safely add the fkey on table creation
|
||||||
|
ALTER TABLE IF EXISTS reserves_out
|
||||||
|
ADD CONSTRAINT reserves_out_denominations_serial_fkey
|
||||||
|
FOREIGN KEY (denominations_serial) REFERENCES denominations (denominations_serial)
|
||||||
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END
|
END
|
||||||
@ -375,7 +391,7 @@ BEGIN
|
|||||||
PERFORM create_partitioned_table(
|
PERFORM create_partitioned_table(
|
||||||
'CREATE TABLE IF NOT EXISTS %I'
|
'CREATE TABLE IF NOT EXISTS %I'
|
||||||
'(known_coin_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE'
|
'(known_coin_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE'
|
||||||
',denominations_serial INT8 NOT NULL REFERENCES denominations (denominations_serial) ON DELETE CASCADE'
|
',denominations_serial INT8 NOT NULL' -- REFERENCES denominations (denominations_serial) ON DELETE CASCADE'
|
||||||
',coin_pub BYTEA NOT NULL PRIMARY KEY CHECK (LENGTH(coin_pub)=32)'
|
',coin_pub BYTEA NOT NULL PRIMARY KEY CHECK (LENGTH(coin_pub)=32)'
|
||||||
',age_commitment_hash BYTEA CHECK (LENGTH(age_commitment_hash)=32)'
|
',age_commitment_hash BYTEA CHECK (LENGTH(age_commitment_hash)=32)'
|
||||||
',denom_sig BYTEA NOT NULL'
|
',denom_sig BYTEA NOT NULL'
|
||||||
@ -392,6 +408,12 @@ BEGIN
|
|||||||
ADD CONSTRAINT known_coins_known_coin_id_key
|
ADD CONSTRAINT known_coins_known_coin_id_key
|
||||||
UNIQUE (known_coin_id)
|
UNIQUE (known_coin_id)
|
||||||
;
|
;
|
||||||
|
ELSE
|
||||||
|
-- FIXME once denominations are replicated we can safely add the fkey on table creation
|
||||||
|
ALTER TABLE IF EXISTS known_coins
|
||||||
|
ADD CONSTRAINT known_coins_denominations_serial_fkey
|
||||||
|
FOREIGN KEY (denominations_serial) REFERENCES denominations (denominations_serial) ON DELETE CASCADE
|
||||||
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END
|
END
|
||||||
@ -414,7 +436,7 @@ BEGIN
|
|||||||
'CREATE TABLE IF NOT EXISTS %I'
|
'CREATE TABLE IF NOT EXISTS %I'
|
||||||
'(melt_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE'
|
'(melt_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE'
|
||||||
',rc BYTEA PRIMARY KEY CHECK (LENGTH(rc)=64)'
|
',rc BYTEA PRIMARY KEY CHECK (LENGTH(rc)=64)'
|
||||||
',old_coin_pub BYTEA NOT NULL REFERENCES known_coins (coin_pub) ON DELETE CASCADE'
|
',old_coin_pub BYTEA NOT NULL' -- REFERENCES known_coins (coin_pub) ON DELETE CASCADE'
|
||||||
',h_age_commitment BYTEA CHECK(LENGTH(h_age_commitment)=32)'
|
',h_age_commitment BYTEA CHECK(LENGTH(h_age_commitment)=32)'
|
||||||
',old_coin_sig BYTEA NOT NULL CHECK(LENGTH(old_coin_sig)=64)'
|
',old_coin_sig BYTEA NOT NULL CHECK(LENGTH(old_coin_sig)=64)'
|
||||||
',amount_with_fee_val INT8 NOT NULL'
|
',amount_with_fee_val INT8 NOT NULL'
|
||||||
@ -431,6 +453,11 @@ BEGIN
|
|||||||
ADD CONSTRAINT refresh_commitments_melt_serial_id_key
|
ADD CONSTRAINT refresh_commitments_melt_serial_id_key
|
||||||
UNIQUE (melt_serial_id)
|
UNIQUE (melt_serial_id)
|
||||||
;
|
;
|
||||||
|
ELSE
|
||||||
|
ALTER TABLE IF EXISTS refresh_commitments
|
||||||
|
ADD CONSTRAINT refresh_commitments_old_coin_pub_fkey
|
||||||
|
FOREIGN KEY (old_coin_pub) REFERENCES known_coins (coin_pub) ON DELETE CASCADE
|
||||||
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END
|
END
|
||||||
@ -455,7 +482,7 @@ BEGIN
|
|||||||
',melt_serial_id INT8 NOT NULL' -- REFERENCES refresh_commitments (melt_serial_id) ON DELETE CASCADE'
|
',melt_serial_id INT8 NOT NULL' -- REFERENCES refresh_commitments (melt_serial_id) ON DELETE CASCADE'
|
||||||
',freshcoin_index INT4 NOT NULL'
|
',freshcoin_index INT4 NOT NULL'
|
||||||
',link_sig BYTEA NOT NULL CHECK(LENGTH(link_sig)=64)'
|
',link_sig BYTEA NOT NULL CHECK(LENGTH(link_sig)=64)'
|
||||||
',denominations_serial INT8 NOT NULL REFERENCES denominations (denominations_serial) ON DELETE CASCADE'
|
',denominations_serial INT8 NOT NULL' -- REFERENCES denominations (denominations_serial) ON DELETE CASCADE'
|
||||||
',coin_ev BYTEA NOT NULL' -- UNIQUE'
|
',coin_ev BYTEA NOT NULL' -- UNIQUE'
|
||||||
',h_coin_ev BYTEA NOT NULL CHECK(LENGTH(h_coin_ev)=64)' -- UNIQUE'
|
',h_coin_ev BYTEA NOT NULL CHECK(LENGTH(h_coin_ev)=64)' -- UNIQUE'
|
||||||
',ev_sig BYTEA NOT NULL'
|
',ev_sig BYTEA NOT NULL'
|
||||||
@ -478,6 +505,12 @@ BEGIN
|
|||||||
,ADD CONSTRAINT refresh_revealed_coins_melt_serial_id_freshcoin_index_pkey
|
,ADD CONSTRAINT refresh_revealed_coins_melt_serial_id_freshcoin_index_pkey
|
||||||
PRIMARY KEY (melt_serial_id, freshcoin_index)
|
PRIMARY KEY (melt_serial_id, freshcoin_index)
|
||||||
;
|
;
|
||||||
|
ELSE
|
||||||
|
-- FIXME once denominations are replicated we can safely add the fkey on table creation
|
||||||
|
ALTER TABLE IF EXISTS refresh_revealed_coins
|
||||||
|
ADD CONSTRAINT refresh_revealed_coins_denominations_serial_fkey
|
||||||
|
FOREIGN KEY (denominations_serial) REFERENCES denominations (denominations_serial) ON DELETE CASCADE
|
||||||
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END
|
END
|
||||||
@ -563,7 +596,7 @@ BEGIN
|
|||||||
',tiny BOOLEAN NOT NULL DEFAULT FALSE'
|
',tiny BOOLEAN NOT NULL DEFAULT FALSE'
|
||||||
',done BOOLEAN NOT NULL DEFAULT FALSE'
|
',done BOOLEAN NOT NULL DEFAULT FALSE'
|
||||||
',extension_blocked BOOLEAN NOT NULL DEFAULT FALSE'
|
',extension_blocked BOOLEAN NOT NULL DEFAULT FALSE'
|
||||||
',extension_details_serial_id INT8 REFERENCES extension_details (extension_details_serial_id) ON DELETE CASCADE'
|
',extension_details_serial_id INT8' -- REFERENCES extension_details (extension_details_serial_id) ON DELETE CASCADE'
|
||||||
',UNIQUE (shard, known_coin_id, merchant_pub, h_contract_terms)'
|
',UNIQUE (shard, known_coin_id, merchant_pub, h_contract_terms)'
|
||||||
') %s ;'
|
') %s ;'
|
||||||
,'deposits'
|
,'deposits'
|
||||||
@ -576,6 +609,11 @@ BEGIN
|
|||||||
ADD CONSTRAINT deposits_deposit_by_serial_id_pkey
|
ADD CONSTRAINT deposits_deposit_by_serial_id_pkey
|
||||||
PRIMARY KEY (deposit_serial_id)
|
PRIMARY KEY (deposit_serial_id)
|
||||||
;
|
;
|
||||||
|
ELSE
|
||||||
|
ALTER TABLE IF EXISTS Deposits
|
||||||
|
ADD CONSTRAINT deposits_extension_details_serial_id_fkey
|
||||||
|
FOREIGN KEY (extension_details_serial_id) REFERENCES extension_details (extension_details_serial_id) ON DELETE CASCADE
|
||||||
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END
|
END
|
||||||
@ -673,7 +711,7 @@ BEGIN
|
|||||||
'CREATE TABLE IF NOT EXISTS %I'
|
'CREATE TABLE IF NOT EXISTS %I'
|
||||||
'(aggregation_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE'
|
'(aggregation_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- UNIQUE'
|
||||||
',deposit_serial_id INT8 PRIMARY KEY' -- REFERENCES deposits (deposit_serial_id) ON DELETE CASCADE'
|
',deposit_serial_id INT8 PRIMARY KEY' -- REFERENCES deposits (deposit_serial_id) ON DELETE CASCADE'
|
||||||
',wtid_raw BYTEA NOT NULL CONSTRAINT wire_out_ref REFERENCES wire_out(wtid_raw) ON DELETE CASCADE DEFERRABLE'
|
',wtid_raw BYTEA NOT NULL' -- CONSTRAINT wire_out_ref REFERENCES wire_out(wtid_raw) ON DELETE CASCADE DEFERRABLE'
|
||||||
') %s ;'
|
') %s ;'
|
||||||
,'aggregation_tracking'
|
,'aggregation_tracking'
|
||||||
,'PARTITION BY HASH (deposit_serial_id)'
|
,'PARTITION BY HASH (deposit_serial_id)'
|
||||||
@ -685,6 +723,11 @@ BEGIN
|
|||||||
ADD CONSTRAINT aggregation_tracking_aggregation_tracking_serial_id_key
|
ADD CONSTRAINT aggregation_tracking_aggregation_tracking_serial_id_key
|
||||||
UNIQUE (aggergation_tracking_serial_id)
|
UNIQUE (aggergation_tracking_serial_id)
|
||||||
;
|
;
|
||||||
|
ELSE
|
||||||
|
ALTER TABLE IF EXISTS aggregation_tracking
|
||||||
|
ADD CONSTRAINT wire_out_ref
|
||||||
|
FOREIGN KEY (wtid_raw) REFERENCES wire_out (wtid_raw) ON DELETE CASCADE DEFERRABLE
|
||||||
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END
|
END
|
||||||
@ -913,15 +956,14 @@ CREATE OR REPLACE FUNCTION create_foreign_table(
|
|||||||
source_table_name VARCHAR
|
source_table_name VARCHAR
|
||||||
,modulus INTEGER
|
,modulus INTEGER
|
||||||
,shard_suffix VARCHAR
|
,shard_suffix VARCHAR
|
||||||
,partition_num INTEGER
|
,current_shard_num INTEGER
|
||||||
,server_name VARCHAR
|
|
||||||
)
|
)
|
||||||
RETURNS VOID
|
RETURNS VOID
|
||||||
LANGUAGE plpgsql
|
LANGUAGE plpgsql
|
||||||
AS $$
|
AS $$
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
RAISE NOTICE 'Creating %_% on %', source_table_name, shard_suffix, server_name;
|
RAISE NOTICE 'Creating %_% on %', source_table_name, shard_suffix, shard_suffix;
|
||||||
|
|
||||||
EXECUTE FORMAT(
|
EXECUTE FORMAT(
|
||||||
'CREATE FOREIGN TABLE IF NOT EXISTS %I '
|
'CREATE FOREIGN TABLE IF NOT EXISTS %I '
|
||||||
@ -931,8 +973,8 @@ BEGIN
|
|||||||
,source_table_name || '_' || shard_suffix
|
,source_table_name || '_' || shard_suffix
|
||||||
,source_table_name
|
,source_table_name
|
||||||
,modulus
|
,modulus
|
||||||
,partition_num-1
|
,current_shard_num-1
|
||||||
,server_name
|
,shard_suffix
|
||||||
);
|
);
|
||||||
|
|
||||||
EXECUTE FORMAT(
|
EXECUTE FORMAT(
|
||||||
@ -1186,6 +1228,7 @@ BEGIN
|
|||||||
ALTER TABLE IF EXISTS reserves_out
|
ALTER TABLE IF EXISTS reserves_out
|
||||||
DROP CONSTRAINT IF EXISTS reserves_out_pkey CASCADE
|
DROP CONSTRAINT IF EXISTS reserves_out_pkey CASCADE
|
||||||
,DROP CONSTRAINT IF EXISTS reserves_out_denominations_serial_fkey
|
,DROP CONSTRAINT IF EXISTS reserves_out_denominations_serial_fkey
|
||||||
|
,DROP CONSTRAINT IF EXISTS reserves_out_h_blind_ev_key
|
||||||
;
|
;
|
||||||
|
|
||||||
ALTER TABLE IF EXISTS known_coins
|
ALTER TABLE IF EXISTS known_coins
|
||||||
@ -1389,5 +1432,33 @@ BEGIN
|
|||||||
END
|
END
|
||||||
$$;
|
$$;
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION setup_shard_db(
|
||||||
|
shard_suffix VARCHAR
|
||||||
|
)
|
||||||
|
RETURNS VOID
|
||||||
|
LANGUAGE plpgsql
|
||||||
|
AS $$
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
PERFORM create_table_wire_targets(shard_suffix);
|
||||||
|
PERFORM create_table_reserves(shard_suffix);
|
||||||
|
PERFORM create_table_reserves_in(shard_suffix);
|
||||||
|
PERFORM create_table_reserves_out(shard_suffix);
|
||||||
|
PERFORM create_table_reserves_close(shard_suffix);
|
||||||
|
PERFORM create_table_known_coins(shard_suffix);
|
||||||
|
PERFORM create_table_refresh_commitments(shard_suffix);
|
||||||
|
PERFORM create_table_refresh_revealed_coins(shard_suffix);
|
||||||
|
PERFORM create_table_refresh_transfer_keys(shard_suffix);
|
||||||
|
PERFORM create_table_deposits(shard_suffix);
|
||||||
|
PERFORM create_table_refunds(shard_suffix);
|
||||||
|
PERFORM create_table_wire_out(shard_suffix);
|
||||||
|
PERFORM create_table_aggregation_tracking(shard_suffix);
|
||||||
|
PERFORM create_table_recoup(shard_suffix);
|
||||||
|
PERFORM create_table_recoup_refresh(shard_suffix);
|
||||||
|
PERFORM create_table_prewire(shard_suffix);
|
||||||
|
PERFORM create_table_cs_nonce_locks(shard_suffix);
|
||||||
|
|
||||||
|
END
|
||||||
|
$$;
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
Loading…
Reference in New Issue
Block a user