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; |