Re: Problem with default partition pruning
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Yuzuko Hosoya <hosoya.yuzuko@lab.ntt.co.jp>,
"'Thibaut'" <thibaut.madelaine@dalibo.com>,
"'Imai, Yoshikazu'" <imai.yoshikazu@jp.fujitsu.com>
Cc: "'PostgreSQL Hackers'" <pgsql-hackers@lists.postgresql.org>
Date: 2019-03-22T06:38:27Z
Lists: pgsql-hackers
Hosoya-san, On 2019/03/22 15:02, Yuzuko Hosoya wrote: > I understood Amit's proposal. But I think the issue Thibaut reported would > occur regardless of whether clauses have OR clauses or not as follows. > I tested a query which should output "One-Time Filter: false". > > # explain select * from test2_0_20 where id = 25; > QUERY PLAN > ----------------------------------------------------------------------- > Append (cost=0.00..25.91 rows=6 width=36) > -> Seq Scan on test2_10_20_def (cost=0.00..25.88 rows=6 width=36) > Filter: (id = 25) > Good catch, thanks. > As Amit described in the previous email, id = 25 contradicts test2_0_20's > partition constraint, so I think this clause should be ignored and we can > also handle this case in the similar way as Amit proposal. > > I attached v1-delta-2.patch which fix the above issue. > > What do you think about it? It looks fine to me. You put the code block to check whether a give clause contradicts the partition constraint in its perfect place. :) Maybe we should have two patches as we seem to be improving two things: 1. Patch to fix problems with default partition pruning originally reported by Hosoya-san 2. Patch to determine if a given clause contradicts a sub-partitioned table's partition constraint, fixing problems unearthed by Thibaut's tests About the patch that Horiguchi-san proposed upthread, I think it has merit that it will make partprune.c code easier to reason about, but I think we should pursue it separately. Thanks, Amit
Commits
-
Don't constraint-exclude partitioned tables as much
- 815ef2f568c7 13.0 landed
-
Apply constraint exclusion more generally in partitioning
- 4e85642d935e 13.0 landed
-
Improve pruning of a default partition
- e3967a16d3a0 11.5 landed
- 86544071484a 12.0 landed
- 489247b0e615 13.0 landed
-
Doc: Fix event trigger firing table
- 44460d7017cd 13.0 cited
-
Remove obsolete nbtree insertion comment.
- 489e431ba56b 12.0 cited