]> git.xonotic.org Git - xonotic/xonstatdb.git/blobdiff - triggers/player_weapon_stats_ins_trg.sql
Add partitions through 2025.
[xonotic/xonstatdb.git] / triggers / player_weapon_stats_ins_trg.sql
old mode 100755 (executable)
new mode 100644 (file)
index fbaf451..f109622
@@ -1,33 +1,63 @@
-CREATE OR REPLACE FUNCTION player_weapon_stats_ins()\r
-RETURNS TRIGGER AS $$\r
-BEGIN\r
-    IF (NEW.create_dt >= DATE '2011-04-01' AND NEW.create_dt < DATE '2011-07-01') THEN\r
-        INSERT INTO player_weapon_stats_2011Q2 VALUES (NEW.*);\r
-    ELSIF (NEW.create_dt >= DATE '2011-07-01' AND NEW.create_dt < DATE '2011-10-01') THEN\r
-        INSERT INTO player_weapon_stats_2011Q3 VALUES (NEW.*);\r
-    ELSIF (NEW.create_dt >= DATE '2011-10-01' AND NEW.create_dt < DATE '2012-01-01') THEN\r
-        INSERT INTO player_weapon_stats_2011Q4 VALUES (NEW.*);\r
-    ELSIF (NEW.create_dt >= DATE '2012-01-01' AND NEW.create_dt < DATE '2012-04-01') THEN\r
-        INSERT INTO player_weapon_stats_2012Q1 VALUES (NEW.*);\r
-    ELSIF (NEW.create_dt >= DATE '2012-04-01' AND NEW.create_dt < DATE '2012-07-01') THEN\r
-        INSERT INTO player_weapon_stats_2012Q2 VALUES (NEW.*);\r
-    ELSIF (NEW.create_dt >= DATE '2012-07-01' AND NEW.create_dt < DATE '2012-10-01') THEN\r
-        INSERT INTO player_weapon_stats_2012Q3 VALUES (NEW.*);\r
-    ELSIF (NEW.create_dt >= DATE '2012-10-01' AND NEW.create_dt < DATE '2013-01-01') THEN\r
-        INSERT INTO player_weapon_stats_2012Q4 VALUES (NEW.*);\r
-    ELSIF (NEW.create_dt >= DATE '2013-01-01' AND NEW.create_dt < DATE '2013-04-01') THEN\r
-        INSERT INTO player_weapon_stats_2013Q1 VALUES (NEW.*);\r
-    ELSIF (NEW.create_dt >= DATE '2013-04-01' AND NEW.create_dt < DATE '2013-07-01') THEN\r
-        INSERT INTO player_weapon_stats_2013Q2 VALUES (NEW.*);\r
-    ELSE\r
-        RAISE EXCEPTION 'Date out of range.  Fix the player_weapon_stats_ins() trigger!';\r
-    END IF;\r
-    RETURN NULL;\r
-END;\r
-$$\r
-LANGUAGE plpgsql;\r
-\r
-DROP TRIGGER IF EXISTS player_weapon_stats_ins_trg ON xonstat.player_weapon_stats;\r
-CREATE TRIGGER player_weapon_stats_ins_trg\r
-    BEFORE INSERT on xonstat.player_weapon_stats\r
-    FOR EACH ROW EXECUTE PROCEDURE player_weapon_stats_ins();\r
+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();