NOW()'; $cfg['sql']['running_contests_list'] = 'SELECT * FROM contests WHERE begin_time < NOW() AND end_time > NOW()'; $cfg['sql']['count_running_contests'] = 'SELECT COUNT(*) AS count FROM contests WHERE begin_time < NOW() AND end_time > NOW() ORDER BY end_time DESC'; $cfg['sql']['past_contests_list'] = 'SELECT * FROM contests WHERE end_time < NOW() ORDER BY end_time DESC'; $cfg['sql']['contest_by_id'] = 'SELECT *, show_time > NOW() AS show_future, begin_time > NOW() AS begin_future, end_time > NOW() AS end_future FROM contests WHERE contest_id = ?'; $cfg['sql']['contest_by_id_safe'] = 'SELECT *, begin_time > NOW() AS begin_future, end_time > NOW() AS end_future ' . 'FROM contests WHERE contest_id = ? AND show_time < NOW()'; $cfg['sql']['del_contest_by_id'] = 'DELETE FROM contests WHERE contest_id = ?'; $cfg['sql']['contests_by_manager'] = 'SELECT * FROM contests WHERE manager = ?'; $cfg['sql']['contest_time'] = 'SELECT UNIX_TIMESTAMP(end_time)-UNIX_TIMESTAMP(begin_time) AS time, '. 'UNIX_TIMESTAMP(end_time)-UNIX_TIMESTAMP() AS remain FROM contests WHERE contest_id = ?'; $cfg['sql']['contest_type'] = 'SELECT ctype FROM contests WHERE contest_id = ?'; #------------------------------------------------------------------------------- # Queries: problems $cfg['sql']['problems_by_contest_id'] = 'SELECT prob_id, cat_id, summary, weight, time_limit, mem_limit '. 'FROM problems WHERE contest_id = ? ORDER BY weight ASC'; $cfg['sql']['problem_by_id'] = 'SELECT prob_id, contest_id, cat_id, summary, weight, time_limit, mem_limit, version FROM problems WHERE prob_id = ? AND contest_id = ?'; $cfg['sql']['problem_content_by_id'] = 'SELECT content FROM problems WHERE prob_id = ? AND contest_id = ?'; $cfg['sql']['del_problem_by_id'] = 'DELETE FROM problems WHERE prob_id = ? AND contest_id = ?'; #------------------------------------------------------------------------------- # Queries: teams $cfg['sql']['team_by_name'] = 'SELECT * FROM teams WHERE name = ? AND contest_id = ?'; $cfg['sql']['count_teams_by_contest_id'] = 'SELECT COUNT(team_id) AS count FROM teams WHERE contest_id = ?'; $cfg['sql']['teams_by_contest_id'] = 'SELECT * FROM teams WHERE contest_id = ? ORDER BY score DESC'; $cfg['sql']['count_last_teams_by_contest_id'] = 'SELECT COUNT(team_id) AS count FROM teams '. 'WHERE contest_id = ? AND UNIX_TIMESTAMP(last_seen)+30*60 > UNIX_TIMESTAMP(NOW())'; $cfg['sql']['team_seen'] = 'UPDATE teams SET last_seen = NOW() WHERE contest_id = ? AND team_id = ?'; $cfg['sql']['standings_by_contest_id'] = 'SELECT teams.team_id, teams.name, teams.college, SUM(solutions.score) AS score FROM teams, solutions WHERE teams.team_id=solutions.team_id AND solutions.contest_id=? AND teams.contest_id=solutions.contest_id GROUP BY solutions.team_id ORDER BY score DESC'; #------------------------------------------------------------------------------- # Queries: members $cfg['sql']['users_by_contest_id'] = 'SELECT * FROM members, teams WHERE contest_id = ?'; $cfg['sql']['user_and_contest'] = 'SELECT * FROM members, teams '. 'WHERE user_id = ? AND members.contest_id = ? AND teams.contest_id=members.contest_id AND members.team_id = teams.team_id'; $cfg['sql']['users_by_team_id'] = 'SELECT handle FROM members, users WHERE members.user_id=users.user_id AND members.contest_id=? AND members.team_id=?'; #------------------------------------------------------------------------------- # Queries: solutions $cfg['sql']['solution_by_id'] = 'SELECT *, UNIX_TIMESTAMP(submit_time)-UNIX_TIMESTAMP(open_time) AS elapsed, UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(open_time) AS elapsed2 '. 'FROM solutions WHERE contest_id = ? AND team_id = ? AND prob_id = ?'; $cfg['sql']['score_by_id'] = 'SELECT score, language '. 'FROM solutions WHERE contest_id = ? AND team_id = ? AND prob_id = ?'; $cfg['sql']['problems_by_team_id'] = 'SELECT prob_id FROM solutions WHERE team_id = ?'; $cfg['sql']['solutions_by_contest_id'] = 'SELECT teams.name, teams.last_seen, solutions.prob_id, weight, solutions.language, solutions.open_time, solutions.submit_time, solutions.submits, solutions.score, solutions.passed FROM solutions, teams, problems '. 'WHERE solutions.contest_id = ? AND teams.contest_id=solutions.contest_id AND solutions.team_id = teams.team_id AND problems.prob_id = solutions.prob_id '. 'ORDER BY weight DESC, submit_time DESC'; $cfg['sql']['open_solution'] = 'INSERT INTO solutions (contest_id, team_id, prob_id, open_time, submits) VALUES (?, ?, ?, NOW(), 0)'; $cfg['sql']['submit_solution'] = 'UPDATE solutions SET submits=submits+1, submit_time=NOW(), language=?, source=?, score=? '. 'WHERE contest_id = ? AND team_id = ? AND prob_id = ?'; $cfg['sql']['first_solution_open_time'] = 'SELECT MAX(UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(open_time)) AS elapsed FROM solutions WHERE contest_id = ? AND team_id = ?'; #------------------------------------------------------------------------------- # Queries: submits $cfg['sql']['submit_by_id'] = 'SELECT * FROM submits WHERE submit_id = ? AND user_id = ?'; $cfg['sql']['submit_by_user'] = 'SELECT * FROM submits WHERE user_id = ?'; $cfg['sql']['pending_submits'] = 'SELECT COUNT(*) AS count FROM submits'; $cfg['sql']['pending_user_submits'] = 'SELECT submit_id, time FROM submits WHERE user_id = ?'; $cfg['sql']['insert_submit'] = 'INSERT INTO submits (contest_id, prob_id, user_id, source, language, mode, time) '. 'values (?, ?, ?, ?, ?, ?, NOW())'; $cfg['sql']['delete_submit'] = 'DELETE FROM submits WHERE submit_id = ? AND user_id = ?'; $cfg['sql']['expire_submits'] = 'DELETE FROM submits WHERE UNIX_TIMESTAMP(time)+? < UNIX_TIMESTAMP(NOW())'; #------------------------------------------------------------------------------- # Queries: drafts $cfg['sql']['draft_by_user'] = 'SELECT * FROM drafts WHERE user_id = ?'; $cfg['sql']['delete_draft_by_user'] = 'DELETE FROM drafts WHERE user_id = ?'; $cfg['sql']['update_draft'] = 'UPDATE drafts SET created = NOW() WHERE user_id = ?'; $cfg['sql']['clean_drafts'] = 'DELETE FROM drafts WHERE UNIX_TIMESTAMP(created)+'. $cfg['draft']['expiry_time'].' < UNIX_TIMESTAMP(NOW())'; #------------------------------------------------------------------------------- # Queries: bulletins $cfg['sql']['bulletin_by_level'] = 'SELECT bulletin.*, users.handle FROM bulletin, users WHERE level = ? AND users.user_id = bulletin.poster_id ORDER BY posted DESC'; $cfg['sql']['bulletin_post'] = 'INSERT INTO bulletin (poster_id, subject, message, posted, level, addbreaks) VALUES (?, ?, ?, NOW(), ?, ?)'; $cfg['sql']['bulletin_by_id'] = 'SELECT * FROM bulletin WHERE post_id = ?'; $cfg['sql']['delete_bulletin_by_id'] = 'DELETE FROM bulletin WHERE post_id = ?'; ?>