]> git.xonotic.org Git - xonotic/xonstatdb.git/blob - triggers/team_game_stats_ins_trg.sql
Configure partitions through 2014.
[xonotic/xonstatdb.git] / triggers / team_game_stats_ins_trg.sql
1 CREATE OR REPLACE FUNCTION team_game_stats_ins()
2 RETURNS TRIGGER AS $$
3 BEGIN
4     -- 2011
5     IF (NEW.create_dt >= DATE '2011-04-01' AND NEW.create_dt < DATE '2011-07-01') THEN
6         INSERT INTO team_game_stats_2011Q2 VALUES (NEW.*);
7     ELSIF (NEW.create_dt >= DATE '2011-07-01' AND NEW.create_dt < DATE '2011-10-01') THEN
8         INSERT INTO team_game_stats_2011Q3 VALUES (NEW.*);
9     ELSIF (NEW.create_dt >= DATE '2011-10-01' AND NEW.create_dt < DATE '2012-01-01') THEN
10         INSERT INTO team_game_stats_2011Q4 VALUES (NEW.*);
11
12     -- 2012
13     ELSIF (NEW.create_dt >= DATE '2012-01-01' AND NEW.create_dt < DATE '2012-04-01') THEN
14         INSERT INTO team_game_stats_2012Q1 VALUES (NEW.*);
15     ELSIF (NEW.create_dt >= DATE '2012-04-01' AND NEW.create_dt < DATE '2012-07-01') THEN
16         INSERT INTO team_game_stats_2012Q2 VALUES (NEW.*);
17     ELSIF (NEW.create_dt >= DATE '2012-07-01' AND NEW.create_dt < DATE '2012-10-01') THEN
18         INSERT INTO team_game_stats_2012Q3 VALUES (NEW.*);
19     ELSIF (NEW.create_dt >= DATE '2012-10-01' AND NEW.create_dt < DATE '2013-01-01') THEN
20         INSERT INTO team_game_stats_2012Q4 VALUES (NEW.*);
21
22     -- 2013
23     ELSIF (NEW.create_dt >= DATE '2013-01-01' AND NEW.create_dt < DATE '2013-04-01') THEN
24         INSERT INTO team_game_stats_2013Q1 VALUES (NEW.*);
25     ELSIF (NEW.create_dt >= DATE '2013-04-01' AND NEW.create_dt < DATE '2013-07-01') THEN
26         INSERT INTO team_game_stats_2013Q2 VALUES (NEW.*);
27     ELSIF (NEW.create_dt >= DATE '2013-07-01' AND NEW.create_dt < DATE '2013-10-01') THEN
28         INSERT INTO team_game_stats_2013Q2 VALUES (NEW.*);
29     ELSIF (NEW.create_dt >= DATE '2013-10-01' AND NEW.create_dt < DATE '2013-01-01') THEN
30         INSERT INTO team_game_stats_2013Q2 VALUES (NEW.*);
31
32     -- 2014
33     ELSIF (NEW.create_dt >= DATE '2014-01-01' AND NEW.create_dt < DATE '2014-04-01') THEN
34         INSERT INTO team_game_stats_2013Q2 VALUES (NEW.*);
35     ELSIF (NEW.create_dt >= DATE '2014-04-01' AND NEW.create_dt < DATE '2014-07-01') THEN
36         INSERT INTO team_game_stats_2013Q2 VALUES (NEW.*);
37     ELSIF (NEW.create_dt >= DATE '2014-07-01' AND NEW.create_dt < DATE '2014-10-01') THEN
38         INSERT INTO team_game_stats_2013Q2 VALUES (NEW.*);
39     ELSIF (NEW.create_dt >= DATE '2014-10-01' AND NEW.create_dt < DATE '2015-10-01') THEN
40         INSERT INTO team_game_stats_2013Q2 VALUES (NEW.*);
41
42     ELSE
43         RAISE EXCEPTION 'Date out of range.  Fix the team_game_stats_ins() trigger!';
44     END IF;
45     RETURN NULL;
46 END;
47 $$
48 LANGUAGE plpgsql;
49
50 DROP TRIGGER IF EXISTS team_game_stats_ins_trg ON xonstat.team_game_stats;
51 CREATE TRIGGER team_game_stats_ins_trg
52     BEFORE INSERT on xonstat.team_game_stats
53     FOR EACH ROW EXECUTE PROCEDURE team_game_stats_ins();