Re: Small run-time pruning doc fix

2018-11-12 Thread David Rowley
On 13 November 2018 at 02:46, Peter Eisentraut
 wrote:
> Committed your change.

Thanks.


-- 
 David Rowley   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services



Re: Small run-time pruning doc fix

2018-11-12 Thread Peter Eisentraut
On 04/11/2018 06:23, David Rowley wrote:
> Thanks for looking at this.
> 
> On 2 November 2018 at 20:30, Peter Eisentraut
>  wrote:
>>  
>> - Execution-time partition pruning currently occurs for the
>> + Execution-time partition pruning currently only occurs for the
>>   Append and MergeAppend node
>> types.
>> + It is not yet implemented for the ModifyTable node
>> + type.
>>  
>>
>> Isn't this implied by the preceding paragraph
>>
>> Currently, pruning of partitions during the planning of an UPDATE or
>> DELETE command is implemented using the constraint exclusion method
> 
> That paragraph is talking about plan-time partition pruning. The
> paragraph the patch changes is mentioning execution-time partition
> pruning.  In PG11 we have plan-time partition pruning for Append and
> MergeAppend. UPDATE/DELETE does pruning, but it uses the constraint
> exclusion code which does not work for HASH partitioned tables.  In
> PG11 we only have run-time partition pruning for Append.   MergeAppend
> support was only added in 5220bb7533 (PG12).

I see now.  The actual documentation change was separate in db72302b0a8.

Committed your change.

-- 
Peter Eisentraut  http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: Small run-time pruning doc fix

2018-11-03 Thread David Rowley
Thanks for looking at this.

On 2 November 2018 at 20:30, Peter Eisentraut
 wrote:
>  
> - Execution-time partition pruning currently occurs for the
> + Execution-time partition pruning currently only occurs for the
>   Append and MergeAppend node
> types.
> + It is not yet implemented for the ModifyTable node
> + type.
>  
>
> Isn't this implied by the preceding paragraph
>
> Currently, pruning of partitions during the planning of an UPDATE or
> DELETE command is implemented using the constraint exclusion method

That paragraph is talking about plan-time partition pruning. The
paragraph the patch changes is mentioning execution-time partition
pruning.  In PG11 we have plan-time partition pruning for Append and
MergeAppend. UPDATE/DELETE does pruning, but it uses the constraint
exclusion code which does not work for HASH partitioned tables.  In
PG11 we only have run-time partition pruning for Append.   MergeAppend
support was only added in 5220bb7533 (PG12).

> Also, could there be other node types that could benefit from partition
> pruning that are not implemented yet?  Not sure we want to mention all
> of them.

I'm unsure what might exist in the future, but there are currently
only 3 node types that take a list of subpaths. I think if we get the
support for ModifyTable later, then likely the paragraph edited in
this patch would disappear. In fact, the entire note would disappear
as adding run-time pruning for ModifyTable will require the planner to
use the new partition pruning code.  There's a patch for that in [1],
so maybe it'll all be a little less confusing in PG12.

[1] https://commitfest.postgresql.org/20/1778/

-- 
 David Rowley   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services



Re: Small run-time pruning doc fix

2018-11-02 Thread Peter Eisentraut
On 08/10/2018 10:22, David Rowley wrote:
> Before 5220bb7533f a note in ddl.sgml used to mention that run-time
> pruning was only implemented for Append. When we got MergeAppend
> support the commit updated this to mention MergeAppend is supported
> too. This is slightly weird as it's not all that obvious what exactly
> isn't supported when we mention:
> 
> 
>  Both of these behaviors are likely to be changed in a future release
>  of PostgreSQL.
> 
> 
> The attached patch updates this to mention that ModifyTable is
> unsupported which I think makes the above fragment make sense again.

 
- Execution-time partition pruning currently occurs for the
+ Execution-time partition pruning currently only occurs for the
  Append and MergeAppend node
types.
+ It is not yet implemented for the ModifyTable node
+ type.
 

Isn't this implied by the preceding paragraph

Currently, pruning of partitions during the planning of an UPDATE or
DELETE command is implemented using the constraint exclusion method

?

Also, could there be other node types that could benefit from partition
pruning that are not implemented yet?  Not sure we want to mention all
of them.

-- 
Peter Eisentraut  http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services