DISCARD

Сбрасывает состояние сессии.

Обзор

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

Описание

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

YMatrix не поддерживает вызов DISCARD ALL внутри транзакции.

Параметры

  • PLANS
    • Освобождает все кэшированные планы запросов, заставляя повторное планирование при следующем использовании соответствующего подготовленного оператора.
  • SEQUENCES
    • Удаляет всё кэшированное состояние, связанное с последовательностями, включая любые предварительно выделенные значения последовательностей, которые ещё не были возвращены функцией 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 SEQUENCES;
      DISCARD TEMP;

Замечания

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

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

DISCARD является расширением YMatrix.