X-Git-Url: https://git.sesse.net/?p=ccbs;a=blobdiff_plain;f=bigscreen%2Ffetch_max_score_for_players.cpp;h=0b41055cb0f51b064e7b1ed3969156e10fc063bb;hp=3a89541aa65a19f50f79145e7ea4cf785eae5ebd;hb=6bdf86462be42eda23d9b1f9b08fa1f6951486f6;hpb=33798d738eb88b893f21818275c2f0f4b7f7562e diff --git a/bigscreen/fetch_max_score_for_players.cpp b/bigscreen/fetch_max_score_for_players.cpp index 3a89541..0b41055 100644 --- a/bigscreen/fetch_max_score_for_players.cpp +++ b/bigscreen/fetch_max_score_for_players.cpp @@ -7,27 +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) + " )" - " )" - " 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;