Re: Problem with default partition pruning

From: Amit Langote <amitlangote09(at)gmail(dot)com>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, yuzuko <yuzukohosoya(at)gmail(dot)com>, shawn wang <shawn(dot)wang(dot)pg(at)gmail(dot)com>, Shawn Wang <shawn(dot)wang(at)highgo(dot)ca>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Problem with default partition pruning
Date: 2019-08-08 08:08:51
Message-ID: CA+HiwqGJZOKxRv5WReuaihk3YiSzNipLDsJ=P=qFduAiGOE32Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Simon,

On Thu, Aug 8, 2019 at 4:54 PM Simon Riggs <simon(at)2ndquadrant(dot)com> wrote:
> On Wed, 7 Aug 2019 at 21:27, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> wrote:
>> Well, yes, avoiding that is the point of this commit also: we were
>> scanning some partitions for some queries, after this patch we're
>> supposed not to.
>
>
> Understood
>
> My concern was about the additional execution time caused when there would be no benefit, especially if the algoithmic cost is O(N) or similar (i.e. worse than O(k))

Note that we apply constraint exclusion only to the (sub-partitioned)
parent, not to all partitions, so the cost is not O(N) in the number
of partitions. The idea is that if the parent is excluded, all of its
partitions are. We normally wouldn't need to use constrain exclusion,
because partition pruning can handle most cases. What partition
pruning can't handle sufficiently well though is the case where a
clause set that contradicts the partition constraint is specified --
while all non-default partitions are correctly pruned, the default
partition is not. Using constraint exclusion is a workaround for that
deficiency of the partition pruning logic.

Thanks,
Amit

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Adam Lee 2019-08-08 08:20:08 PG_TRY()/CATCH() in a loop reports uninitialized variables
Previous Message Peter Moser 2019-08-08 07:58:31 Re: [PROPOSAL] Temporal query processing with range types