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/[email protected] 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(-)
