HashAgg
buildHashAgg
HashAggExec
HashAggExec 主要有如下几种gorotine, 他们之间通过ch来协作,每个go routine 主要功能如下
fetchChildData
负责从child Exec中读取chunk数据HashAggPartialWorker
处理fetchChildData
的输出数据,调用AggFunc的UpdatePartialResult
, 做一个预处理.HashAggFinalWorker
处理HashAggPartialWorker
的输出数据,调用AggFunc的MergePartialResult
和AppendFinalResult2Chunk
, 输出最终结果到finalOutputCh中HashAggExec.Next
从finalOutputCh中获取最后结果,输出给上层调用者。