]> de.git.xonotic.org Git - xonotic/xonstatdb.git/blobdiff - triggers/games_ins_trg.sql
Partition tables out to 2020, remove old ones.
[xonotic/xonstatdb.git] / triggers / games_ins_trg.sql
index 0490d1840c1cdde545461bcc6f000ae5dd97da28..937ff09d8adf3878fd1266c3f52157493887fdf8 100644 (file)
@@ -1,29 +1,67 @@
 CREATE OR REPLACE FUNCTION games_ins()
 RETURNS TRIGGER AS $$
 BEGIN
-    -- 2013
-    IF (NEW.create_dt >= DATE '2013-04-01' AND NEW.create_dt < DATE '2013-07-01') THEN
-        INSERT INTO games_2013Q2 VALUES (NEW.*);
-    ELSIF (NEW.create_dt >= DATE '2013-07-01' AND NEW.create_dt < DATE '2013-10-01') THEN
-        INSERT INTO games_2013Q3 VALUES (NEW.*);
-    ELSIF (NEW.create_dt >= DATE '2013-10-01' AND NEW.create_dt < DATE '2014-01-01') THEN
-        INSERT INTO games_2013Q4 VALUES (NEW.*);
-
-    -- 2014
-    ELSIF (NEW.create_dt >= DATE '2014-01-01' AND NEW.create_dt < DATE '2014-04-01') THEN
-        INSERT INTO games_2014Q1 VALUES (NEW.*);
-    ELSIF (NEW.create_dt >= DATE '2014-04-01' AND NEW.create_dt < DATE '2014-07-01') THEN
-        INSERT INTO games_2014Q2 VALUES (NEW.*);
-    ELSIF (NEW.create_dt >= DATE '2014-07-01' AND NEW.create_dt < DATE '2014-10-01') THEN
-        INSERT INTO games_2014Q3 VALUES (NEW.*);
-    ELSIF (NEW.create_dt >= DATE '2014-10-01' AND NEW.create_dt < DATE '2015-01-01') THEN
-        INSERT INTO games_2014Q4 VALUES (NEW.*);
-
-    ELSE
-        RAISE EXCEPTION 'Date out of range.  Fix the games_ins() trigger!';
-    END IF;
-    RETURN NULL;
-END;
+       IF (NEW.create_dt >= DATE '2014-01-01' AND NEW.create_dt < DATE '2014-04-01') THEN
+               INSERT INTO games_2014Q1 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2014-04-01' AND NEW.create_dt < DATE '2014-07-01') THEN
+               INSERT INTO games_2014Q2 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2014-07-01' AND NEW.create_dt < DATE '2014-10-01') THEN
+               INSERT INTO games_2014Q3 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2014-10-01' AND NEW.create_dt < DATE '2015-01-01') THEN
+               INSERT INTO games_2014Q4 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2015-01-01' AND NEW.create_dt < DATE '2015-04-01') THEN
+               INSERT INTO games_2015Q1 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2015-04-01' AND NEW.create_dt < DATE '2015-07-01') THEN
+               INSERT INTO games_2015Q2 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2015-07-01' AND NEW.create_dt < DATE '2015-10-01') THEN
+               INSERT INTO games_2015Q3 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2015-10-01' AND NEW.create_dt < DATE '2016-01-01') THEN
+               INSERT INTO games_2015Q4 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2016-01-01' AND NEW.create_dt < DATE '2016-04-01') THEN
+               INSERT INTO games_2016Q1 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2016-04-01' AND NEW.create_dt < DATE '2016-07-01') THEN
+               INSERT INTO games_2016Q2 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2016-07-01' AND NEW.create_dt < DATE '2016-10-01') THEN
+               INSERT INTO games_2016Q3 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2016-10-01' AND NEW.create_dt < DATE '2017-01-01') THEN
+               INSERT INTO games_2016Q4 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2017-01-01' AND NEW.create_dt < DATE '2017-04-01') THEN
+               INSERT INTO games_2017Q1 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2017-04-01' AND NEW.create_dt < DATE '2017-07-01') THEN
+               INSERT INTO games_2017Q2 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2017-07-01' AND NEW.create_dt < DATE '2017-10-01') THEN
+               INSERT INTO games_2017Q3 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2017-10-01' AND NEW.create_dt < DATE '2018-01-01') THEN
+               INSERT INTO games_2017Q4 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2018-01-01' AND NEW.create_dt < DATE '2018-04-01') THEN
+               INSERT INTO games_2018Q1 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2018-04-01' AND NEW.create_dt < DATE '2018-07-01') THEN
+               INSERT INTO games_2018Q2 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2018-07-01' AND NEW.create_dt < DATE '2018-10-01') THEN
+               INSERT INTO games_2018Q3 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2018-10-01' AND NEW.create_dt < DATE '2019-01-01') THEN
+               INSERT INTO games_2018Q4 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2019-01-01' AND NEW.create_dt < DATE '2019-04-01') THEN
+               INSERT INTO games_2019Q1 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2019-04-01' AND NEW.create_dt < DATE '2019-07-01') THEN
+               INSERT INTO games_2019Q2 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2019-07-01' AND NEW.create_dt < DATE '2019-10-01') THEN
+               INSERT INTO games_2019Q3 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2019-10-01' AND NEW.create_dt < DATE '2020-01-01') THEN
+               INSERT INTO games_2019Q4 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2020-01-01' AND NEW.create_dt < DATE '2020-04-01') THEN
+               INSERT INTO games_2020Q1 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2020-04-01' AND NEW.create_dt < DATE '2020-07-01') THEN
+               INSERT INTO games_2020Q2 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2020-07-01' AND NEW.create_dt < DATE '2020-10-01') THEN
+               INSERT INTO games_2020Q3 VALUES (NEW.*);
+       ELSIF (NEW.create_dt >= DATE '2020-10-01' AND NEW.create_dt < DATE '2021-01-01') THEN
+               INSERT INTO games_2020Q4 VALUES (NEW.*);
+       ELSE
+               RAISE EXCEPTION 'Date out of range. Fix the games_ins() trigger!';
+       END IF;
+       RETURN NULL;
+END
 $$
 LANGUAGE plpgsql;