Bump version to 0.3.1
[public/pyceo-broken.git] / sql / verify_studentid.sql
1 -- PL/Python trigger to verify student ids for validity
2 -- Dedicated to office staff who can't type student ids.
3
4 -- To (re)install:
5 --     su postgres
6 --     psql ceo < verify_studentid.sql
7
8 -- To uninstall:
9 --     su postgres
10 --     echo 'DROP FUNCTION verify_studentid() CASCADE' | psql ceo
11
12 DROP FUNCTION verify_studentid() CASCADE;
13
14 CREATE FUNCTION verify_studentid() RETURNS trigger AS '
15     import re
16
17     # update this line if the student id format changes
18     STUDENTID_REGEX = "^[0-9]{8}$"
19     
20     studentid = TD["new"]["studentid"]
21     if studentid and not re.match(STUDENTID_REGEX, studentid):
22         plpy.error("student id is invalid (%s)" % studentid)
23
24 ' LANGUAGE plpythonu;
25
26 CREATE TRIGGER verify_studentid_insert BEFORE INSERT on members
27     FOR ROW EXECUTE PROCEDURE verify_studentid();
28
29 CREATE TRIGGER verify_studentid_update BEFORE UPDATE ON members
30     FOR ROW EXECUTE PROCEDURE verify_studentid();