code: function (opts) {
              opts = isUndefined(opts) ? {} : opts;
              var fs = {};
              var nonSqlOptions = this._static.NON_SQL_OPTIONS;
              Object.keys(this.__opts).forEach(function (k) {
                  if (nonSqlOptions.indexOf(k) === -1) {
                      fs[k] = null;
                  }
              });
              return this.mergeOptions(fs).from(opts["alias"] ? this.as(opts["alias"]) : this);
          }
docs: Returns a dataset selecting from the current dataset.
  Supplying the alias option controls the alias of the result.
  
  @example
  
  ds = DB.from("items").order("name").select("id", "name")
  //=> SELECT id,name FROM items ORDER BY name
  
  ds.fromSelf().sql;
  //=> SELECT * FROM (SELECT id, name FROM items ORDER BY name) AS t1
  
  ds.fromSelf({alias : "foo"}).sql;
  //=> SELECT * FROM (SELECT id, name FROM items ORDER BY name) AS foo
  
  @param {Object} [opts] options
  @param {String|patio.sql.Identifier} [opts.alias] alias to use
  
  @return {patio.Dataset} a cloned dataset with the FROM clause set as the current dataset.