pgsql: Don't constraint-exclude partitioned tables as much

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

pgsql: Don't constraint-exclude partitioned tables as much

Álvaro Herrera
Don't constraint-exclude partitioned tables as much

We only need to invoke constraint exclusion on partitioned tables when
they are a partition, and they themselves contain a default partition;
it's not necessary otherwise, and it's expensive, so avoid it.  Also, we
were trying once for each clause separately, but we can do it for all
the clauses at once.

While at it, centralize setting of RelOptInfo->partition_qual instead of
computing it in slightly different ways in different places.

Per complaints from Simon Riggs about 4e85642d935e; reviewed by Yuzuko
Hosoya, Kyotaro Horiguchi.

Author: Amit Langote.  I (Álvaro) again mangled the patch somewhat.
Discussion: https://postgr.es/m/CANP8+j+tMCY=nEcQeqQam85=uopLBtX-2vHiLD2bbp7iQQUKpA@...

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/815ef2f568c754dcb539cca574f1982317d74db6

Modified Files
--------------
src/backend/optimizer/util/plancat.c | 59 ++++++++++++++++++++----------
src/backend/partitioning/partprune.c | 71 +++++++++++++-----------------------
2 files changed, 65 insertions(+), 65 deletions(-)