module Predicate::In

Public Instance Methods

subquery() click to toggle source
# File lib/bmg/sql/ext/predicate/in.rb, line 8
def subquery
  subquery? ? last : nil
end
subquery?() click to toggle source
# File lib/bmg/sql/ext/predicate/in.rb, line 4
def subquery?
  Sql::Expr === last
end
to_sql(buffer, dialect) click to toggle source
# File lib/bmg/sql/ext/predicate/in.rb, line 12
def to_sql(buffer, dialect)
  identifier.to_sql(buffer, dialect)
  buffer << Sql::Expr::SPACE << Sql::Expr::IN << Sql::Expr::SPACE
  if subquery?
    values.to_sql(buffer, dialect)
  else
    buffer << Sql::Expr::LEFT_PARENTHESE
    values.each_with_index do |val,index|
      buffer << Sql::Expr::COMMA << Sql::Expr::SPACE unless index==0
      to_sql_literal(buffer, val)
    end
    buffer << Sql::Expr::RIGHT_PARENTHESE
  end
  buffer
end