X-Git-Url: https://git.sesse.net/?p=ccbs;a=blobdiff_plain;f=bigscreen%2Ffetch_max_score_for_players.cpp;h=0b41055cb0f51b064e7b1ed3969156e10fc063bb;hp=9cc9b2ac71cc3f69dd6c6a8c1af5c4b8d4026b26;hb=6bdf86462be42eda23d9b1f9b08fa1f6951486f6;hpb=8963fce7337a09bdcfea051a81c0c3d9281acd6e diff --git a/bigscreen/fetch_max_score_for_players.cpp b/bigscreen/fetch_max_score_for_players.cpp index 9cc9b2a..0b41055 100644 --- a/bigscreen/fetch_max_score_for_players.cpp +++ b/bigscreen/fetch_max_score_for_players.cpp @@ -7,26 +7,9 @@ void FetchMaxScoreForPlayers::operator() (pqxx::transaction<> &t) { scores->erase(scores->begin(), scores->end()); - pqxx::result res( t.exec( - "SELECT player," - " (" - " SELECT feetrating" - " FROM songratings" - " WHERE machine=( SELECT machine FROM tournaments WHERE tournament=" + pqxx::to_string(tournament) + " ) " // only find songs on the machine we use - " AND song NOT IN (" // not a song that has been in elimination or seeding - " SELECT song FROM scores " - " WHERE tournament=" + pqxx::to_string(tournament) + - " AND song IS NOT NULL" - " AND parallel=0" - " )" - " AND (player,song) NOT IN (" // not a song the player has chosen before, or is a random song in this round - " SELECT player,song FROM scores" - " WHERE tournament=" + pqxx::to_string(tournament) + - " AND song IS NOT NULL" + - " AND ( chosen='t' OR round=" + pqxx::to_string(round) + " )" - " )" - " ORDER BY feetrating DESC LIMIT 1" - " ) * 1000 AS max_score FROM tournamentparticipation") ); + pqxx::result res( t.exec("SELECT * FROM get_max_score_for_players(" + + pqxx::to_string(tournament) + ", " + pqxx::to_string(round) + + ", 'single')") ); for (pqxx::result::const_iterator i = res.begin(); i != res.end(); ++i) { unsigned player, max_score;