Я извлекаю строки из базы данных PostgreSQL, используя объект OdbcConnection
и OdbcDataAdapter
.
Запрос, переданный в OdbcDataAdapter: "SELECT * FROM schema.table OFFSET 100000 LIMIT 100000
"
Смещение и предел хранятся в переменной, потому что они используются для обработки строк партиями по 100 000. Но во время выполнения это их ценность. Когда я запускаю этот запрос в SQL, он возвращает 100 000 строк, как и ожидалось - используя смещение правильно. Однако, когда вызывается OdbcDataAdapter.Fill(dt)
, количество строк на dt равно 200 000 - несмотря на то, что в запросе находится ограничение 100 000 !!!!
Эта проблема продолжается, поскольку программа выполняет итерацию с увеличением числа строк на каждый раз смещением. Поэтому, когда смещение составляет 300 000, количество строк равно 400 000. Я не могу повторить это поведение в SQL.
Есть идеи, что может вызвать это?