// afterConnect creates the prepared statements that this application uses func afterConnect(conn *pgx.Connection) (err error) { err = conn.Prepare("getPlayers", ` select coalesce(array_to_json(array_agg(row_to_json(t))), '[]'::json) from ( select player_id, name from player order by name ) t `) if err != nil { return } err = conn.Prepare("createPlayer", ` insert into player(name) values($1) returning player_id `) if err != nil { return } err = conn.Prepare("deletePlayer", ` delete from player where player_id=$1 `) if err != nil { return } err = conn.Prepare("getGames", ` select coalesce(array_to_json(array_agg(row_to_json(g))), '[]'::json) from ( select game_id, date, length, ( select coalesce(array_to_json(array_agg(row_to_json(t))), '[]'::json) from ( select player_id, name, level, effective_level, winner from game_player join player using(player_id) where game.game_id=game_player.game_id ) t ) players from game ) g `) if err != nil { return } err = conn.Prepare("deleteGame", ` delete from game where game_id=$1 `) if err != nil { return } err = conn.Prepare("getStandings", ` select coalesce(array_to_json(array_agg(row_to_json(t))), '[]'::json) from ( select * from player_summary order by num_points desc, name asc ) t `) if err != nil { return } return }