Sha256: 5dea1977f2e783355cfba6bdcf11badfb5b494a805eea48d4dff403f18317a88

Contents?: true

Size: 931 Bytes

Versions: 2

Compression:

Stored size: 931 Bytes

Contents

# frozen_string_literal: true

module RGeo
  module ActiveRecord
    ##
    # Extend rgeo-activerecord visitors to use PostGIS specific functionality
    module SpatialToPostGISSql
      def visit_in_spatial_context(node, collector)
        # Use ST_GeomFromEWKT for EWKT geometries
        if node.is_a?(String) && node =~ /SRID=[\d+]{0,};/
          collector << "#{st_func('ST_GeomFromEWKT')}(#{quote(node)})"
        else
          super(node, collector)
        end
      end
    end
  end
end
RGeo::ActiveRecord::SpatialToSql.prepend RGeo::ActiveRecord::SpatialToPostGISSql

module Arel # :nodoc:
  module Visitors # :nodoc:
    class CockroachDB < PostgreSQL  # :nodoc:
      include RGeo::ActiveRecord::SpatialToSql

      def visit_Arel_Nodes_JoinSource(o, collector)
        super
        if o.aost
          collector << " AS OF SYSTEM TIME '#{o.aost.iso8601}'"
        end
        collector
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
activerecord-cockroachdb-adapter-7.1.1 lib/active_record/connection_adapters/cockroachdb/arel_tosql.rb
activerecord-cockroachdb-adapter-7.1.0 lib/active_record/connection_adapters/cockroachdb/arel_tosql.rb