postgresql/src/include/nodes
Tom Lane 9e8b99420f Improve handling of group-column indexes in GroupingSetsPath.
Instead of having planner.c compute a groupColIdx array and store it in
GroupingSetsPaths, make create_groupingsets_plan() find the grouping
columns by searching in the child plan node's tlist.  Although that's
probably a bit slower for create_groupingsets_plan(), it's more like
the way every other plan node type does this, and it provides positive
confirmation that we know which child output columns we're supposed to be
grouping on.  (Indeed, looking at this now, I'm not at all sure that it
wasn't broken before, because create_groupingsets_plan() isn't demanding
an exact tlist match from its child node.)  Also, this allows substantial
simplification in planner.c, because it no longer needs to compute the
groupColIdx array at all; no other cases were using it.

I'd intended to put off this refactoring until later (like 9.7), but
in view of the likely bug fix and the need to rationalize planner.c's
tlist handling so we can do something sane with Konstantin Knizhnik's
function-evaluation-postponement patch, I think it can't wait.
2016-03-08 22:32:11 -05:00
..
bitmapset.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
execnodes.h Allow parallel custom and foreign scans. 2016-02-03 12:49:46 -05:00
extensible.h Introduce extensible node types. 2016-02-12 09:38:11 -05:00
lockoptions.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
makefuncs.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
memnodes.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
nodeFuncs.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
nodes.h Make the upper part of the planner work by generating and comparing Paths. 2016-03-07 15:58:22 -05:00
params.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
parsenodes.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
pg_list.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
plannodes.h Make the upper part of the planner work by generating and comparing Paths. 2016-03-07 15:58:22 -05:00
primnodes.h Add defenses against putting expanded objects into Const nodes. 2016-01-21 12:56:08 -05:00
print.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
readfuncs.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
relation.h Improve handling of group-column indexes in GroupingSetsPath. 2016-03-08 22:32:11 -05:00
replnodes.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
tidbitmap.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
value.h Update copyright for 2016 2016-01-02 13:33:40 -05:00