code: func (a *aggregationPushDownSolver) getAggFuncChildIdx(aggFunc *aggregation.AggFuncDesc, schema *expression.Schema) int {
  	fromLeft, fromRight := false, false
  	var cols []*expression.Column
  	cols = expression.ExtractColumnsFromExpressions(cols, aggFunc.Args, nil)
  	for _, col := range cols {
  		if schema.Contains(col) {
  			fromLeft = true
  		} else {
  			fromRight = true
  		}
  	}
  	if fromLeft && fromRight {
  		return -1
  	} else if fromLeft {
  		return 0
  	}
  	return 1
  }
docs: // getAggFuncChildIdx gets which children it belongs to, 0 stands for left, 1 stands for right, -1 stands for both.