>You could likely get an idea of how the surplus filter is slowing down
>execution if you widen the filter to ensure it includes all possible
>"ladate" values, run the query, then run the query again without the
>date range filter. I would guess it'll only save you a few percent,
>but I'm open to being proven wrong.

Thanks for the explanation and https://dbfiddle.uk/e0kpJYdd simply proves
that you are right.

>The planner could likely work a bit harder to prove which filters are
>not required for the partition, but it currently just simply does not
>do that. If we could find a cheap enough way to remove those during
>planning, then we probably should.

Then, we have to wait for that feature.

Thanks!

On Mon, Jul 3, 2023 at 12:06 AM David Rowley <dgrowle...@gmail.com> wrote:

> On Fri, 30 Jun 2023 at 00:42, Umut TEKİN <umuttec...@gmail.com> wrote:
> > @Marc, I think there is no problem.Even though it says it is filtered by
> ladate, it is not. Because of the partition.
> > As you can see for each index scan it uses a different partition and
> those partition boundaries are already specified logically.
> > For example; "Parallel Index Scan using table1_p_201802_numfic_idx on
> table1_p_201802 t_3".
> > If the names correctly matches the partition concept, the partition
> table1_p_201802 only contains values for between 2018.02.01 and 2018.03.01.
> > So, even though there is a filter, there is not. Thus, filtering only
> occurs for your numfic column.
>
> I just wanted to clear up any confusion here.  The above simply is not
> true. If you see the filter in EXPLAIN, then the executor *is*
> applying that filter.
>
> The planner could likely work a bit harder to prove which filters are
> not required for the partition, but it currently just simply does not
> do that. If we could find a cheap enough way to remove those during
> planning, then we probably should.
>
> You could likely get an idea of how the surplus filter is slowing down
> execution if you widen the filter to ensure it includes all possible
> "ladate" values, run the query, then run the query again without the
> date range filter. I would guess it'll only save you a few percent,
> but I'm open to being proven wrong.
>
> David
>

Reply via email to