X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=triggers%2Fplayer_weapon_stats_ins_trg.sql;h=f1096229ec641dd9137ec2754ea4e15eaf51c030;hb=a653dfe34965d9f6d331db37c16c337e55f770e2;hp=fbaf45195524ba9011a2e6eb33c93c5c7815a5cd;hpb=764db09a6e620f25519cd05da63f7740c857f6f4;p=xonotic%2Fxonstatdb.git diff --git a/triggers/player_weapon_stats_ins_trg.sql b/triggers/player_weapon_stats_ins_trg.sql old mode 100755 new mode 100644 index fbaf451..f109622 --- a/triggers/player_weapon_stats_ins_trg.sql +++ b/triggers/player_weapon_stats_ins_trg.sql @@ -1,33 +1,63 @@ -CREATE OR REPLACE FUNCTION player_weapon_stats_ins() -RETURNS TRIGGER AS $$ -BEGIN - IF (NEW.create_dt >= DATE '2011-04-01' AND NEW.create_dt < DATE '2011-07-01') THEN - INSERT INTO player_weapon_stats_2011Q2 VALUES (NEW.*); - ELSIF (NEW.create_dt >= DATE '2011-07-01' AND NEW.create_dt < DATE '2011-10-01') THEN - INSERT INTO player_weapon_stats_2011Q3 VALUES (NEW.*); - ELSIF (NEW.create_dt >= DATE '2011-10-01' AND NEW.create_dt < DATE '2012-01-01') THEN - INSERT INTO player_weapon_stats_2011Q4 VALUES (NEW.*); - ELSIF (NEW.create_dt >= DATE '2012-01-01' AND NEW.create_dt < DATE '2012-04-01') THEN - INSERT INTO player_weapon_stats_2012Q1 VALUES (NEW.*); - ELSIF (NEW.create_dt >= DATE '2012-04-01' AND NEW.create_dt < DATE '2012-07-01') THEN - INSERT INTO player_weapon_stats_2012Q2 VALUES (NEW.*); - ELSIF (NEW.create_dt >= DATE '2012-07-01' AND NEW.create_dt < DATE '2012-10-01') THEN - INSERT INTO player_weapon_stats_2012Q3 VALUES (NEW.*); - ELSIF (NEW.create_dt >= DATE '2012-10-01' AND NEW.create_dt < DATE '2013-01-01') THEN - INSERT INTO player_weapon_stats_2012Q4 VALUES (NEW.*); - ELSIF (NEW.create_dt >= DATE '2013-01-01' AND NEW.create_dt < DATE '2013-04-01') THEN - INSERT INTO player_weapon_stats_2013Q1 VALUES (NEW.*); - ELSIF (NEW.create_dt >= DATE '2013-04-01' AND NEW.create_dt < DATE '2013-07-01') THEN - INSERT INTO player_weapon_stats_2013Q2 VALUES (NEW.*); - ELSE - RAISE EXCEPTION 'Date out of range. Fix the player_weapon_stats_ins() trigger!'; - END IF; - RETURN NULL; -END; -$$ -LANGUAGE plpgsql; - -DROP TRIGGER IF EXISTS player_weapon_stats_ins_trg ON xonstat.player_weapon_stats; -CREATE TRIGGER player_weapon_stats_ins_trg - BEFORE INSERT on xonstat.player_weapon_stats - FOR EACH ROW EXECUTE PROCEDURE player_weapon_stats_ins(); +CREATE OR REPLACE FUNCTION player_weapon_stats_ins() +RETURNS TRIGGER AS $$ +BEGIN + IF (NEW.create_dt >= DATE '2020-01-01' AND NEW.create_dt < DATE '2020-04-01') THEN + INSERT INTO player_weapon_stats_2020Q1 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2020-04-01' AND NEW.create_dt < DATE '2020-07-01') THEN + INSERT INTO player_weapon_stats_2020Q2 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2020-07-01' AND NEW.create_dt < DATE '2020-10-01') THEN + INSERT INTO player_weapon_stats_2020Q3 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2020-10-01' AND NEW.create_dt < DATE '2021-01-01') THEN + INSERT INTO player_weapon_stats_2020Q4 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2021-01-01' AND NEW.create_dt < DATE '2021-04-01') THEN + INSERT INTO player_weapon_stats_2021Q1 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2021-04-01' AND NEW.create_dt < DATE '2021-07-01') THEN + INSERT INTO player_weapon_stats_2021Q2 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2021-07-01' AND NEW.create_dt < DATE '2021-10-01') THEN + INSERT INTO player_weapon_stats_2021Q3 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2021-10-01' AND NEW.create_dt < DATE '2022-01-01') THEN + INSERT INTO player_weapon_stats_2021Q4 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2022-01-01' AND NEW.create_dt < DATE '2022-04-01') THEN + INSERT INTO player_weapon_stats_2022Q1 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2022-04-01' AND NEW.create_dt < DATE '2022-07-01') THEN + INSERT INTO player_weapon_stats_2022Q2 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2022-07-01' AND NEW.create_dt < DATE '2022-10-01') THEN + INSERT INTO player_weapon_stats_2022Q3 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2022-10-01' AND NEW.create_dt < DATE '2023-01-01') THEN + INSERT INTO player_weapon_stats_2022Q4 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2023-01-01' AND NEW.create_dt < DATE '2023-04-01') THEN + INSERT INTO player_weapon_stats_2023Q1 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2023-04-01' AND NEW.create_dt < DATE '2023-07-01') THEN + INSERT INTO player_weapon_stats_2023Q2 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2023-07-01' AND NEW.create_dt < DATE '2023-10-01') THEN + INSERT INTO player_weapon_stats_2023Q3 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2023-10-01' AND NEW.create_dt < DATE '2024-01-01') THEN + INSERT INTO player_weapon_stats_2023Q4 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2024-01-01' AND NEW.create_dt < DATE '2024-04-01') THEN + INSERT INTO player_weapon_stats_2024Q1 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2024-04-01' AND NEW.create_dt < DATE '2024-07-01') THEN + INSERT INTO player_weapon_stats_2024Q2 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2024-07-01' AND NEW.create_dt < DATE '2024-10-01') THEN + INSERT INTO player_weapon_stats_2024Q3 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2024-10-01' AND NEW.create_dt < DATE '2025-01-01') THEN + INSERT INTO player_weapon_stats_2024Q4 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2025-01-01' AND NEW.create_dt < DATE '2025-04-01') THEN + INSERT INTO player_weapon_stats_2025Q1 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2025-04-01' AND NEW.create_dt < DATE '2025-07-01') THEN + INSERT INTO player_weapon_stats_2025Q2 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2025-07-01' AND NEW.create_dt < DATE '2025-10-01') THEN + INSERT INTO player_weapon_stats_2025Q3 VALUES (NEW.*); + ELSIF (NEW.create_dt >= DATE '2025-10-01' AND NEW.create_dt < DATE '2026-01-01') THEN + INSERT INTO player_weapon_stats_2025Q4 VALUES (NEW.*); + ELSE + RAISE EXCEPTION 'Date out of range. Fix the player_weapon_stats_ins() trigger!'; + END IF; + RETURN NULL; +END +$$ +LANGUAGE plpgsql; + +DROP TRIGGER IF EXISTS player_weapon_stats_ins_trg ON xonstat.player_weapon_stats; +CREATE TRIGGER player_weapon_stats_ins_trg + BEFORE INSERT on xonstat.player_weapon_stats + FOR EACH ROW EXECUTE PROCEDURE player_weapon_stats_ins();