pastebin/migrations/2019-09-16-172252_implementations/up.sql
2019-09-16 23:03:48 +02:00

42 lines
1.4 KiB
SQL

ALTER TABLE wrappers RENAME TO shared_wrappers;
CREATE TABLE implementations (
implementation_id serial PRIMARY KEY,
language_id integer NOT NULL REFERENCES languages,
identifier text NOT NULL,
label text NOT NULL,
UNIQUE (language_id, identifier)
);
CREATE TABLE implementation_wrappers (
implementation_wrapper_id serial PRIMARY KEY,
implementation_id integer NOT NULL REFERENCES implementations,
identifier text NOT NULL,
label text NOT NULL,
code text NOT NULL,
ordering int NOT NULL,
is_formatter boolean NOT NULL DEFAULT false,
is_asm boolean NOT NULL DEFAULT false,
UNIQUE (implementation_id, identifier)
);
INSERT INTO implementations (language_id, identifier, label)
SELECT language_id, 'clang', 'Clang'
FROM languages
WHERE identifier = 'c-plus-plus';
INSERT INTO implementations (language_id, identifier, label)
SELECT language_id, 'g-plus-plus', 'g++'
FROM languages
WHERE identifier = 'c-plus-plus';
INSERT INTO implementation_wrappers (implementation_id, identifier, label, code, ordering)
SELECT implementation_id, 'run', 'Run', 'mv code code.cpp; clang++ %s code.cpp && ./a.out', 1
FROM implementations
WHERE identifier = 'clang';
INSERT INTO implementation_wrappers (implementation_id, identifier, label, code, ordering)
SELECT implementation_id, 'run', 'Run', 'mv code code.cpp; g++ %s code.cpp && ./a.out', 1
FROM implementations
WHERE identifier = 'g-plus-plus';