code: func (b *builtinReplaceSig) evalString(row chunk.Row) (d string, isNull bool, err error) {
  	var str, oldStr, newStr string
  
  	str, isNull, err = b.args[0].EvalString(b.ctx, row)
  	if isNull || err != nil {
  		return d, isNull, err
  	}
  	oldStr, isNull, err = b.args[1].EvalString(b.ctx, row)
  	if isNull || err != nil {
  		return d, isNull, err
  	}
  	newStr, isNull, err = b.args[2].EvalString(b.ctx, row)
  	if isNull || err != nil {
  		return d, isNull, err
  	}
  	if oldStr == "" {
  		return str, false, nil
  	}
  	return strings.Replace(str, oldStr, newStr, -1), false, nil
  }
docs: // evalString evals a builtinReplaceSig.
  // See https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace