code.vegaprotocol.io/vega@v0.79.0/datanode/sqlstore/migrations/0110_update_vesting_stats.sql (about) 1 -- +goose Up 2 3 DROP TRIGGER IF EXISTS update_party_vesting_stats ON party_vesting_stats; 4 -- update the vesting stats table to include the summed quantum balance and reward bonus multiplier 5 ALTER TABLE party_vesting_stats 6 ADD COLUMN IF NOT EXISTS summed_reward_bonus_multiplier NUMERIC(1000, 16) NOT NULL DEFAULT 0, 7 ADD COLUMN IF NOT EXISTS summed_quantum_balance NUMERIC(1000, 16) NOT NULL DEFAULT 0; 8 9 ALTER TABLE party_vesting_stats_current 10 ADD COLUMN IF NOT EXISTS summed_reward_bonus_multiplier NUMERIC(1000, 16) NOT NULL DEFAULT 0, 11 ADD COLUMN IF NOT EXISTS summed_quantum_balance NUMERIC(1000, 16) NOT NULL DEFAULT 0; 12 13 -- create the trigger functions and triggers 14 -- +goose StatementBegin 15 create or replace function update_party_vesting_stats() 16 returns trigger 17 language plpgsql 18 as $$ 19 begin 20 insert into party_vesting_stats_current(party_id, at_epoch, reward_bonus_multiplier, quantum_balance, summed_reward_bonus_multiplier, summed_quantum_balance, vega_time) 21 values (new.party_id, new.at_epoch, new.reward_bonus_multiplier, new.quantum_balance, new.summed_reward_bonus_multiplier, new.summed_quantum_balance, new.vega_time) 22 on conflict(party_id) 23 do update set 24 at_epoch = excluded.at_epoch, 25 reward_bonus_multiplier = excluded.reward_bonus_multiplier, 26 quantum_balance = excluded.quantum_balance, 27 summed_reward_bonus_multiplier = excluded.summed_reward_bonus_multiplier, 28 summed_quantum_balance = excluded.summed_quantum_balance, 29 vega_time = excluded.vega_time; 30 return null; 31 end; 32 $$; 33 -- +goose StatementEnd 34 35 CREATE TRIGGER update_party_vesting_stats 36 after insert or update 37 on party_vesting_stats 38 for each row execute function update_party_vesting_stats(); 39 40 -- +goose Down 41 42 DROP TRIGGER IF EXISTS update_party_vesting_stats ON party_vesting_stats; 43 ALTER TABLE party_vesting_stats 44 DROP COLUMN summed_reward_bonus_multiplier, 45 DROP COLUMN summed_quantum_balance; 46 47 ALTER TABLE party_vesting_stats_current 48 DROP COLUMN summed_reward_bonus_multiplier, 49 DROP COLUMN summed_quantum_balance; 50 51 -- +goose StatementBegin 52 create or replace function update_party_vesting_stats() 53 returns trigger 54 language plpgsql 55 as $$ 56 begin 57 insert into party_vesting_stats_current(party_id, at_epoch, reward_bonus_multiplier, quantum_balance, vega_time) 58 values (new.party_id, new.at_epoch, new.reward_bonus_multiplier, new.quantum_balance, new.vega_time) 59 on conflict(party_id) 60 do update set 61 at_epoch = excluded.at_epoch, 62 reward_bonus_multiplier = excluded.reward_bonus_multiplier, 63 quantum_balance = excluded.quantum_balance, 64 vega_time = excluded.vega_time; 65 return null; 66 end; 67 $$; 68 -- +goose StatementEnd 69 70 CREATE TRIGGER update_party_vesting_stats 71 after insert or update 72 on party_vesting_stats 73 for each row execute function update_party_vesting_stats();