Skip to content
Snippets Groups Projects
Select Git revision
  • 96a2229a6993dc4ce1aaa8e3079cb0d9c2ab1ccb
  • devel default
  • master
  • fo
  • jirka/typing
  • fo-base
  • mj/submit-images
  • jk/issue-96
  • jk/issue-196
  • honza/add-contestant
  • honza/mr7
  • honza/mrf
  • honza/mrd
  • honza/mra
  • honza/mr6
  • honza/submit-images
  • honza/kolo-vs-soutez
  • jh-stress-test-wip
  • shorten-schools
19 results

test-anonymize

Blame
  • upgrade-20210111.sql 2.92 KiB
    SET ROLE 'mo_osmo';
    
    ALTER TABLE users
    	ADD COLUMN is_test         boolean         NOT NULL DEFAULT false;         -- testovací účastník, není vidět ve výsledkovkách
    
    CREATE TYPE round_state AS ENUM (
           'preparing',                    -- v přípravě (viditelné pouze organizátorům)
           'running',                      -- je možno odevzdávat
           'grading',                      -- je možno opravovat a vyplňovat body
           'closed'                        -- uzavřeno, není dovoleno nic měnit, zveřejněny výsledky
           -- Garanta stavy neomezují, vždycky může všechno.
           -- Ve stavu "running" mohou odevzdávat účastníci i dozor, a to i po termínu,
           -- jen se odevzdaná řešení zobrazují jako opožděná.
    );
    
    ALTER TABLE rounds
    	ADD COLUMN state           round_state     NOT NULL DEFAULT 'preparing',   -- stav kola
    	ADD COLUMN tasks_file      varchar(255)    DEFAULT NULL,                   -- jméno souboru se zadáním úloh
    	ADD COLUMN ct_tasks_start  timestamp with time zone        DEFAULT NULL,   -- od kdy účastníci vidí zadání
    	ADD COLUMN ct_submit_end   timestamp with time zone        DEFAULT NULL,   -- do kdy účastníci mohou regulérně odevzdávat
    	ADD COLUMN pr_submit_end   timestamp with time zone        DEFAULT NULL;   -- do kdy dozor může regulérně odevzdávat
    
    ALTER TABLE papers
    	ADD COLUMN note            text            NOT NULL DEFAULT '';
    
    ALTER TABLE solutions
    	RENAME COLUMN last_submit TO final_submit,
    	RENAME COLUMN last_feedback TO final_feedback;
    
    CREATE TYPE job_type AS ENUM (
    	'download_submits',
    	'upload_feedback'
    );
    
    CREATE TYPE job_state AS ENUM (
    	'ready',
    	'running',
    	'done',				-- Hotovo, out_json a out_file jsou platné
    	'failed'			-- Interní chyba při zpracování, viz log
    );
    
    CREATE TABLE jobs (
    	job_id		serial		PRIMARY KEY,
    	type		job_type	NOT NULL,
    	state		job_state	NOT NULL,
    	user_id		int		NOT NULL REFERENCES users(user_id),			-- komu patří
    	created_at	timestamp with time zone	NOT NULL DEFAULT CURRENT_TIMESTAMP,	-- kdy byl založen
    	finished_at	timestamp with time zone	DEFAULT NULL,				-- kdy doběhl
    	expires_at	timestamp with time zone	DEFAULT NULL,				-- kdy bude automaticky smazán
    	description	text		NOT NULL DEFAULT '',
    	in_json		jsonb		DEFAULT NULL,
    	out_json	jsonb		DEFAULT NULL,
    	-- Soubory jsou součástí úlohy a po jejím ukončení budou smazány
    	in_file		varchar(255)	DEFAULT NULL,
    	out_file	varchar(255)	DEFAULT NULL
    );
    
    ALTER TABLE places ADD CONSTRAINT "places_code_key" UNIQUE (code);
    CREATE INDEX places_parent_index ON places (parent);
    CREATE INDEX participations_contest_id_index ON participations (contest_id, place_id);
    CREATE INDEX papers_for_task_index ON papers (for_task);
    CREATE INDEX papers_for_user_index ON papers (for_user);
    CREATE INDEX solutions_user_id_index ON solutions (user_id);
    CREATE INDEX points_history_index ON points_history (task_id, participant_id);
    CREATE INDEX log_type_id_index ON log (type, id);