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

1165.1.44 by William Grant
Add a migration.
1
BEGIN;
2
1165.1.45 by William Grant
Remove the NOT NULL and default from project_set.max_students_per_group.
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
1165.1.44 by William Grant
Add a migration.
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;