code: func (sf *ScalarFunction) HashCode(sc *stmtctx.StatementContext) []byte {
  	if len(sf.hashcode) > 0 {
  		return sf.hashcode
  	}
  	sf.hashcode = append(sf.hashcode, scalarFunctionFlag)
  	sf.hashcode = codec.EncodeCompactBytes(sf.hashcode, hack.Slice(sf.FuncName.L))
  	for _, arg := range sf.GetArgs() {
  		sf.hashcode = append(sf.hashcode, arg.HashCode(sc)...)
  	}
  	return sf.hashcode
  }
docs: // HashCode implements Expression interface.