code: function (args) {
              args = argsToArray(arguments);
              if (args.length && !this.supportsDistinctOn) {
                  throw new QueryError("DISTICT ON is not supported");
              }
              args = args.map(function (a) {
                  return isString(a) ? new Identifier(a) : a;
              });
              return this.mergeOptions({distinct: args});
          }
docs: Returns a copy of the dataset with the SQL DISTINCT clause.
  The DISTINCT clause is used to remove duplicate rows from the
  output.  If arguments are provided, uses a DISTINCT ON clause,
  in which case it will only be distinct on those columns, instead
  of all returned columns.
  
  @example
  
  DB.from("items").distinct().sqll
  //=> SELECT DISTINCT * FROM items
  DB.from("items").order("id").distinct("id").sql;
  //=> SELECT DISTINCT ON (id) * FROM items ORDER BY id
  
  @throws {patio.QueryError}  If arguments are given and DISTINCT ON is not supported.
  @param {...String|...patio.sql.Identifier} args variable number of arguments used to create
  the DISTINCT ON clause.
  @return {patio.Dataset} a cloned dataset with the DISTINCT/DISTINCT ON clause added.