class Arel::Visitors::Oracle12

Private Instance Methods

visit_Arel_Nodes_Except(o, collector) click to toggle source
# File lib/arel/visitors/oracle12.rb, line 34
def visit_Arel_Nodes_Except o, collector
  collector << "( "
  collector = infix_value o, collector, " MINUS "
  collector << " )"
end
visit_Arel_Nodes_Limit(o, collector) click to toggle source
# File lib/arel/visitors/oracle12.rb, line 22
def visit_Arel_Nodes_Limit o, collector
  collector << "FETCH FIRST "
  collector = visit o.expr, collector
  collector << " ROWS ONLY"
end
visit_Arel_Nodes_Offset(o, collector) click to toggle source
# File lib/arel/visitors/oracle12.rb, line 28
def visit_Arel_Nodes_Offset o, collector
  collector << "OFFSET "
  visit o.expr, collector
  collector << " ROWS"
end
visit_Arel_Nodes_SelectOptions(o, collector) click to toggle source
# File lib/arel/visitors/oracle12.rb, line 16
def visit_Arel_Nodes_SelectOptions o, collector
  collector = maybe_visit o.offset, collector
  collector = maybe_visit o.limit, collector
  collector = maybe_visit o.lock, collector
end
visit_Arel_Nodes_SelectStatement(o, collector) click to toggle source
# File lib/arel/visitors/oracle12.rb, line 6
def visit_Arel_Nodes_SelectStatement o, collector
  # Oracle does not allow LIMIT clause with select for update
  if o.limit && o.lock
    o = o.dup
    o.limit = []
  end

  super
end
visit_Arel_Nodes_UpdateStatement(o, collector) click to toggle source
# File lib/arel/visitors/oracle12.rb, line 40
def visit_Arel_Nodes_UpdateStatement o, collector
  # Oracle does not allow ORDER BY/LIMIT in UPDATEs.
  if o.orders.any? && o.limit.nil?
    # However, there is no harm in silently eating the ORDER BY clause if no LIMIT has been provided,
    # otherwise let the user deal with the error
    o = o.dup
    o.orders = []
  end

  super
end