On 18 April 2018 at 21:36, Ashutosh Bapat <ashutosh.ba...@enterprisedb.com> wrote: > On Wed, Apr 18, 2018 at 5:37 AM, David Rowley >> a) Disable run-time pruning during execution. >> b) Disable run-time pruning during planning. >> c) Both of the above. >> >> The differentiation of the above is important when you consider >> PREPAREd statements. Currently, no enable_ GUC will affect a >> pre-PREPAREd query. We might want to keep that rule despite there >> being flexibility not to, in this case. > > > If run-time pruning is disabled, why do we want to waste CPU cycles > and memory to produce plan time details? It might be useful to do so, > if there was a large chance that people prepared a statement which > could use partition pruning with run-time pruning disables but > EXECUTEd it with run-time pruning enabled. It will be less likely that > the session which prepares a plan would change the GUCs before > executing it.
I have to admit, can't really imagine any valid cases were disabling this feature would be useful. Generally, enable_* properties can be used to coax the planner into producing some plan shape that it otherwise didn't due to some costing problem. I can only imagine it might be useful to disable either for testing or as a workaround for some bug that might crop up. Perhaps that's not enough reason to go and add a GUC that'll likely need to exist forever. But it probably does mean that we'd want c) so that the code is completely disabled as soon as the setting is off. If we just did it at plan time then pre-PREPAREd queries might still prune. That does not seem very useful if it's being disabled due to the discovery of some bug. The more I think about this the more undecided I am as to whether we need to add a GUC for this at all, so I'm keen to hear more people voice their opinion about this. If bugs are the only true reason to add it, then the need for the GUC should diminish every day that nobody reports any bugs. -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services