From 1fe561faa91fa1d2fc02fc465956f48579b402d5 Mon Sep 17 00:00:00 2001 From: Jev Zelenkov <jev.zelenkov@gmail.com> Date: Thu, 17 Apr 2014 00:28:10 +0200 Subject: [PATCH] [2nd try] fixes postgres "unknown OID" warnings --- lib/geocoder/stores/active_record.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/geocoder/stores/active_record.rb b/lib/geocoder/stores/active_record.rb index 38d0abc0..07f29c6f 100644 --- a/lib/geocoder/stores/active_record.rb +++ b/lib/geocoder/stores/active_record.rb @@ -196,11 +196,19 @@ module Geocoder::Store end if distance clause += ", " unless clause.empty? - clause += "#{distance} AS #{distance_column}" + if using_postgresql? + clause += "'#{distance}'::character(255) AS #{distance_column}" + else + clause += "#{distance} AS #{distance_column}" + end end if bearing clause += ", " unless clause.empty? - clause += "#{bearing} AS #{bearing_column}" + if using_postgresql? + clause += "'#{bearing}'::character(255) AS #{bearing_column}" + else + clause += "#{bearing} AS #{bearing_column}" + end end clause end @@ -222,6 +230,10 @@ 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