On Wed, Apr 18, 2018 at 12:07:18PM +1200, David Rowley wrote: > In PG10 the planner's partition pruning could be disabled by changing > the constraint_exclusion GUC to off. This is still the case for PG11, > but only for UPDATE and DELETE queries. There is currently no way to > disable partition pruning for SELECT. > > Should we allow this? > > To make this a bit more complex, we now also have run-time pruning > which can allow further partition pruning to be performed during > execution. I imagine if we're going to add a GUC for plan-time > pruning then we should also have one for run-time pruning. These could > also perhaps share the same GUC, so it seems there are some sub > choices to make here: > > 1. Add a single enable_ GUC which allows both plan-time and run-time > pruning to be disabled. > 2. Add two new enable_ GUCs, one for plan-time and one for run-time pruning. > 3. No new GUCs / Do nothing.
Maybe this is divergent from the details of the implementation; but, from a user's perspective: why not continue to use constraint_exclusion? I would suggest to add zero new GUCs: 0. constraint_exclusion={off,partition,on,PLANNER*,EXECUTOR*} I tentatively assume that "constraint_exclusion=partition" would disable PG11 "pruning", and that the new default setting would be "executor". * Caveat: there may be a better name than planner/executor.. planner_prune? execute_filter? Justin