From 3e43ea377f2e8c72a463ba17d07c0d788eb8ed6d Mon Sep 17 00:00:00 2001
From: Alex Reisner <alex@alexreisner.com>
Date: Wed, 17 Oct 2012 12:25:30 -0400
Subject: [PATCH] Add special :id_only value for :select option.

This allows selecting only the id column for cases where a single column
result is required (ie, a subquery used as an operand to the 'IN'
operator). This addresses issue #314.
---
 lib/geocoder/stores/active_record.rb | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/geocoder/stores/active_record.rb b/lib/geocoder/stores/active_record.rb
index 985a0759..b49a4a97 100644
--- a/lib/geocoder/stores/active_record.rb
+++ b/lib/geocoder/stores/active_record.rb
@@ -157,8 +157,10 @@ module Geocoder::Store
       ##
       # Generate the SELECT clause.
       #
-      def select_clause(columns, distance, bearing = nil)
-        if columns == :geo_only
+      def select_clause(columns, distance = nil, bearing = nil)
+        if columns == :id_only
+          return full_column_name(primary_key)
+        elsif columns == :geo_only
           clause = ""
         else
           clause = (columns || full_column_name("*")) + ", "
-- 
GitLab