Method: Sequel::Dataset#from_self
- Defined in:
- lib/sequel/dataset/query.rb
#from_self(opts = OPTS) ⇒ Object
Returns a dataset selecting from the current dataset. Options:
- :alias
-
Controls the alias of the table
- :column_aliases
-
Also aliases columns, using derived column lists. Only used in conjunction with :alias.
ds = DB[:items].order(:name).select(:id, :name)
# SELECT id,name FROM items ORDER BY name
ds.from_self
# SELECT * FROM (SELECT id, name FROM items ORDER BY name) AS t1
ds.from_self(alias: :foo)
# SELECT * FROM (SELECT id, name FROM items ORDER BY name) AS foo
ds.from_self(alias: :foo, column_aliases: [:c1, :c2])
# SELECT * FROM (SELECT id, name FROM items ORDER BY name) AS foo(c1, c2)
294 295 296 297 298 299 300 301 302 303 304 305 306 |
# File 'lib/sequel/dataset/query.rb', line 294 def from_self(opts=OPTS) fs = {} @opts.keys.each{|k| fs[k] = nil unless non_sql_option?(k)} pr = proc do c = clone(fs).from(opts[:alias] ? as(opts[:alias], opts[:column_aliases]) : self) if cols = _columns c.send(:columns=, cols) end c end opts.empty? ? cached_dataset(:_from_self_ds, &pr) : pr.call end |