pgsql: Allow left join removals and unique joins on partitioned tables

From: David Rowley <drowley(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Allow left join removals and unique joins on partitioned tables
Date: 2023-01-09 04:16:31
Message-ID: E1pEjaJ-002kfC-I5@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Allow left join removals and unique joins on partitioned tables

This allows left join removals and unique joins to work with partitioned
tables. The planner just lacked sufficient proofs that a given join
would not cause any row duplication. Unique indexes currently serve as
that proof, so have get_relation_info() populate the indexlist for
partitioned tables too.

Author: Arne Roland
Reviewed-by: Alvaro Herrera, Zhihong Yu, Amit Langote, David Rowley
Discussion: https://postgr.es/m/c3b2408b7a39433b8230bbcd02e9f302@index.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3c569049b7b502bb4952483d19ce622ff0af5fd6

Modified Files
--------------
src/backend/optimizer/util/plancat.c | 264 +++++++++++++++------------
src/backend/utils/adt/selfuncs.c | 4 +
src/include/nodes/pathnodes.h | 10 +-
src/test/regress/expected/join.out | 10 +
src/test/regress/expected/partition_join.out | 4 +-
src/test/regress/sql/join.sql | 7 +
src/test/regress/sql/partition_join.sql | 4 +-
7 files changed, 179 insertions(+), 124 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Amit Kapila 2023-01-09 08:36:39 pgsql: Fix the file mode of worker.c changed by the commit 216a784829.
Previous Message Amit Kapila 2023-01-09 02:38:21 pgsql: Perform apply of large transactions by parallel workers.