Sha256: 778471cc685bdc536c1309143c0b9840ca36ce3190201cbaceb4c7e84806b1a3

Contents?: true

Size: 662 Bytes

Versions: 5

Compression:

Stored size: 662 Bytes

Contents

require 'arel/visitors/compat'

module Arel
  module Visitors
    class Firebird < Arel::Visitors::ToSql

      def visit_Arel_Nodes_SelectStatement o, a = nil
        lim_off = [
          ("FIRST #{do_visit o.limit.expr, a}" if o.limit),
          ("SKIP #{do_visit o.offset.expr, a}" if o.offset)
        ].compact.join(' ').strip

        sql = [
         o.cores.map { |x| visit_Arel_Nodes_SelectCore x }.join,
         ("ORDER BY #{o.orders.map { |x| do_visit x, a }.join(', ')}" unless o.orders.empty?),
        ].compact.join ' '

        sql.sub!(/\A(\s*SELECT\s)/i, '\&' + lim_off + ' ') unless lim_off.empty?

        sql
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
activerecord-jdbc-adapter-1.3.3 lib/arel/visitors/firebird.rb
activerecord-jdbc-adapter-1.3.2 lib/arel/visitors/firebird.rb
activerecord-jdbc-adapter-1.3.1 lib/arel/visitors/firebird.rb
activerecord-jdbc-adapter-1.3.0 lib/arel/visitors/firebird.rb
activerecord-jdbc-adapter-1.3.0.rc1 lib/arel/visitors/firebird.rb