mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Improve code from 231d7676f7
This commit is contained in:
parent
231d7676f7
commit
f75a6fec29
1 changed files with 5 additions and 7 deletions
|
@ -67,18 +67,16 @@ module ActiveRecord
|
||||||
relation = relation.except(:order).order(batch_order).limit(batch_size)
|
relation = relation.except(:order).order(batch_order).limit(batch_size)
|
||||||
records = relation.where(primary_key.gteq(start)).all
|
records = relation.where(primary_key.gteq(start)).all
|
||||||
|
|
||||||
key_value = self.primary_key.name
|
|
||||||
|
|
||||||
while records.any?
|
while records.any?
|
||||||
yield records
|
yield records
|
||||||
|
|
||||||
break if records.size < batch_size
|
break if records.size < batch_size
|
||||||
|
|
||||||
last_value = records.last.send(key_value)
|
if primary_key_offset = records.last.id
|
||||||
|
records = relation.where(primary_key.gt(primary_key_offset)).all
|
||||||
raise "You must include the primary key if you define a select" unless last_value.present?
|
else
|
||||||
|
raise "Primary key not included in the custom select clause"
|
||||||
records = relation.where(primary_key.gt(last_value)).all
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue