code: func (b *builtinLikeSig) evalInt(row chunk.Row) (int64, bool, error) {
  	valStr, isNull, err := b.args[0].EvalString(b.ctx, row)
  	if isNull || err != nil {
  		return 0, isNull, err
  	}
  
  	// TODO: We don't need to compile pattern if it has been compiled or it is static.
  	patternStr, isNull, err := b.args[1].EvalString(b.ctx, row)
  	if isNull || err != nil {
  		return 0, isNull, err
  	}
  	val, isNull, err := b.args[2].EvalInt(b.ctx, row)
  	if isNull || err != nil {
  		return 0, isNull, err
  	}
  	escape := byte(val)
  	patChars, patTypes := stringutil.CompilePattern(patternStr, escape)
  	match := stringutil.DoMatch(valStr, patChars, patTypes)
  	return boolToInt64(match), false, nil
  }
docs: // evalInt evals a builtinLikeSig.
  // See https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_like
  // NOTE: Currently tikv's like function is case sensitive, so we keep its behavior here.