O Postgresql armazena em cache os planos para instruções preparadas e suas execuções subsequentes. veja: https://www.postgresql.org/docs/current/sql-prepare.html https://stackoverflow.com/questions/7142335/how-does-postgresql-cache-statements-and-data
A pergunta que tenho é o que destruirá/reescreverá/limpará o postgres em cache? Naturalmente, qualquer instrução DDL (como drop, alter etc.) serviria. Mas há outras coisas?
Os planos são invalidados se algum objeto que eles usam sofrer “invalidação de cache”. Compare este comentário da fonte:
No caso de tabelas:
na fonte do PostgreSQL, você pode descobrir quais mudanças envolvendo tabelas fazem com que os planos sejam invalidados:
REINDEX
CLUSTER
eVACUUM (FULL)
ALTER TABLE
TRUNCATE
É claro que outras ações que levem a tal ação também invalidarão os planos.