Remove some unnecessary fields from Plan trees.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 7 Oct 2018 18:33:17 +0000 (14:33 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 7 Oct 2018 18:33:17 +0000 (14:33 -0400)
commit52ed730d511b7b1147f2851a7295ef1fb5273776
tree778fcbbacb924e01baacb59ed75d7d10c33b56cc
parent39808e8868c8fac383b33aa103ab57539b0e2a69
Remove some unnecessary fields from Plan trees.

In the wake of commit f2343653f, we no longer need some fields that
were used before to control executor lock acquisitions:

* PlannedStmt.nonleafResultRelations can go away entirely.

* partitioned_rels can go away from Append, MergeAppend, and ModifyTable.
However, ModifyTable still needs to know the RT index of the partition
root table if any, which was formerly kept in the first entry of that
list.  Add a new field "rootRelation" to remember that.  rootRelation is
partly redundant with nominalRelation, in that if it's set it will have
the same value as nominalRelation.  However, the latter field has a
different purpose so it seems best to keep them distinct.

Amit Langote, reviewed by David Rowley and Jesper Pedersen,
and whacked around a bit more by me

Discussion: https://postgr.es/m/468c85d9-540e-66a2-1dde-fec2b741e688@lab.ntt.co.jp
13 files changed:
contrib/postgres_fdw/postgres_fdw.c
src/backend/executor/execParallel.c
src/backend/executor/execPartition.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/readfuncs.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/planner.c
src/backend/optimizer/plan/setrefs.c
src/backend/optimizer/util/pathnode.c
src/include/nodes/plannodes.h
src/include/nodes/relation.h
src/include/optimizer/pathnode.h