class Arel::Visitors::Firebird

Private Instance Methods

visit_Arel_Nodes_Limit(o, collector) click to toggle source
# File lib/arel/visitors/firebird.rb, line 62
def visit_Arel_Nodes_Limit(o, collector)
  collector << 'FIRST '
  visit o.expr, collector
end
visit_Arel_Nodes_Offset(o, collector) click to toggle source
# File lib/arel/visitors/firebird.rb, line 67
def visit_Arel_Nodes_Offset(o, collector)
  collector << 'SKIP '
  visit o.expr, collector
end
visit_Arel_Nodes_SelectCore(o, collector, select_statement) click to toggle source
# File lib/arel/visitors/firebird.rb, line 14
def visit_Arel_Nodes_SelectCore(o, collector, select_statement)
  collector << 'SELECT'

  visit_Arel_Nodes_SelectOptions(select_statement, collector)

  collector = collect_optimizer_hints(o, collector)
  collector = maybe_visit o.set_quantifier, collector

  collect_nodes_for o.projections, collector, ' '

  if o.source && !o.source.empty?
    collector << ' FROM '
    collector = visit o.source, collector
  end

  collect_nodes_for o.wheres, collector, ' WHERE ', ' AND '
  collect_nodes_for o.groups, collector, ' GROUP BY '
  unless o.havings.empty?
    collector << ' HAVING '
    inject_join o.havings, collector, ' AND '
  end
  collect_nodes_for o.windows, collector, ' WINDOW '

  collector
end
visit_Arel_Nodes_SelectStatement(o, collector) click to toggle source
# File lib/arel/visitors/firebird.rb, line 40
def visit_Arel_Nodes_SelectStatement o, collector
  if o.with
    collector = visit o.with, collector
    collector << ' '
  end

  collector = o.cores.inject(collector) { |c,x|
    visit_Arel_Nodes_SelectCore(x, c, o)
  }

  unless o.orders.empty?
    collector << ' ORDER BY '
    len = o.orders.length - 1
    o.orders.each_with_index { |x, i|
      collector = visit(x, collector)
      collector << ', ' unless len == i
    }
  end

  collector
end
visit_Arel_Nodes_Union(o, collector) click to toggle source
# File lib/arel/visitors/firebird.rb, line 79
def visit_Arel_Nodes_Union o, collector
  infix_value(o, collector, ' UNION ')
end
visit_Arel_Nodes_UnionAll(o, collector) click to toggle source
# File lib/arel/visitors/firebird.rb, line 83
def visit_Arel_Nodes_UnionAll o, collector
  infix_value(o, collector, ' UNION ALL ')
end
visit_Arel_SelectManager(o, collector) click to toggle source
# File lib/arel/visitors/firebird.rb, line 72
def visit_Arel_SelectManager o, collector
  return visit(o.ast, collector) if o.parentheses_ignored

  collector << '('
  visit(o.ast, collector) << ')'
end