flags |= GROUPING_CAN_PARTIAL_AGG;
extra.flags = flags;
- extra.target = target;
extra.target_parallel_safe = target_parallel_safe;
extra.havingQual = parse->havingQual;
extra.targetList = parse->targetList;
int cnt_parts;
List *grouped_live_children = NIL;
List *partially_grouped_live_children = NIL;
- PathTarget *target = extra->target;
+ PathTarget *target = grouped_rel->reltarget;
Assert(patype != PARTITIONWISE_AGGREGATE_NONE);
Assert(patype != PARTITIONWISE_AGGREGATE_PARTIAL ||
adjust_appendrel_attrs(root,
(Node *) target->exprs,
nappinfos, appinfos);
- child_extra.target = child_target;
/* Translate havingQual and targetList. */
child_extra.havingQual = (Node *)
* have been initialized.
* agg_partial_costs gives partial aggregation costs.
* agg_final_costs gives finalization costs.
- * target is the PathTarget to be used while creating paths.
* target_parallel_safe is true if target is parallel safe.
* havingQual gives list of quals to be applied after aggregation.
* targetList gives list of columns to be projected.
AggClauseCosts agg_final_costs;
/* Data which may differ across partitions. */
- PathTarget *target;
bool target_parallel_safe;
Node *havingQual;
List *targetList;