Match RelOptInfos by relids not pointer equality. Commit 1c2cb2744 added some code that tried to detect whether two RelOptInfos were the "same" rel by pointer comparison; but it turns out that inheritance_planner breaks that, through its shenanigans with copying some relations forward into new subproblems. Compare relid sets instead. Add a regression test case to exercise this area.
Problem reported by Rushabh Lathia; diagnosis and fix by Amit Langote, modified a bit by me. Discussion: https://postgr.es/m/cagpqqf3anjgj65bqaq9eddr8gf7qig6_avrgwmt9msz19co...@mail.gmail.com Branch ------ REL_11_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/a3deecb1c9af1e3d210a321401e40f22db859290 Modified Files -------------- src/backend/partitioning/partprune.c | 2 +- src/test/regress/expected/partition_prune.out | 79 +++++++++++++++++++++++++++ src/test/regress/sql/partition_prune.sql | 6 ++ 3 files changed, 86 insertions(+), 1 deletion(-)
