code: func wrapCastForAggFuncs(sctx sessionctx.Context, aggFuncs []*aggregation.AggFuncDesc) {
  	for i := range aggFuncs {
  		if aggFuncs[i].Mode != aggregation.FinalMode && aggFuncs[i].Mode != aggregation.Partial2Mode {
  			aggFuncs[i].WrapCastForAggArgs(sctx)
  		}
  	}
  }
docs: // wrapCastForAggFunc wraps the args of an aggregate function with a cast function.
  // If the mode is FinalMode or Partial2Mode, we do not need to wrap cast upon the args,
  // since the types of the args are already the expected.