document rlm_otp fd leak fix
[freeradius.git] / doc / examples / postgresql_update_radacct_group_trigger.sql
1 /*
2  * $Id$
3  *
4  * OPTIONAL Postgresql trigger for FreeRADIUS
5  *
6  * This trigger updates fills in the groupname field (which doesnt come in Accounting packets)
7  * by querying the radusergroup table.
8  * This makes it easier to do group summary reports, however note that it does add some extra
9  * database load to 50% of your SQL accounting queries. If you dont care about group summary 
10  * reports then you dont need to install this.
11  *
12  */
13
14
15 CREATE OR REPLACE FUNCTION upd_radgroups() RETURNS trigger AS'
16
17 DECLARE
18         v_groupname varchar;
19
20 BEGIN
21         SELECT INTO v_groupname groupname FROM radusergroup WHERE calledstationid = NEW.calledstationid AND username = NEW.username;
22         IF FOUND THEN
23                 UPDATE radacct SET groupname = v_groupname WHERE radacctid = NEW.radacctid;
24         END IF;
25
26         RETURN NEW;
27 END
28
29 'LANGUAGE plpgsql;
30
31
32 DROP TRIGGER upd_radgroups ON radacct;
33
34 CREATE TRIGGER upd_radgroups AFTER INSERT ON radacct
35     FOR EACH ROW EXECUTE PROCEDURE upd_radgroups();
36
37