Minor additional refactoring of planner.c's PathTarget handling.
Tom Lane <tgl@sss.pgh.pa.us>
Minor additional refactoring of planner.c's PathTarget handling. Teach make_group_input_target() and make_window_input_target() to work entirely with the PathTarget representation of tlists, rather than constructing a tlist and immediately deconstructing it into PathTarget format. In itself this only saves a few palloc's; the bigger picture is that it opens the door for sharing cost_qual_eval work across all of planner.c's constructions of PathTargets. I'll come back to that later. In support of this, flesh out tlist.c's infrastructure for PathTargets a bit more.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/optimizer/plan/planner.c | modified | +62 −64 |
| src/backend/optimizer/util/tlist.c | modified | +46 −0 |
| src/include/optimizer/tlist.h | modified | +3 −0 |