Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: > On 9/8/17 13:14, Simon Riggs wrote: >> 2. Allow a SET to apply only for a single statement >> SET guc1 = x, guc2 = y FOR stmt >> e.g. SET max_parallel_workers = 4 FOR SELECT count(*) FROM bigtable >> Internally a GUC setting already exists for a single use, via >> GUC_ACTION_SAVE, so we just need to invoke it.
> This doesn't read well to me. It indicates to me "make this setting for > this query [in case I run it later]", but it does not indicate that the > query will be run.
Robert's original LET ... IN ... syntax proposal might be better from that standpoint.
From my perspective Robert's proposal is not targeted to PLpgSQL well, because it doesn't allow to choose granularity.
I am not sure what is result from this discussion:
1. this feature is wanted
2. a opened question is the syntax
I am sure so GUC are not a good design solution for PL/pgSQL. Robert's proposal does thing bit better, but it has sense more for another environments than PLpgSQL - more, it allows more degree of freedom what has sense for PLpgSQL.
There is possibility to introduce new compile option #option to disable plan cache on function scope. Do you think so it is acceptable solution? It is step forward.