Chooses the SQL columns and result type to decode.
Query<S, F> select<S>(Selection<S> Function(F) selection) => Query.internal(database, queryFields, queryState, selection(queryFields));