// Equal 断言 v1 与 v2 两个值相等，否则输出错误信息
767655
func Equal(t testing.TB, v1, v2 interface{}, args ...interface{}) {
	assert(t, IsEqual(v1, v2), args, []interface{}{"Equal 失败，实际值为v1=[%T:%[1]v];v2=[%T:%[2]v]", v1, v2})
}
1248193
func RankingEqual(o1, o2 *RankingOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
1158742
func (v ByteView) Equal(b2 ByteView) bool {
	if b2.b == nil {
		return v.EqualString(b2.s)
	}
	return v.EqualBytes(b2.b)
}
1163065
func (o *AnchoringOption) Equal(o2 *AnchoringOption) bool {
	if o2 == nil {
		return o.value == ""
	}
	return o.value == o2.value
}
1345990
func Equal(p1, p2 Implementation) bool {
	return bytes.Equal(p1.Bytes(), p2.Bytes())
}
159103
func Equal(fid1, fid2 FID) bool {
	return fid1.IDLow == fid2.IDLow && fid1.IDHigh == fid2.IDHigh
}
1266965
func (o *ClickAnalyticsOption) Equal(o2 *ClickAnalyticsOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
812162
func (f *PkgFilter) Equal(f2 *PkgFilter) bool {
	if f == f2 {
		return true
	}
	if f.count != f2.count {
		return false
	}

	return bytes.Equal(f.filter, f2.filter)
}
1367973
func (m *Module) Equal(other *Module) bool {
	return m.Normalized() == other.Normalized()
}
305538
func (sf *ScalarFunction) Equal(ctx sessionctx.Context, e Expression) bool {
	fun, ok := e.(*ScalarFunction)
	if !ok {
		return false
	}
	if sf.FuncName.L != fun.FuncName.L {
		return false
	}
	return sf.Function.equal(fun.Function)
}
466954
func (self IntEqualer) Equal(e Equaler) bool {
	return self.I == e.(IntEqualer).I
}
1093983
func (o *OffsetOption) Equal(o2 *OffsetOption) bool {
	if o2 == nil {
		return o.value == 0
	}
	return o.value == o2.value
}
177525
func (f ContextInformation) Equal(u convert.Equaler) bool {
	other, ok := u.(ContextInformation)
	if !ok {
		return false
	}
	return reflect.DeepEqual(f, other)
}
1112465
func (o *AllowTyposOnNumericTokensOption) Equal(o2 *AllowTyposOnNumericTokensOption) bool {
	if o2 == nil {
		return o.value == true
	}
	return o.value == o2.value
}
491818
func (d *PortRuleDNS) Equal(o PortRuleDNS) bool {
	return d != nil && d.MatchName == o.MatchName && d.MatchPattern == o.MatchPattern
}
1040647
func Equal(x, y Value) (bool, error) {
	if x, ok := x.(String); ok {
		return x == y, nil // fast path for an important special case
	}
	return EqualDepth(x, y, maxdepth)
}
385221
func (o *RuleContextsOption) Equal(o2 *RuleContextsOption) bool {
	if o2 == nil {
		return reflect.DeepEqual(o.value, []string{})
	}
	return reflect.DeepEqual(o.value, o2.value)
}