code: public Query adding( Column... columns ) {
          List<Column> newColumns = null;
          if (this.columns != null) {
              newColumns = new ArrayList<Column>(this.columns);
              for (Column column : columns) {
                  newColumns.add(column);
              }
          } else {
              newColumns = Arrays.asList(columns);
          }
          return new Query(source, constraint, orderings(), newColumns, getLimits(), distinct);
      }
docs: Create a copy of this query, but that returns results that include the columns specified by this query as well as the
  supplied columns.
  
  @param columns the additional columns that should be included in the the results; may not be null
  @return the copy of the query returning the supplied result columns; never null