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

« back to all changes in this revision

Viewing changes to userdb/users.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:
56
56
CREATE TABLE project_set (
57
57
    projectsetid  SERIAL PRIMARY KEY NOT NULL,
58
58
    offeringid    INTEGER REFERENCES offering (offeringid) NOT NULL,
59
 
    max_students_per_group  INTEGER
 
59
    max_students_per_group  INTEGER NOT NULL DEFAULT 4
60
60
);
61
61
 
62
62
CREATE TABLE project (
63
63
    projectid   SERIAL PRIMARY KEY NOT NULL,
64
 
    short_name  TEXT NOT NULL,
65
 
    name        TEXT NOT NULL,
66
 
    synopsis    TEXT,
67
 
    url         TEXT,
 
64
    synopsis    VARCHAR,
 
65
    url         VARCHAR,
68
66
    projectsetid  INTEGER REFERENCES project_set (projectsetid) NOT NULL,
69
67
    deadline    TIMESTAMP
70
68
);
71
69
 
72
 
CREATE OR REPLACE FUNCTION check_project_namespacing_insertupdate()
73
 
RETURNS trigger AS '
74
 
    DECLARE
75
 
        oid INTEGER;
76
 
    BEGIN
77
 
        IF TG_OP = ''UPDATE'' THEN
78
 
            IF NEW.projectsetid = OLD.projectsetid AND NEW.short_name = OLD.short_name THEN
79
 
                RETURN NEW;
80
 
            END IF;
81
 
        END IF;
82
 
        SELECT offeringid INTO oid FROM project_set WHERE project_set.projectsetid = NEW.projectsetid;
83
 
        PERFORM 1 FROM project, project_set
84
 
        WHERE project_set.offeringid = oid AND
85
 
              project.projectsetid = project_set.projectsetid AND
86
 
              project.short_name = NEW.short_name;
87
 
        IF found THEN
88
 
            RAISE EXCEPTION ''a project named % already exists in offering ID %'', NEW.short_name, oid;
89
 
        END IF;
90
 
        RETURN NEW;
91
 
    END;
92
 
' LANGUAGE 'plpgsql';
93
 
 
94
 
CREATE TRIGGER check_project_namespacing
95
 
    BEFORE INSERT OR UPDATE ON project
96
 
    FOR EACH ROW EXECUTE PROCEDURE check_project_namespacing_insertupdate();
97
 
 
98
70
CREATE TABLE project_group (
99
71
    groupnm     VARCHAR NOT NULL,
100
72
    groupid     SERIAL PRIMARY KEY NOT NULL,
163
135
);
164
136
 
165
137
CREATE TABLE project_extension (
166
 
    extensionid SERIAL PRIMARY KEY,
167
138
    assessedid  INT4 REFERENCES assessed (assessedid) NOT NULL,
168
139
    deadline    TIMESTAMP NOT NULL,
169
140
    approver    INT4 REFERENCES login (loginid) NOT NULL,
171
142
);
172
143
 
173
144
CREATE TABLE project_submission (
174
 
    submissionid SERIAL PRIMARY KEY,
175
145
    assessedid  INT4 REFERENCES assessed (assessedid) NOT NULL,
176
146
    path        VARCHAR NOT NULL,
177
 
    revision    INT4 NOT NULL,
178
 
    date_submitted TIMESTAMP NOT NULL,
179
 
    submitter   INT4 REFERENCES login (loginid) NOT NULL
 
147
    revision    INT4 NOT NULL
180
148
);
181
149
 
182
150
CREATE TABLE project_mark (