Результаты запросов
Таблица результатов, загрузка больших выборок порциями через cursor, фильтрация, копирование и экспорт данных из pgtools.
Когда использовать
Используйте таблицу результатов для просмотра выборок, проверки данных и подготовки выгрузок. Для запросов, которые могут вернуть много строк, включите загрузку порциями через PostgreSQL cursor: pgtools не будет ждать и помещать в grid весь результат сразу.
Как открыть
Выполните SQL-запрос в редакторе. Результат появится в нижней или соседней панели.
Настройка загрузки порциями
Откройте настройки и найдите секцию Загрузка результатов. Включите Использовать cursor для загрузки результатов частями, затем задайте:
- Размер порции cursor — сколько строк pgtools запрашивает за один раз;
- Догружать следующую порцию при прокрутке — следующая порция будет запрошена, когда вы приблизитесь к концу уже загруженных строк;
- Таймаут неактивного cursor, сек. — через сколько секунд бездействия pgtools закроет cursor;
- Максимум строк в grid без подтверждения — порог, после которого pgtools попросит подтвердить дальнейшую загрузку.

Как работает cursor
После выполнения запроса pgtools открывает cursor и получает первые строки через pg-cursor. Остальные строки остаются на стороне PostgreSQL до запроса следующей порции. Это уменьшает разовую нагрузку на память приложения и позволяет начать просмотр большой выборки раньше.
При включённой автодогрузке достаточно прокручивать grid. Открытый cursor отмечается на панели результата: там видны его состояние и количество уже загруженных строк. Cursor можно закрыть вручную кнопкой с крестиком.

Когда закрывать cursor
Закройте cursor, если оставшаяся часть результата больше не нужна. Открытый cursor связан с серверной сессией и транзакцией; до его закрытия транзакция может продолжать удерживать уже полученные блокировки. pgtools также закрывает неактивный cursor по заданному таймауту и использует тот же штатный механизм закрытия при обнаружении собственного cursor среди blocker-сессий.
Обычная работа с результатом
Для загруженных строк доступны сортировка, фильтрация, изменение ширины колонок, копирование данных и экспорт в CSV, Excel или SQL INSERT.
Пример сценария
Выполните запрос к большой таблице без искусственного малого
LIMIT. Просмотрите первую порцию, прокрутите grid для догрузки следующих строк и закройте cursor, как только дальнейший просмотр перестанет быть нужен.Ограничения
Загрузка порциями не делает сам SQL-запрос быстрее и не отменяет серверную стоимость его выполнения. Пока cursor открыт, его сессия и транзакция остаются активными. Для массовой выгрузки всей таблицы специализированный экспорт на стороне PostgreSQL может быть эффективнее.
Частые проблемы
Если следующая порция не появляется, проверьте, включена ли автодогрузка, не был ли cursor закрыт по таймауту и активно ли подключение. Если cursor мешает DDL или другим запросам, закройте его на панели результата либо перейдите к его вкладке из уведомления о блокировке.