From 4a2415737f793da56657dd601e95e474a073da22 Mon Sep 17 00:00:00 2001
From: Alex Reisner <alex@alexreisner.com>
Date: Thu, 14 Oct 2010 23:13:51 -0400
Subject: [PATCH] Restore bounding box conditions.

This fixes SQLite near methods and speeds up MySQL and Postgres.
---
 lib/geocoder.rb | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/geocoder.rb b/lib/geocoder.rb
index d2e4eeef..d1157aa6 100644
--- a/lib/geocoder.rb
+++ b/lib/geocoder.rb
@@ -110,12 +110,16 @@ module Geocoder
       conditions = \
         ["#{lat_attr} BETWEEN ? AND ? AND #{lon_attr} BETWEEN ? AND ?"] +
         coordinate_bounds(latitude, longitude, radius)
+      if obj = options[:exclude]
+        conditions[0] << " AND id != ?"
+        conditions << obj.id
+      end
       {
         :group  => columns.map{ |c| c.name}.join(','),
         :order  => options[:order],
         :limit  => options[:limit],
         :offset => options[:offset],
-        :conditions => (obj = options[:exclude]) ? ["id != ?", obj.id] : nil
+        :conditions => conditions
       }
     end
 
-- 
GitLab