DISCARD(7)

NAME
DISCARD - discard session state

SYNOPSIS

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

DESCRIPTION

DISCARD releases internal resources associated with a database session. This command is useful for partially or fully resetting the session's state. There are several subcommands to release different types of resources; the DISCARD ALL variant subsumes all the others, and also resets additional state.

PARAMETERS

PLANS
    Releases all cached query plans, forcing re-planning to occur the next time the associated prepared statement is used.

SEQUENCES
    Discards all cached sequence-related state, including currval()/lastval() information and any preallocated sequence values that have not yet been returned by nextval(). (See CREATE SEQUENCE (CREATE_SEQUENCE(7)) for a description of preallocated sequence values.)

TEMPORARY or TEMP
    Drops all temporary tables created in the current session.

ALL
    Releases all temporary resources associated with the current session and resets the session to its initial state. Currently, this has the same effect as executing the following sequence of statements:

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

NOTES

DISCARD ALL cannot be executed inside a transaction block.

COMPATIBILITY

DISCARD is a PostgreSQL extension.