Я знаю, что я очень близок к тому, чтобы этот код работал, но должен пропустить что-то простое.Sequel :: Модель paginate/each_page возвращает только первую страницу данных
У меня есть серия таблиц teradata и oracle, которые я абстрагировал, используя сиквел :: model. Ive загрузило расширение pagination в базу данных. Я могу получить возвращаемый набор данных, но независимо от того, что я делаю, я не могу заставить его дать мне ничего, кроме первой страницы.
Вот пример того, как Ive абстрагировал таблицы.
module MyDB
class MyTable< Sequel::Model(tera_db["#{$env[:my_db]}__my_table".to_sym])
@factory_name = :my_factory
set_primary_key [:my_primary_key]
@typecast_on_assignment = false
end
end
Вот как Ive реализован некоторый тестовый код вокруг each_page
MyDB::MyTable.order(:my_primary_key).each_page(1000) do |page|
p page.current_page_record_count
p page.count
p page.first
end
Есть 87,675 записей в наборе данных. Последние две итерации Выход из этого цикла являются:
значения = {: ключ1 => 12345,: ключ2 => 14,58,: ключ3 => 155,44}
значения = {: ключ1 => 12345,: ключ2 => 14,58,: ключ3 => 155,44}
Итак ... создается необходимое количество страниц. И исходное количество вычисленных записей правильное. Но когда я пытаюсь получить фактические значения на странице, он получает только записи с первой страницы, включая количество записей.
Что мне не хватает?
Спасибо Джереми ... Конечной целью моей попытки в с помощью разбивки на страницы было возможность прокручивать большие массивы данных, не загружая их сразу в память. Поскольку я могу это сделать, просто используя .each в регулярном наборе данных, мне не нужно использовать пейджинг. Я согласен, что это, вероятно, проблема с адаптером Teradata. –