insert into players (nick) values ('Bot');
insert into players (nick) values ('Untracked Player');
+-- triggers
+\i triggers/games_ins_trg.sql
+\i triggers/player_game_stats_ins_trg.sql
+\i triggers/player_weapon_stats_ins_trg.sql
+
-- version tracking
insert into db_version(version, descr) values('1.0.0', 'Initial build');
--- /dev/null
+CREATE OR REPLACE FUNCTION games_ins()\r
+RETURNS TRIGGER AS $$\r
+BEGIN\r
+ IF (create_dt >= DATE '2011-04-01' AND create_dt < DATE '2011-07-01') THEN\r
+ INSERT INTO games_2011Q2 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2011-07-01' AND create_dt < DATE '2011-10-01') THEN\r
+ INSERT INTO games_2011Q3 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2011-10-01' AND create_dt < DATE '2012-01-01') THEN\r
+ INSERT INTO games_2011Q4 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-01-01' AND create_dt < DATE '2012-04-01') THEN\r
+ INSERT INTO games_2012Q1 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-04-01' AND create_dt < DATE '2012-07-01') THEN\r
+ INSERT INTO games_2012Q2 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-07-01' AND create_dt < DATE '2012-10-01') THEN\r
+ INSERT INTO games_2012Q3 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-10-01' AND create_dt < DATE '2013-01-01') THEN\r
+ INSERT INTO games_2012Q4 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2013-01-01' AND create_dt < DATE '2013-04-01') THEN\r
+ INSERT INTO games_2013Q1 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2013-04-01' AND create_dt < DATE '2013-07-01') THEN\r
+ INSERT INTO games_2013Q2 VALUES (NEW.*);\r
+ ELSE\r
+ RAISE EXCEPTION 'Date out of range. Fix the games_ins() trigger!';\r
+ END IF;\r
+ RETURN NULL;\r
+END;\r
+$$\r
+LANGUAGE plpgsql;\r
--- /dev/null
+CREATE OR REPLACE FUNCTION player_game_stats_ins()\r
+RETURNS TRIGGER AS $$\r
+BEGIN\r
+ IF (create_dt >= DATE '2011-04-01' AND create_dt < DATE '2011-07-01') THEN\r
+ INSERT INTO player_game_stats_2011Q2 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2011-07-01' AND create_dt < DATE '2011-10-01') THEN\r
+ INSERT INTO player_game_stats_2011Q3 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2011-10-01' AND create_dt < DATE '2012-01-01') THEN\r
+ INSERT INTO player_game_stats_2011Q4 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-01-01' AND create_dt < DATE '2012-04-01') THEN\r
+ INSERT INTO player_game_stats_2012Q1 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-04-01' AND create_dt < DATE '2012-07-01') THEN\r
+ INSERT INTO player_game_stats_2012Q2 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-07-01' AND create_dt < DATE '2012-10-01') THEN\r
+ INSERT INTO player_game_stats_2012Q3 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-10-01' AND create_dt < DATE '2013-01-01') THEN\r
+ INSERT INTO player_game_stats_2012Q4 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2013-01-01' AND create_dt < DATE '2013-04-01') THEN\r
+ INSERT INTO player_game_stats_2013Q1 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2013-04-01' AND create_dt < DATE '2013-07-01') THEN\r
+ INSERT INTO player_game_stats_2013Q2 VALUES (NEW.*);\r
+ ELSE\r
+ RAISE EXCEPTION 'Date out of range. Fix the player_game_stats_ins() trigger!';\r
+ END IF;\r
+ RETURN NULL;\r
+END;\r
+$$\r
+LANGUAGE plpgsql;\r
--- /dev/null
+CREATE OR REPLACE FUNCTION player_weapon_stats_ins()\r
+RETURNS TRIGGER AS $$\r
+BEGIN\r
+ IF (create_dt >= DATE '2011-04-01' AND create_dt < DATE '2011-07-01') THEN\r
+ INSERT INTO player_weapon_stats_2011Q2 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2011-07-01' AND create_dt < DATE '2011-10-01') THEN\r
+ INSERT INTO player_weapon_stats_2011Q3 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2011-10-01' AND create_dt < DATE '2012-01-01') THEN\r
+ INSERT INTO player_weapon_stats_2011Q4 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-01-01' AND create_dt < DATE '2012-04-01') THEN\r
+ INSERT INTO player_weapon_stats_2012Q1 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-04-01' AND create_dt < DATE '2012-07-01') THEN\r
+ INSERT INTO player_weapon_stats_2012Q2 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-07-01' AND create_dt < DATE '2012-10-01') THEN\r
+ INSERT INTO player_weapon_stats_2012Q3 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2012-10-01' AND create_dt < DATE '2013-01-01') THEN\r
+ INSERT INTO player_weapon_stats_2012Q4 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2013-01-01' AND create_dt < DATE '2013-04-01') THEN\r
+ INSERT INTO player_weapon_stats_2013Q1 VALUES (NEW.*);\r
+ ELSIF (create_dt >= DATE '2013-04-01' AND 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