class ActiveRecord::ConnectionAdapters::CockroachDB::SpatialColumnInfo
Public Class Methods
new(adapter, table_name)
click to toggle source
# File lib/active_record/connection_adapters/cockroachdb/spatial_column_info.rb, line 5 def initialize(adapter, table_name) @adapter = adapter @table_name = table_name end
Public Instance Methods
all()
click to toggle source
# File lib/active_record/connection_adapters/cockroachdb/spatial_column_info.rb, line 10 def all info = @adapter.query( "SELECT f_geometry_column,coord_dimension,srid,type FROM geometry_columns WHERE f_table_name='#{@table_name}'" ) result = {} info.each do |row| name = row[0] type = row[3] dimension = row[1].to_i has_m = !!(type =~ /m$/i) type.sub!(/m$/, '') has_z = dimension > 3 || dimension == 3 && !has_m result[name] = { dimension: dimension, has_m: has_m, has_z: has_z, name: name, srid: row[2].to_i, type: type } end result end
get(column_name, type)
click to toggle source
do not query the database for non-spatial columns/tables
# File lib/active_record/connection_adapters/cockroachdb/spatial_column_info.rb, line 35 def get(column_name, type) return unless CockroachDBAdapter.spatial_column_options(type.to_sym) @spatial_column_info ||= all @spatial_column_info[column_name] end