module Bmg::Sql::SelectList
Public Instance Methods
desaliaser(for_predicate = false)
click to toggle source
# File lib/bmg/sql/nodes/select_list.rb, line 6 def desaliaser(for_predicate = false) ->(a){ item = sexpr_body.find{|item| item.as_name.to_s == a.to_s } return nil unless left = item && item.left return left unless for_predicate case left.first when :literal Predicate::Grammar.sexpr([:literal, left.last]) when :qualified_name Predicate::Grammar.sexpr([:qualified_identifier, left.qualifier.to_sym, left.as_name.to_sym]) else raise "Unexpected select_item `#{left}`" end } end
has_computed_attributes?()
click to toggle source
# File lib/bmg/sql/nodes/select_list.rb, line 26 def has_computed_attributes? sexpr_body.any?{|item| item.is_computed? } end
is_table_dee?()
click to toggle source
# File lib/bmg/sql/nodes/select_list.rb, line 22 def is_table_dee? Builder::IS_TABLE_DEE == self end
knows?(as_name)
click to toggle source
# File lib/bmg/sql/nodes/select_list.rb, line 30 def knows?(as_name) find_child{|child| child.as_name == as_name } end
to_attr_list()
click to toggle source
# File lib/bmg/sql/nodes/select_list.rb, line 34 def to_attr_list sexpr_body.map{|a| a.as_name.to_sym } end
to_sql(buffer, dialect)
click to toggle source
# File lib/bmg/sql/nodes/select_list.rb, line 38 def to_sql(buffer, dialect) sexpr_body.each_with_index do |item,index| buffer << COMMA << SPACE unless index == 0 item.to_sql(buffer, dialect) end buffer end