pgsql: Match RelOptInfos by relids not pointer equality.
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: /messages/by-id/CAGPqQf3anJGj65bqAQ9edDr8gF7qig6_avRgwMT9MsZ19COUPw@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(-)