~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to userdb/migrations/20090406-01.sql

  • Committer: William Grant
  • Date: 2010-02-23 08:48:09 UTC
  • mfrom: (1673 trunk)
  • mto: This revision was merged to the branch mainline in revision 1674.
  • Revision ID: grantw@unimelb.edu.au-20100223084809-du6dvsxrjhw15ytr
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
BEGIN;
 
2
 
 
3
ALTER TABLE project_set ALTER COLUMN max_students_per_group DROP NOT NULL;
 
4
ALTER TABLE project_set ALTER COLUMN max_students_per_group DROP DEFAULT;
 
5
 
 
6
ALTER TABLE project ALTER COLUMN synopsis TYPE TEXT;
 
7
ALTER TABLE project ALTER COLUMN url TYPE TEXT;
 
8
ALTER TABLE project ADD COLUMN short_name TEXT NOT NULL;
 
9
ALTER TABLE project ADD COLUMN name TEXT NOT NULL;
 
10
 
 
11
CREATE OR REPLACE FUNCTION check_project_namespacing_insertupdate()
 
12
RETURNS trigger AS '
 
13
    DECLARE
 
14
        oid INTEGER;
 
15
    BEGIN
 
16
        IF TG_OP = ''UPDATE'' THEN
 
17
            IF NEW.projectsetid = OLD.projectsetid AND NEW.short_name = OLD.short_name THEN
 
18
                RETURN NEW;
 
19
            END IF;
 
20
        END IF;
 
21
        SELECT offeringid INTO oid FROM project_set WHERE project_set.projectsetid = NEW.projectsetid;
 
22
        PERFORM 1 FROM project, project_set
 
23
        WHERE project_set.offeringid = oid AND
 
24
              project.projectsetid = project_set.projectsetid AND
 
25
              project.short_name = NEW.short_name;
 
26
        IF found THEN
 
27
            RAISE EXCEPTION ''a project named % already exists in offering ID %'', NEW.short_name, oid;
 
28
        END IF;
 
29
        RETURN NEW;
 
30
    END;
 
31
' LANGUAGE 'plpgsql';
 
32
 
 
33
CREATE TRIGGER check_project_namespacing
 
34
    BEFORE INSERT OR UPDATE ON project
 
35
    FOR EACH ROW EXECUTE PROCEDURE check_project_namespacing_insertupdate();
 
36
 
 
37
ALTER TABLE project_extension ADD COLUMN extensionid SERIAL PRIMARY KEY;
 
38
 
 
39
ALTER TABLE project_submission ADD COLUMN submissionid SERIAL PRIMARY KEY;
 
40
ALTER TABLE project_submission ADD COLUMN date_submitted TIMESTAMP NOT NULL;
 
41
ALTER TABLE project_submission ADD COLUMN submitter INT4 REFERENCES login (loginid) NOT NULL;
 
42
 
 
43
COMMIT;