Frågeplanen för ad hoc-frågor är inte cachad, endast för förberedda uttalanden
. Och PL/pgSQL-funktioner hanterar alla SQL-satser som förberedda satser internt. (Med det anmärkningsvärda undantaget för dynamisk SQL med EXECUTE
.) Var och en för den aktuella sessionens omfattning, inte längre än.
Så PL/pgSQL-funktioner (inte SQL-funktioner!) kan hjälpa till med upprepad exekvering av sofistikerade frågor inom samma session. Precis som förberedda uttalanden.
Klientprogramvara kan använda förberedda uttalanden som standard. Eller protokollet "extended query" , med samma effekt.
Relaterat:
Det relaterade svaret som startade tråden på pgsql-general du syftar på:
Tänk också på kapitlet Planera cachelagring för PL/pgSQL i manualen.