code: func (o *outerJoinEliminator) isDuplicateAgnosticAgg(p LogicalPlan) (_ bool, cols []*expression.Column) {
  	agg, ok := p.(*LogicalAggregation)
  	if !ok {
  		return false, nil
  	}
  	cols = agg.groupByCols
  	for _, aggDesc := range agg.AggFuncs {
  		if !aggDesc.HasDistinct &&
  			aggDesc.Name != ast.AggFuncFirstRow &&
  			aggDesc.Name != ast.AggFuncMax &&
  			aggDesc.Name != ast.AggFuncMin {
  			return false, nil
  		}
  		for _, expr := range aggDesc.Args {
  			if col, ok := expr.(*expression.Column); ok {
  				cols = append(cols, col)
  			} else {
  				return false, nil
  			}
  		}
  	}
  	return true, cols
  }
docs: // Check whether a LogicalPlan is a LogicalAggregation and its all aggregate functions is duplicate agnostic.
  // Also, check all the args are expression.Column.