~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: 2009-02-26 02:08:28 UTC
  • Revision ID: grantw@unimelb.edu.au-20090226020828-0qrhe3llq9r5olmr
ivle-showenrolment: Swap year and semester, and show the role.

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;