Match RelOptInfos by relids not pointer equality.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: a3deecb1c9af1e3d210a321401e40f22db859290
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2018-08-08T15:44:50Z
Releases: 11.0
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

Files

Discussion