void FetchGroup::operator() (pqxx::transaction<> &t)
{
- pqxx::result res( t.exec("SELECT round,parallel,position,playmode,difficulty,songnumber,player,nick,song,title,artist,chosen,score FROM roundparticipation NATURAL JOIN players NATURAL JOIN scores NATURAL LEFT JOIN songs WHERE "
+ // note: this _will_ break if any song has more than one short title!
+ pqxx::result res( t.exec("SELECT round,parallel,position,playmode,difficulty,songnumber,player,nick,song,title,COALESCE(shorttitle,title) AS shorttitle,artist,chosen,score FROM roundparticipation NATURAL JOIN players NATURAL JOIN scores NATURAL LEFT JOIN songs NATURAL LEFT JOIN songshorttitles WHERE "
"tournament=" + pqxx::to_string(tournament) + " AND " +
"round=" + pqxx::to_string(round) + " AND " +
"parallel=" + pqxx::to_string(parallel) + " " +
so.id = -1;
} else {
so.id = i["song"].as(so.id);
- so.title = i["song"].as(so.title);
- so.artist = i["song"].as(so.artist);
+ so.title = i["title"].as(so.title);
+ so.artist = i["artist"].as(so.artist);
+ so.short_title = i["shorttitle"].as(so.short_title);
}
sc.song = so;
sc.score = i["score"].as(sc.score);
}
- std::printf("score: %u\n", sc.score);
-
curr_group.players[curr_group.players.size() - 1].scores.push_back(sc);
}
}