-
Notifications
You must be signed in to change notification settings - Fork 0
/
init.sql
39 lines (29 loc) · 1.25 KB
/
init.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
-- --DROP TABLE checks;
CREATE TABLE checks (
id bigint PRIMARY KEY,
solution_id bigint NOT NULL,
test_id bigint NOT NULL,
runner_id BIGINT NOT NULL,
success BOOLEAN NOT NULL
);
CREATE SEQUENCE checks_id START 1;
ALTER TABLE checks ALTER COLUMN id SET DEFAULT nextval('checks_id');
INSERT INTO checks (solution_id, test_id, runner_id, success) VALUES (2, 3, 4, FALSE), (3,4,5,TRUE) RETURNING id;
CREATE OR REPLACE FUNCTION random_between(low INT ,high INT)
RETURNS INT AS
$$
BEGIN
RETURN floor(random()* (high-low + 1) + low);
END;
$$ language 'plpgsql' STRICT;
INSERT INTO checks (solution_id, test_id, runner_id, success)
SELECT random_between(1, 1000000), random_between(1, 1000000), random_between(1, 1000000), CASE WHEN RANDOM() < 0.5 THEN FALSE ELSE TRUE END FROM generate_series(1, 10000);
CREATE TABLE tests (
id bigint PRIMARY KEY,
task_id bigint NOT NULL,
input TEXT NULL,
output TEXT NULL
);
CREATE SEQUENCE tests_id START 1;
ALTER TABLE tests ALTER COLUMN id SET DEFAULT nextval('tests_id');
INSERT INTO tests (task_id, input, output) VALUES (2, 'echo off', 'error'), (3,'exec', 'true') RETURNING id;