def self.each_table_page(table, records_per_page=1000)
total_count = table_record_count(table)
pages = (total_count.to_f / records_per_page).ceil - 1
keys = sort_keys(table)
boolean_columns = Utils.boolean_columns(table)
(0..pages).to_a.each do |page|
query = Arel::Table.new(table).order(*keys).skip(records_per_page*page).take(records_per_page).project(Arel.sql('*'))
records = ActiveRecord::Base.connection.select_all(query.to_sql)
records = Utils.convert_booleans(records, boolean_columns)
yield records
end
end