X-Git-Url: https://git.sesse.net/?p=ccbs;a=blobdiff_plain;f=bigscreen%2Ffetch_max_score_for_players.cpp;h=0b41055cb0f51b064e7b1ed3969156e10fc063bb;hp=3aa66b7837364ec9e12d6c5d441ffc5a6e9da3ee;hb=23a9b9ce42cd6a8c5752b217bccb581425267fdb;hpb=bf9387900ec73b0703128d8d2aa11996509006b8 diff --git a/bigscreen/fetch_max_score_for_players.cpp b/bigscreen/fetch_max_score_for_players.cpp index 3aa66b7..0b41055 100644 --- a/bigscreen/fetch_max_score_for_players.cpp +++ b/bigscreen/fetch_max_score_for_players.cpp @@ -7,28 +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 chosen='f'" - " )" - " 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) + " )" - " )" - " AND playmode='single'" - " 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;