DISCARD

DISCARD — очистить состояние сеанса

Синтаксис

DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }

Описание

Команда DISCARD освобождает внутренние ресурсы, связанные с сеансом использования базы данных. Эта команда полезна для частичного или полного сброса состояния сеанса. Существует несколько подкоманд для освобождения различных типов ресурсов; вариант DISCARD ALL объединяет все остальные, а также сбрасывает дополнительное состояние.

Параметры

PLANS

Освобождает все кэшированные планы запросов, заставляя сервер провести повторное планирование при следующем использовании связанного подготовленного оператора.

SEQUENCES

Сбрасывает все кэшированные состояния, связанные с последовательностями, включая информацию currval()/lastval() и любые предварительно выделенные значения последовательности, которые еще не были возвращены nextval(). (Описание предварительно выделенных значений последовательности см. в разделе CREATE SEQUENCE).

TEMPORARY или TEMP

Удаляет все временные таблицы, созданные в текущем сеансе.

ALL

Освобождает все временные ресурсы, связанные с текущим сеансом, и возвращает сеанс в исходное состояние. В настоящее время это имеет тот же эффект, что и выполнение следующей последовательности операторов:

CLOSE ALL;
SET SESSION AUTHORIZATION DEFAULT;
RESET ALL;
DEALLOCATE ALL;
UNLISTEN *;
SELECT pg_advisory_unlock_all();
DISCARD PLANS;
DISCARD TEMP;
DISCARD SEQUENCES;

Примечания

DISCARD ALL не может быть выполнена внутри блока транзакций.

Совместимость

Команда DISCARD ALL является расширением QHB.