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

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

From
Alvaro Herrera
Date:
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@mail.gmail.com

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(-)