-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Курсоры #186
Comments
А как именно хочется их использовать? Просто запросы или что б прям критерия с ними умела работать? |
Ещё один вопрос по postgresql - курсоры разве не относится только к PL/pgSQL? (А в mysql, кстати, к процедурам) |
Сейчас прототип выглядит достаточно просто. Добавил к критерии метод getCursor(), который возвращает класс Cursor. Соответственно должны быть методы типа getNext (возвращает объект) и getNextRow (возвращает массив). Нужна мне эту штуковина для перебора данных в больших таблицах, чтобы избавиться от множества select'ов с limit и offset.
В PostgreSQL вполне себе работает вне процедур. Единственная особенность - работает только внутри транзакции. Собственно приведенные в первом посте запросы как раз взяты из моей проверки постгреса. И еще один момент. Пока реализовал совсем в простом виде курсор для постгреса - 250 тысяч объектов из БД пробегает где-то за минуту. Кстати тест я проводил в виртуалке на ноуте. |
странно, у меня про "open" postgres сказал что не знает такого. |
Ай, ошибочка. OPEN нужно только при работе внутри процедуры. В случае работы из php DECLARE сразу открывает курсор на чтение. |
Коллеги, у меня появилась необходимость последовательно читать из БД огромное количество объектов. Для этого хотелось бы использовать курсоры, которых у нас в onPHP, к сожалению, нет.
В связи с этим я решил добавить их поддержку в наш любимый фреймфорк. В PostgreSQL и MySQL они существуют, а базовое использование реализованы практически идентично:
http://www.postgresql.org/docs/9.2/static/plpgsql-cursors.html
http://dev.mysql.com/doc/refman/5.6/en/cursors.html
Использование курсов подразумевает исполнение следующих SQL-команд:
Как лучше реализовать выполнение таких запросов в рамках нашего фремворка?
И еще один вопрос. MySQL поддерживает только описанные выше 4 команды, а PostgreSQL поддерживает еще достаточно большой спектр возможностей для работы с курсорами. Как минимум для PostgreSQL хотелось бы еще реализовать доступные операции по перемещению курсора на первую и последнюю позиции, а также перемещение вперед и назад на произвольное количество строк. Как лучше сделать такую вот кастомизацию в концепции фреймворка?
The text was updated successfully, but these errors were encountered: