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

« back to all changes in this revision

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

  • Committer: David Coles
  • Date: 2010-07-27 04:52:14 UTC
  • Revision ID: coles.david@gmail.com-20100727045214-p32h1kc0gcv48dpr
Worksheets: Strip off whitespace from the end of exercise attempts.

This solves an issue where accidental whitespace in an attempt will cause 
"IndentationError" syntax error (which don't occur when run in console).

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;