CONSTRAINT positive_duration CHECK (stop > start)
);
+CREATE TABLE contest_status (
+ contest TEXT NOT NULL REFERENCES contests ON DELETE CASCADE,
+ owner TEXT NOT NULL REFERENCES users ON DELETE CASCADE,
+ score INT NOT NULL,
+ rank INT NOT NULL,
+
+ PRIMARY KEY (owner, contest)
+);
+
CREATE TABLE problems (
id TEXT PRIMARY KEY,
author TEXT,
owner TEXT NOT NULL REFERENCES users ON DELETE CASCADE,
private BOOLEAN NOT NULL DEFAULT FALSE,
runner TEXT NOT NULL,
+ solution TEXT ,
statement TEXT NOT NULL,
testcnt INT NOT NULL,
tests TEXT,
owner TEXT NOT NULL REFERENCES users ON DELETE CASCADE
);
+CREATE TABLE problem_status (
+ problem TEXT NOT NULL REFERENCES problems ON DELETE CASCADE,
+ owner TEXT NOT NULL REFERENCES users ON DELETE CASCADE,
+ job SERIAL NOT NULL REFERENCES jobs ON DELETE CASCADE,
+ solved BOOLEAN NOT NULL DEFAULT FALSE,
+
+ PRIMARY KEY (owner, problem)
+);
+
CREATE TABLE opens (
contest TEXT NOT NULL REFERENCES contests ON DELETE CASCADE,
problem TEXT NOT NULL REFERENCES problems ON DELETE CASCADE,