// Equal returns true if both Declarations are equals
19739
func (decl *Declaration) Equal(other *Declaration) bool {
	return (decl.Property == other.Property) && (decl.Value == other.Value) && (decl.Important == other.Important)
}
585989
func (self BoolEqualer) Equal(e Equaler) bool {
	return self.B == e.(BoolEqualer).B
}
52690
func (o *QueryOption) Equal(o2 *QueryOption) bool {
	if o2 == nil {
		return o.value == ""
	}
	return o.value == o2.value
}
1295661
func (o *AutoGenerateObjectIDIfNotExistOption) Equal(o2 *AutoGenerateObjectIDIfNotExistOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
1160840
func (o *AllowCompressionOfIntegerArrayOption) Equal(o2 *AllowCompressionOfIntegerArrayOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
1093983
func (o *OffsetOption) Equal(o2 *OffsetOption) bool {
	if o2 == nil {
		return o.value == 0
	}
	return o.value == o2.value
}
814897
func (s1 Int32) Equal(s2 Int32) bool {
	return len(s1) == len(s2) && s1.IsSuperset(s2)
}
1284348
func (o *TagFiltersOption) Equal(o2 *TagFiltersOption) bool {
	return o.comp.Equal(&o2.comp)
}
1208115
func (s *SyncedSet) Equal(other *SyncedSet) bool {
	s.RLock()
	defer s.RUnlock()
	test := reflect.DeepEqual(s.set, other.set)
	return test
}
787738
func (o *SafeOption) Equal(o2 *SafeOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
316218
func (o *MinWordSizefor1TypoOption) Equal(o2 *MinWordSizefor1TypoOption) bool {
	if o2 == nil {
		return o.value == 4
	}
	return o.value == o2.value
}
517848
func (c *Constant) Equal(ctx sessionctx.Context, b Expression) bool {
	y, ok := b.(*Constant)
	if !ok {
		return false
	}
	_, err1 := y.Eval(chunk.Row{})
	_, err2 := c.Eval(chunk.Row{})
	if err1 != nil || err2 != nil {
		return false
	}
	con, err := c.Value.CompareDatum(ctx.GetSessionVars().StmtCtx, &y.Value)
	if err != nil || con != 0 {
		return false
	}
	return true
}
124188
func (o *LengthOption) Equal(o2 *LengthOption) bool {
	if o2 == nil {
		return o.value == 0
	}
	return o.value == o2.value
}
245570
func Equal(a1, a2 interface{}) bool {
	if a1 == nil || a2 == nil {
		return a1 == a2
	}
	v1 := reflect.ValueOf(a1)
	v2 := reflect.ValueOf(a2)
	if v1.Type() != v2.Type() {
		return false
	}
	return deepValueEqual(v1, v2, make(map[visit]bool), 0)
}
781968
func (l *Statement) Equal(r *Statement) bool {
	if l.Effect != r.Effect {
		return false
	}
	if !l.Action.Equal(r.Action) {
		return false
	}
	if !l.Resource.Equal(r.Resource) {
		return false
	}
	return true
}
1006939
func (o *CreateIfNotExistsOption) Equal(o2 *CreateIfNotExistsOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
466954
func (self IntEqualer) Equal(e Equaler) bool {
	return self.I == e.(IntEqualer).I
}