code: public QueryBuilder select( String... columnNames ) {
          for (String expression : columnNames) {
              columns.add(column(expression));
          }
          return this;
      }
docs: Add to the select clause the columns with the supplied names. Each column name has the form "
  <code>[tableName.]columnName</code>", where " <code>tableName</code>" must be a valid table name or alias. If the table
  name/alias is not specified, then there is expected to be a single FROM clause with a single named selector.
  
  @param columnNames the column expressions; may not be null
  @return this builder object, for convenience in method chaining
  @throws IllegalArgumentException if the table's name/alias is not specified, but the query has more than one named source