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

« back to all changes in this revision

Viewing changes to userdb/users.sql

  • Committer: chadnickbok
  • Date: 2009-02-02 04:00:25 UTC
  • Revision ID: svn-v4:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:1189
Adding the changes from my genshi branch into trunk.

Most apps now use the Genshi templating engine, in preparation
for future changes to dispatch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
BEGIN;
2
1
CREATE SEQUENCE login_unixid_seq MINVALUE 1000 MAXVALUE 29999 START WITH 5000;
3
2
 
4
3
CREATE TABLE login (
190
189
 
191
190
-- Worksheets
192
191
-- ----------
 
192
 
193
193
CREATE TABLE problem (
194
 
    identifier  TEXT PRIMARY KEY,
195
 
    name        TEXT,
196
 
    description TEXT,
197
 
    partial     TEXT,
198
 
    solution    TEXT,
199
 
    include     TEXT,
200
 
    num_rows    INT4
 
194
    problemid   SERIAL PRIMARY KEY NOT NULL,
 
195
    identifier  VARCHAR UNIQUE NOT NULL,
 
196
    spec        VARCHAR
201
197
);
202
198
 
203
199
CREATE TABLE worksheet (
204
 
    worksheetid SERIAL PRIMARY KEY,
205
 
    offeringid  INT4 REFERENCES offering (offeringid) NOT NULL,
 
200
    worksheetid SERIAL PRIMARY KEY NOT NULL,
 
201
    subject     VARCHAR NOT NULL,
206
202
    identifier  VARCHAR NOT NULL,
207
203
    assessable  BOOLEAN,
208
204
    mtime       TIMESTAMP,
209
 
    UNIQUE (offeringid, identifier)
 
205
    UNIQUE (subject, identifier)
210
206
);
211
207
 
212
208
CREATE TABLE worksheet_problem (
213
209
    worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
214
 
    problemid   TEXT REFERENCES problem (identifier) NOT NULL,
 
210
    problemid   INT4 REFERENCES problem (problemid) NOT NULL,
215
211
    optional    BOOLEAN,
216
212
    PRIMARY KEY (worksheetid, problemid)
217
213
);
218
214
 
 
215
CREATE TABLE problem_tag (
 
216
    problemid   INT4 REFERENCES problem (problemid),
 
217
    tag         VARCHAR NOT NULL,
 
218
    description VARCHAR,
 
219
    standard    BOOLEAN NOT NULL,
 
220
    added_by    INT4 REFERENCES login (loginid) NOT NULL,
 
221
    date        TIMESTAMP NOT NULL,
 
222
    PRIMARY KEY (problemid,added_by,tag)
 
223
);
 
224
 
 
225
CREATE TABLE problem_test_case (
 
226
    problemid   INT4 REFERENCES problem (problemid) NOT NULL,
 
227
    testcaseid  SERIAL UNIQUE NOT NULL,
 
228
    testcase    VARCHAR,
 
229
    description VARCHAR,
 
230
    visibility  VARCHAR CHECK (visibility in ('public', 'protected', 'private'))
 
231
);
 
232
 
 
233
CREATE TABLE problem_test_case_tag (
 
234
    testcaseid  INT4 REFERENCES problem_test_case (testcaseid) NOT NULL,
 
235
    tag         VARCHAR NOT NULL,
 
236
    description VARCHAR,
 
237
    standard    BOOLEAN NOT NULL,
 
238
    added_by    INT4 REFERENCES login (loginid) NOT NULL,
 
239
    date        TIMESTAMP NOT NULL,
 
240
    PRIMARY KEY (testcaseid,added_by,tag)
 
241
);
 
242
 
219
243
CREATE TABLE problem_attempt (
220
 
    problemid   TEXT REFERENCES problem (identifier) NOT NULL,
 
244
    problemid   INT4 REFERENCES problem (problemid) NOT NULL,
221
245
    loginid     INT4 REFERENCES login (loginid) NOT NULL,
222
 
    worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
223
246
    date        TIMESTAMP NOT NULL,
224
247
    attempt     VARCHAR NOT NULL,
225
248
    complete    BOOLEAN NOT NULL,
226
249
    active      BOOLEAN NOT NULL DEFAULT true,
227
 
    PRIMARY KEY (problemid,loginid,worksheetid,date)
 
250
    PRIMARY KEY (problemid,loginid,date)
228
251
);
229
252
 
230
253
CREATE TABLE problem_save (
231
 
    problemid   TEXT REFERENCES problem (identifier) NOT NULL,
232
 
    loginid     INT4 REFERENCES login (loginid) NOT NULL,
233
 
    worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
234
 
    date        TIMESTAMP NOT NULL,
235
 
    text        TEXT NOT NULL,
236
 
    PRIMARY KEY (problemid,loginid, worksheetid)
237
 
);
238
 
 
239
 
CREATE TABLE test_suite (
240
 
    suiteid     SERIAL PRIMARY KEY,
241
 
    problemid   TEXT REFERENCES problem (identifier) NOT NULL,
242
 
    description TEXT,
243
 
    seq_no      INT4,
244
 
    function    TEXT,
245
 
    stdin       TEXT
246
 
);
247
 
 
248
 
CREATE TABLE test_case (
249
 
    testid          SERIAL PRIMARY KEY,
250
 
    suiteid         INT4 REFERENCES test_suite (suiteid) NOT NULL,
251
 
    passmsg         TEXT,
252
 
    failmsg         TEXT,
253
 
    test_default    TEXT,
254
 
    seq_no          INT4
255
 
);
256
 
 
257
 
CREATE TABLE suite_variables (
258
 
    varid       SERIAL PRIMARY KEY,
259
 
    suiteid     INT4 REFERENCES test_suite (suiteid) NOT NULL,
260
 
    var_name    TEXT,
261
 
    var_value   TEXT,
262
 
    var_type    TEXT NOT NULL,
263
 
    arg_no      INT4
264
 
);
265
 
 
266
 
CREATE TABLE test_case_parts (
267
 
    partid          SERIAL PRIMARY KEY,
268
 
    testid          INT4 REFERENCES test_case (testid) NOT NULL,
269
 
    part_type       TEXT NOT NULL,
270
 
    test_type       TEXT,
271
 
    data            TEXT,
272
 
    filename        TEXT
273
 
);
274
 
COMMIT;
 
254
    problemid   INT4 REFERENCES problem (problemid) NOT NULL,
 
255
    loginid     INT4 REFERENCES login (loginid) NOT NULL,
 
256
    date        TIMESTAMP NOT NULL,
 
257
    text        VARCHAR NOT NULL,
 
258
    PRIMARY KEY (problemid,loginid)
 
259
);
 
260
 
 
261
CREATE INDEX problem_attempt_index ON problem_attempt (problemid, loginid);
 
262
 
 
263
CREATE TABLE problem_attempt_breakdown (
 
264
    problemid   INT4 REFERENCES problem (problemid) NOT NULL,
 
265
    testcaseid  INT4 REFERENCES problem_test_case (testcaseid) NOT NULL,
 
266
    loginid     INT4 REFERENCES login (loginid) NOT NULL,
 
267
    date        TIMESTAMP NOT NULL,
 
268
    result      BOOLEAN
 
269
);
 
270
 
 
271
CREATE TABLE problem_prerequisite (
 
272
    parent      INT4 REFERENCES problem (problemid) NOT NULL,
 
273
    child       INT4 REFERENCES problem (problemid) NOT NULL,
 
274
    PRIMARY KEY (parent,child)
 
275
);
 
276