Remove 'restrictinfojoinid' field from RestrictInfo nodes.
Tom Lane <tgl@sss.pgh.pa.us>
Remove 'restrictinfojoinid' field from RestrictInfo nodes. The only place it was being used was as temporary storage in indxpath.c, and the logic was wrong: the same restrictinfo node could get chosen to carry the info for two different joins. Right fix is to return a second list of unjoined-relids parallel to the list of clause groups.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/nodes/copyfuncs.c | modified | +1 −2 |
| src/backend/nodes/freefuncs.c | modified | +1 −2 |
| src/backend/optimizer/path/indxpath.c | modified | +75 −33 |
| src/include/nodes/relation.h | modified | +1 −2 |