From 2d3f5f14a8ff055dacedcaf682672565e7297d0f Mon Sep 17 00:00:00 2001 From: Jev Zelenkov <jev.zelenkov@gmail.com> Date: Thu, 3 Apr 2014 04:39:03 +0200 Subject: [PATCH] fixes postgres "unknown OID" warnings rails ActiveModel fix: https://github.com/rails/rails/pull/10498 --- lib/geocoder/stores/active_record.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/geocoder/stores/active_record.rb b/lib/geocoder/stores/active_record.rb index 38d0abc0..da1e0585 100644 --- a/lib/geocoder/stores/active_record.rb +++ b/lib/geocoder/stores/active_record.rb @@ -194,13 +194,16 @@ module Geocoder::Store else clause = (columns || full_column_name("*")) end + + identifierType = using_postgresql? "::character(255)" : "" + if distance clause += ", " unless clause.empty? - clause += "#{distance} AS #{distance_column}" + clause += "'#{distance}'#{identifierType} AS #{distance_column}" end if bearing clause += ", " unless clause.empty? - clause += "#{bearing} AS #{bearing_column}" + clause += "'#{bearing}'#{identifierType} AS #{bearing_column}" end clause end @@ -222,6 +225,11 @@ module Geocoder::Store connection.adapter_name.match(/sqlite/i) end + def using_postgresql? + connection.adapter_name.match(/postgres/i) + end + + ## # Value which can be passed to where() to produce no results. # -- GitLab