ctfscoreboard
ctfscoreboard copied to clipboard
/api/categories appears to do a N+1 based on team count
Debug statements:
2016-06-09 09:10:59,794 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,794 INFO sqlalchemy.engine.base.Engine (103835647613876, 4)
2016-06-09 09:10:59,797 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,797 INFO sqlalchemy.engine.base.Engine (262102324824167, 4)
2016-06-09 09:10:59,800 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,800 INFO sqlalchemy.engine.base.Engine (262102324824167, 4)
2016-06-09 09:10:59,804 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,804 INFO sqlalchemy.engine.base.Engine (262102324824167, 4)
2016-06-09 09:10:59,809 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,809 INFO sqlalchemy.engine.base.Engine (253824321431412, 4)
2016-06-09 09:10:59,812 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,812 INFO sqlalchemy.engine.base.Engine (253824321431412, 4)
2016-06-09 09:10:59,817 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,817 INFO sqlalchemy.engine.base.Engine (253824321431412, 4)
2016-06-09 09:10:59,819 INFO sqlalchemy.engine.base.Engine SELECT team.tid AS team_tid, team.name AS team_name, team.score AS team_score, team.last_solve AS team_last_solve
FROM team
WHERE team.tid = ?
2016-06-09 09:10:59,819 INFO sqlalchemy.engine.base.Engine (2,)
2016-06-09 09:10:59,821 INFO sqlalchemy.engine.base.Engine SELECT team.tid AS team_tid, team.name AS team_name, team.score AS team_score, team.last_solve AS team_last_solve
FROM team
WHERE team.tid = ?
2016-06-09 09:10:59,821 INFO sqlalchemy.engine.base.Engine (7,)
2016-06-09 09:10:59,822 INFO sqlalchemy.engine.base.Engine SELECT team.tid AS team_tid, team.name AS team_name, team.score AS team_score, team.last_solve AS team_last_solve
FROM team
WHERE team.tid = ?
INFO in context [.../ctfscoreboard/scoreboard/context.py:121]: Request issued 22 queries.
This seems new. I'm pretty sure it's due to 58d9b4f, specifically because /api/categories reuses the fields from the Challenge entity here: https://github.com/google/ctfscoreboard/commit/58d9b4f969db85a6a11be8d894843eff0da499f3?diff=split#diff-dca05d1a74f56abe283172cf3ccf470dL553