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 является расширением Postgres Pro.