code: func (mmf *maxMinFunction) Update(evalCtx *AggEvaluateContext, sc *stmtctx.StatementContext, row chunk.Row) error {
  	a := mmf.Args[0]
  	value, err := a.Eval(row)
  	if err != nil {
  		return err
  	}
  	if evalCtx.Value.IsNull() {
  		evalCtx.Value = *(&value).Copy()
  	}
  	if value.IsNull() {
  		return nil
  	}
  	var c int
  	c, err = evalCtx.Value.CompareDatum(sc, &value)
  	if err != nil {
  		return err
  	}
  	if (mmf.isMax && c == -1) || (!mmf.isMax && c == 1) {
  		evalCtx.Value = *(&value).Copy()
  	}
  	return nil
  }
docs: // Update implements Aggregation interface.