]> granicus.if.org Git - postgresql/commit
Match RelOptInfos by relids not pointer equality.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 8 Aug 2018 15:44:50 +0000 (11:44 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 8 Aug 2018 15:44:50 +0000 (11:44 -0400)
commit11e22e486d8da6cef4d954c6f2952097df276fa7
treead75152a1d49f1df557dc12cdc2d4a3a70a84384
parent9b7c56d6cba9d23318d98af58f0c1adc85869bbf
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_avRgwMT9MsZ19COUPw@mail.gmail.com
src/backend/partitioning/partprune.c
src/test/regress/expected/partition_prune.out
src/test/regress/sql/partition_prune.sql