]> ruin.nu Git - ndwebbie.git/blob - database/views/current_planet_stats.sql
Clean up database directory
[ndwebbie.git] / database / views / current_planet_stats.sql
1 CREATE VIEW current_planet_stats AS
2 SELECT p.pid, p.nick, p.planet_status, p.hit_us, ps.x, ps.y, ps.z, p.ruler, p.planet, p.race
3         ,alliance, a.relationship, a.aid, p.channel, p.ftid, p.gov
4         ,ps.size, ps.score, ps.value, ps.xp, ps.sizerank, ps.scorerank, ps.valuerank, ps.xprank
5 FROM ( SELECT pid, tick, x, y, z, size, score, value, xp, sizerank, scorerank, valuerank, xprank
6                 FROM planet_stats
7                 WHERE tick = ( SELECT max(tick) AS max FROM planet_stats)
8         ) ps
9         NATURAL JOIN planets p
10         LEFT JOIN alliances a USING (alliance);
11
12 CREATE OR REPLACE VIEW current_planet_stats_full AS
13 SELECT *
14 FROM planets p
15         NATURAL JOIN (
16                 SELECT *
17                 FROM planet_stats
18                 WHERE tick = ( SELECT max(tick) AS max FROM planet_stats)
19         ) ps
20         LEFT JOIN alliances USING (alliance);
21
22 CREATE OR REPLACE FUNCTION change_member() RETURNS trigger
23     AS $_X$
24 BEGIN
25         IF TG_OP = 'INSERT' THEN
26                 IF NEW.gid = 2 THEN
27                         UPDATE planets SET alliance = 'NewDawn' WHERE
28                                 pid = (SELECT pid FROM users WHERE uid = NEW.uid);
29                 END IF;
30         ELSIF TG_OP = 'DELETE' THEN
31                 IF OLD.gid = 2 THEN
32                         UPDATE planets SET alliance = NULL WHERE
33                                 pid = (SELECT pid FROM users WHERE uid = OLD.uid);
34                 END IF;
35         END IF;
36
37         return NEW;
38 END;
39 $_X$ LANGUAGE plpgsql;
40