1 CREATE OR REPLACE FUNCTION change_member() RETURNS trigger
4 IF TG_OP = 'INSERT' THEN
6 UPDATE planets SET alliance = 'NewDawn' WHERE
7 pid = (SELECT pid FROM users WHERE uid = NEW.uid);
9 ELSIF TG_OP = 'DELETE' THEN
11 UPDATE planets SET alliance = NULL WHERE
12 pid = (SELECT pid FROM users WHERE uid = OLD.uid);
18 $_X$ LANGUAGE plpgsql;
20 CREATE OR REPLACE FUNCTION update_user_planet() RETURNS trigger AS $_X$
22 IF COALESCE(NEW.pid <> OLD.pid,TRUE) OR NEW.username <> OLD.username THEN
23 UPDATE planets SET nick = NULL WHERE pid = OLD.pid;
24 UPDATE planets SET nick = NEW.username WHERE pid = NEW.pid;
27 IF COALESCE(NEW.pid <> OLD.pid,TRUE)
28 AND (SELECT TRUE FROM groupmembers WHERE gid = 'M' AND uid = NEW.uid) THEN
29 UPDATE planets SET alliance = NULL WHERE pid = OLD.pid;
30 UPDATE planets SET alliance = 'NewDawn' WHERE pid = NEW.pid;
34 $_X$ LANGUAGE plpgsql;
36 CREATE OR REPLACE FUNCTION groups(uid integer) RETURNS SETOF CHAR
37 AS $_$SELECT gid FROM groupmembers WHERE uid = $1 UNION SELECT ''$_$