Вы не можете.
В части часто задаваемых вопросов говорится, что вы не можете получить доступ к строке 1000 запроса, и увеличение «OFFSET» приведет к более короткому набору результатов,
т.е.: OFFSET 999 -> 1 результат возвращается.
Из Википедии:
App Engine ограничивает максимальные строки
возвращается от лица получить до 1000
строк на вызов хранилища данных. Большинство веб
приложения базы данных используют пейджинг и
кеширование, а значит и не требует этого
много данных одновременно, так что это
не проблема в большинстве сценариев.
Нужно] Если приложению нужно больше
чем 1000 записей за операцию, это
может использовать собственное программное обеспечение на стороне клиента
или страница Ajax для выполнения
операция на неограниченном количестве
строки.
С http://code.google.com/appengine/docs/whatisgoogleappengine.html
Другим примером лимита обслуживания является
количество результатов, возвращаемых
запрос. Запрос может вернуть максимум
1000 результатов. Запросы, которые бы
вернуть больше результатов только вернуть
максимум. В этом случае запрос, который
выполняет такой запрос вряд ли
вернуть запрос до истечения времени ожидания,
но предел для сохранения
ресурсы в хранилище данных.
С http://code.google.com/appengine/docs/datastore/gqlreference.html
Примечание: предложение LIMIT имеет максимум
1000. Если указан предел, превышающий максимальный, максимальный
используемый. Этот же максимум относится к
Метод fetch () класса GqlQuery.
Примечание: как параметр смещения для
метод fetch (), Смещение в GQL
Строка запроса не уменьшает
количество объектов, извлеченных из
хранилище данных. Это влияет только на которые
результаты возвращаются fetch ()
метод. Запрос со смещением имеет
характеристики производительности, которые
линейно соответствовать смещению
размер.
С http://code.google.com/appengine/docs/datastore/queryclass.html
Управление аргументами limit и offset
сколько результатов получено из
хранилище данных, а сколько возвращается
методом fetch ():
Хранилище данных получает смещение + ограничение результатов для приложения. Результаты первого смещения не пропущены самим хранилищем данных.
Метод fetch () пропускает результаты первого смещения, а затем возвращает остаток (результаты ограничения).
Запрос имеет характеристики производительности, которые соответствуют
линейно с величиной смещения плюс предел.
Что это значит
Если у вас есть отдельный запрос, нет способа запросить что-либо за пределами диапазона 0-1000.
Увеличение смещения просто поднимет 0, поэтому
LIMIT 1000 OFFSET 0
Вернет 1000 строк,
и
LIMIT 1000 OFFSET 1000
Возвращает 0 строк , таким образом, делая невозможным, с одним синтаксисом запроса, получить 2000 результатов либо вручную, либо с помощью API.
Единственное вероятное исключение
Для создания числового индекса в таблице, то есть:
SELECT * FROM Foo WHERE ID > 0 AND ID < 1000
SELECT * FROM Foo WHERE ID >= 1000 AND ID < 2000
Если ваши данные или запрос не могут иметь жестко закодированный идентификатор «ID», то вам не повезло