code: func (p *Aggregation) convert2PhysicalPlanCompleteHash(childInfo *physicalPlanInfo) *physicalPlanInfo {
  	agg := &PhysicalAggregation{
  		AggType:      CompleteAgg,
  		AggFuncs:     p.AggFuncs,
  		GroupByItems: p.GroupByItems,
  	}
  	agg.tp = "HashAgg"
  	agg.allocator = p.allocator
  	agg.initIDAndContext(p.ctx)
  	agg.HasGby = len(p.GroupByItems) > 0
  	agg.SetSchema(p.schema)
  	info := addPlanToResponse(agg, childInfo)
  	info.cost += float64(info.count) * memoryFactor
  	info.count = uint64(float64(info.count) * aggFactor)
  	return info
  }
docs: // convert2PhysicalPlanCompleteHash converts the logical aggregation to the complete hash aggregation *physicalPlanInfo.