@@ -163,18 +163,17 @@ static RelOptInfo *create_grouping_paths(PlannerInfo *root,
163163static bool is_degenerate_grouping (PlannerInfo * root );
164164static void create_degenerate_grouping_paths (PlannerInfo * root ,
165165RelOptInfo * input_rel ,
166- PathTarget * target , RelOptInfo * grouped_rel );
166+ RelOptInfo * grouped_rel );
167167static void create_ordinary_grouping_paths (PlannerInfo * root ,
168168RelOptInfo * input_rel ,
169- PathTarget * target , RelOptInfo * grouped_rel ,
169+ RelOptInfo * grouped_rel ,
170170const AggClauseCosts * agg_costs ,
171171grouping_sets_data * gd ,int flags );
172172static void consider_groupingsets_paths (PlannerInfo * root ,
173173RelOptInfo * grouped_rel ,
174174Path * path ,
175175bool is_sorted ,
176176bool can_hash ,
177- PathTarget * target ,
178177grouping_sets_data * gd ,
179178const AggClauseCosts * agg_costs ,
180179double dNumGroups );
@@ -220,7 +219,6 @@ static void adjust_paths_for_srfs(PlannerInfo *root, RelOptInfo *rel,
220219List * targets ,List * targets_contain_srfs );
221220static void add_paths_to_grouping_rel (PlannerInfo * root ,RelOptInfo * input_rel ,
222221RelOptInfo * grouped_rel ,
223- PathTarget * target ,
224222RelOptInfo * partially_grouped_rel ,
225223const AggClauseCosts * agg_costs ,
226224const AggClauseCosts * agg_final_costs ,
@@ -3737,7 +3735,7 @@ create_grouping_paths(PlannerInfo *root,
37373735 * grouping, as appropriate.
37383736 */
37393737if (is_degenerate_grouping (root ))
3740- create_degenerate_grouping_paths (root ,input_rel ,target , grouped_rel );
3738+ create_degenerate_grouping_paths (root ,input_rel ,grouped_rel );
37413739else
37423740{
37433741int flags = 0 ;
@@ -3788,7 +3786,7 @@ create_grouping_paths(PlannerInfo *root,
37883786if (can_partial_agg (root ,agg_costs ))
37893787flags |=GROUPING_CAN_PARTIAL_AGG ;
37903788
3791- create_ordinary_grouping_paths (root ,input_rel ,target , grouped_rel ,
3789+ create_ordinary_grouping_paths (root ,input_rel ,grouped_rel ,
37923790agg_costs ,gd ,flags );
37933791}
37943792
@@ -3826,7 +3824,7 @@ is_degenerate_grouping(PlannerInfo *root)
38263824 */
38273825static void
38283826create_degenerate_grouping_paths (PlannerInfo * root ,RelOptInfo * input_rel ,
3829- PathTarget * target , RelOptInfo * grouped_rel )
3827+ RelOptInfo * grouped_rel )
38303828{
38313829Query * parse = root -> parse ;
38323830int nrows ;
@@ -3848,7 +3846,7 @@ create_degenerate_grouping_paths(PlannerInfo *root, RelOptInfo *input_rel,
38483846{
38493847path = (Path * )
38503848create_result_path (root ,grouped_rel ,
3851- target ,
3849+ grouped_rel -> reltarget ,
38523850 (List * )parse -> havingQual );
38533851paths = lappend (paths ,path );
38543852}
@@ -3861,14 +3859,13 @@ create_degenerate_grouping_paths(PlannerInfo *root, RelOptInfo *input_rel,
38613859 false,
38623860NIL ,
38633861-1 );
3864- path -> pathtarget = target ;
38653862}
38663863else
38673864{
38683865/* No grouping sets, or just one, so one output row */
38693866path = (Path * )
38703867create_result_path (root ,grouped_rel ,
3871- target ,
3868+ grouped_rel -> reltarget ,
38723869 (List * )parse -> havingQual );
38733870}
38743871
@@ -3887,7 +3884,7 @@ create_degenerate_grouping_paths(PlannerInfo *root, RelOptInfo *input_rel,
38873884 */
38883885static void
38893886create_ordinary_grouping_paths (PlannerInfo * root ,RelOptInfo * input_rel ,
3890- PathTarget * target , RelOptInfo * grouped_rel ,
3887+ RelOptInfo * grouped_rel ,
38913888const AggClauseCosts * agg_costs ,
38923889grouping_sets_data * gd ,int flags )
38933890{
@@ -3929,7 +3926,7 @@ create_ordinary_grouping_paths(PlannerInfo *root, RelOptInfo *input_rel,
39293926}
39303927
39313928/* Build final grouping paths */
3932- add_paths_to_grouping_rel (root ,input_rel ,grouped_rel ,target ,
3929+ add_paths_to_grouping_rel (root ,input_rel ,grouped_rel ,
39333930partially_grouped_rel ,agg_costs ,
39343931& agg_final_costs ,gd ,can_sort ,can_hash ,
39353932dNumGroups , (List * )parse -> havingQual );
@@ -3968,7 +3965,6 @@ consider_groupingsets_paths(PlannerInfo *root,
39683965Path * path ,
39693966bool is_sorted ,
39703967bool can_hash ,
3971- PathTarget * target ,
39723968grouping_sets_data * gd ,
39733969const AggClauseCosts * agg_costs ,
39743970double dNumGroups )
@@ -4110,7 +4106,6 @@ consider_groupingsets_paths(PlannerInfo *root,
41104106create_groupingsets_path (root ,
41114107grouped_rel ,
41124108path ,
4113- target ,
41144109 (List * )parse -> havingQual ,
41154110strat ,
41164111new_rollups ,
@@ -4268,7 +4263,6 @@ consider_groupingsets_paths(PlannerInfo *root,
42684263create_groupingsets_path (root ,
42694264grouped_rel ,
42704265path ,
4271- target ,
42724266 (List * )parse -> havingQual ,
42734267AGG_MIXED ,
42744268rollups ,
@@ -4285,7 +4279,6 @@ consider_groupingsets_paths(PlannerInfo *root,
42854279create_groupingsets_path (root ,
42864280grouped_rel ,
42874281path ,
4288- target ,
42894282 (List * )parse -> havingQual ,
42904283AGG_SORTED ,
42914284gd -> rollups ,
@@ -6087,7 +6080,6 @@ get_partitioned_child_rels_for_join(PlannerInfo *root, Relids join_relids)
60876080static void
60886081add_paths_to_grouping_rel (PlannerInfo * root ,RelOptInfo * input_rel ,
60896082RelOptInfo * grouped_rel ,
6090- PathTarget * target ,
60916083RelOptInfo * partially_grouped_rel ,
60926084const AggClauseCosts * agg_costs ,
60936085const AggClauseCosts * agg_final_costs ,
@@ -6125,7 +6117,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo *input_rel,
61256117if (parse -> groupingSets )
61266118{
61276119consider_groupingsets_paths (root ,grouped_rel ,
6128- path , true,can_hash ,target ,
6120+ path , true,can_hash ,
61296121gd ,agg_costs ,dNumGroups );
61306122}
61316123else if (parse -> hasAggs )
@@ -6138,7 +6130,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo *input_rel,
61386130create_agg_path (root ,
61396131grouped_rel ,
61406132path ,
6141- target ,
6133+ grouped_rel -> reltarget ,
61426134parse -> groupClause ?AGG_SORTED :AGG_PLAIN ,
61436135AGGSPLIT_SIMPLE ,
61446136parse -> groupClause ,
@@ -6156,7 +6148,6 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo *input_rel,
61566148create_group_path (root ,
61576149grouped_rel ,
61586150path ,
6159- target ,
61606151parse -> groupClause ,
61616152havingQual ,
61626153dNumGroups ));
@@ -6199,7 +6190,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo *input_rel,
61996190create_agg_path (root ,
62006191grouped_rel ,
62016192path ,
6202- target ,
6193+ grouped_rel -> reltarget ,
62036194parse -> groupClause ?AGG_SORTED :AGG_PLAIN ,
62046195AGGSPLIT_FINAL_DESERIAL ,
62056196parse -> groupClause ,
@@ -6211,7 +6202,6 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo *input_rel,
62116202create_group_path (root ,
62126203grouped_rel ,
62136204path ,
6214- target ,
62156205parse -> groupClause ,
62166206havingQual ,
62176207dNumGroups ));
@@ -6229,7 +6219,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo *input_rel,
62296219 * Try for a hash-only groupingsets path over unsorted input.
62306220 */
62316221consider_groupingsets_paths (root ,grouped_rel ,
6232- cheapest_path , false, true,target ,
6222+ cheapest_path , false, true,
62336223gd ,agg_costs ,dNumGroups );
62346224}
62356225else
@@ -6254,7 +6244,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo *input_rel,
62546244add_path (grouped_rel , (Path * )
62556245create_agg_path (root ,grouped_rel ,
62566246cheapest_path ,
6257- target ,
6247+ grouped_rel -> reltarget ,
62586248AGG_HASHED ,
62596249AGGSPLIT_SIMPLE ,
62606250parse -> groupClause ,
@@ -6282,7 +6272,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo *input_rel,
62826272create_agg_path (root ,
62836273grouped_rel ,
62846274path ,
6285- target ,
6275+ grouped_rel -> reltarget ,
62866276AGG_HASHED ,
62876277AGGSPLIT_FINAL_DESERIAL ,
62886278parse -> groupClause ,
@@ -6420,7 +6410,6 @@ create_partial_grouping_paths(PlannerInfo *root,
64206410create_group_path (root ,
64216411partially_grouped_rel ,
64226412path ,
6423- partially_grouped_rel -> reltarget ,
64246413parse -> groupClause ,
64256414NIL ,
64266415dNumPartialGroups ));