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