DISCARD(7)

πŸ“¦ version 17.11, in opensuse-leap 16.0

πŸ’– NAME πŸ’–

okay so this is the DISCARD(7) page from the PostgreSQL 17.11 Documentation, and it's literally about DISCARD - discard session state. periodt. πŸ’…

✨ SYNOPSIS ✨

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

πŸ¦‹ DESCRIPTION πŸ¦‹

okay bestie, DISCARD releases internal resources associated with a database session. it's giving "reset button" energy: this command is useful for partially or fully resetting the session's state. there are several subcommands to release different types of resources, and the DISCARD ALL variant subsumes all the others, and also resets additional state. no cap. ✨

πŸŽ€ PARAMETERS πŸŽ€

  • PLANS β€” releases all cached query plans, forcing re-planning to occur the next time the associated prepared statement is used. so next time it's gotta think again, iykyk. 🧠
  • 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. bye-bye temp tables 🫢
  • 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:
CLOSE ALL;
SET SESSION AUTHORIZATION DEFAULT;
RESET ALL;
DEALLOCATE ALL;
UNLISTEN *;
SELECT pg_advisory_unlock_all();
DISCARD PLANS;
DISCARD TEMP;
DISCARD SEQUENCES;

🌸 NOTES 🌸

major caveat bestie: DISCARD ALL cannot be executed inside a transaction block. so don't try it in there, fr fr. 😭

🌈 COMPATIBILITY 🌈

DISCARD is a PostgreSQL extension. slay. πŸ‘‘


mwah πŸ’‹ this iconic page comes from PostgreSQL 17.11 and it's dated 2026. that's the source/version + date sign-off, bestie. πŸŽ€

πŸ“¦ where this page comes from