Re: PoC plpgsql - possibility to force custom or generic plan
Pavel Stehule <pavel.stehule@gmail.com>
From: Pavel Stehule <pavel.stehule@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>,
Simon Riggs <simon@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, Daniel Gustafsson <daniel@yesql.se>, Andrew Dunstan <andrew.dunstan@2ndquadrant.com>,
Andres Freund <andres@anarazel.de>, Petr Jelinek <petr.jelinek@2ndquadrant.com>,
David Steele <david@pgmasters.net>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>,
Jim Nasby <Jim.Nasby@bluetreble.com>
Date: 2017-09-19T03:46:26Z
Lists: pgsql-hackers
2017-09-11 14:44 GMT+02:00 Tom Lane <tgl@sss.pgh.pa.us>: > 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. Regards Pavel > regards, tom lane >
Commits
-
Add plan_cache_mode setting
- f7cb2842bf47 12.0 landed
-
Add some noreturn attributes to help static analyzers
- a044378ce2f6 11.0 cited
-
document when PREPARE uses generic plans
- fab9d1da4a21 9.6.0 cited
-
Redesign the plancache mechanism for more flexibility and efficiency.
- e6faf910d750 9.2.0 cited