From 9673735074626a8e3920cc90c0d1c2f18bfffc8e Mon Sep 17 00:00:00 2001
From: Santiago Pastorino <santiago@wyeworks.com>
Date: Fri, 21 Sep 2012 19:42:14 -0300
Subject: start could be a string

Related to 761bc751d31c22e2c2fdae2b4cdd435b68b6d783 and
eb876c4d07130f15be2cac7be968cc393f959c62

Conflicts:

	activerecord/lib/active_record/relation/batches.rb
	activerecord/test/cases/batches_test.rb
---
 activerecord/lib/active_record/relation/batches.rb |  2 +-
 activerecord/test/cases/batches_test.rb            | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

(limited to 'activerecord')

diff --git a/activerecord/lib/active_record/relation/batches.rb b/activerecord/lib/active_record/relation/batches.rb
index 2fd89882ff..e7d916f2da 100644
--- a/activerecord/lib/active_record/relation/batches.rb
+++ b/activerecord/lib/active_record/relation/batches.rb
@@ -59,7 +59,7 @@ module ActiveRecord
         relation = apply_finder_options(finder_options)
       end
 
-      start = options.delete(:start).to_i
+      start = options.delete(:start) || 0
       batch_size = options.delete(:batch_size) || 1000
 
       relation = relation.reorder(batch_order).limit(batch_size)
diff --git a/activerecord/test/cases/batches_test.rb b/activerecord/test/cases/batches_test.rb
index 660098b9ad..392898d080 100644
--- a/activerecord/test/cases/batches_test.rb
+++ b/activerecord/test/cases/batches_test.rb
@@ -136,4 +136,19 @@ class EachTest < ActiveRecord::TestCase
     assert_equal special_posts_ids, posts.map(&:id)
   end
 
+  def test_find_in_batches_should_use_any_column_as_primary_key
+    old_primary_key  = Post.primary_key
+    Post.primary_key = :title
+    title_order_posts = Post.order('title asc')
+    start_title = title_order_posts.second.title
+
+    posts = []
+    Post.find_in_batches(:batch_size => 1, :start => start_title) do |batch|
+      posts.concat(batch)
+    end
+
+    assert_equal title_order_posts[1..-1].map(&:id), posts.map(&:id)
+  ensure
+    Post.primary_key = old_primary_key
+  end
 end
-- 
cgit v1.2.3