module Sequel::Dataset::DatasetSourceAlias
Public Instance Methods
from(*source, &block)
click to toggle source
Preprocess the list of sources and attempt to alias any datasets in the sources to the first source of the respective dataset.
Calls superclass method
# File lib/sequel/extensions/dataset_source_alias.rb 50 def from(*source, &block) 51 virtual_row_columns(source, block) 52 table_aliases = [] 53 source = source.map do |s| 54 case s 55 when Dataset 56 s = dataset_source_alias_expression(s, table_aliases) 57 when Symbol, String, SQL::AliasedExpression, SQL::Identifier, SQL::QualifiedIdentifier 58 table_aliases << alias_symbol(s) 59 end 60 s 61 end 62 super(*source, &nil) 63 end
join_table(type, table, expr=nil, options=OPTS)
click to toggle source
If a Dataset
is given as the table argument, attempt to alias it to its source.
Calls superclass method
# File lib/sequel/extensions/dataset_source_alias.rb 67 def join_table(type, table, expr=nil, options=OPTS) 68 if table.is_a?(Dataset) && !options[:table_alias] 69 table = dataset_source_alias_expression(table) 70 end 71 super 72 end
Private Instance Methods
dataset_source_alias_expression(ds, table_aliases=[])
click to toggle source
Attempt to automatically alias the given dataset to its source. If the dataset cannot be automatically aliased to its source, return it unchanged. The table_aliases argument is a list of already used alias symbols, which will not be used as the alias.
# File lib/sequel/extensions/dataset_source_alias.rb 80 def dataset_source_alias_expression(ds, table_aliases=[]) 81 base = ds.first_source if ds.opts[:from] 82 case base 83 when Symbol, String, SQL::AliasedExpression, SQL::Identifier, SQL::QualifiedIdentifier 84 aliaz = unused_table_alias(base, table_aliases) 85 table_aliases << aliaz 86 ds.as(aliaz) 87 else 88 ds 89 end 90 end