// Equal returns b == o.
330036
func (o *Origin) Equal(b Origin) bool {
	if o.Username != b.Username {
		return false
	}
	if o.SessionID != b.SessionID {
		return false
	}
	if o.SessionVersion != b.SessionVersion {
		return false
	}
	if o.NetworkType != b.NetworkType {
		return false
	}
	if o.AddressType != b.AddressType {
		return false
	}
	if o.Address != b.Address {
		return false
	}
	return true
}
124188
func (o *LengthOption) Equal(o2 *LengthOption) bool {
	if o2 == nil {
		return o.value == 0
	}
	return o.value == o2.value
}
207261
func (o *TypeOption) Equal(o2 *TypeOption) bool {
	if o2 == nil {
		return o.value == ""
	}
	return o.value == o2.value
}
716848
func (o *DistinctOption) Equal(o2 *DistinctOption) bool {
	if o2 == nil {
		return o.value == 0
	}
	return o.value == o2.value
}
794993
func (b Bool) Equal(other Argument) bool {
	if other.Typetag() != TypetagFalse && other.Typetag() != TypetagTrue {
		return false
	}
	b2 := other.(Bool)
	return b == b2
}
1006939
func (o *CreateIfNotExistsOption) Equal(o2 *CreateIfNotExistsOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
370880
func (c *Constant) Equal(b Expression, ctx context.Context) bool {
	y, ok := b.(*Constant)
	if !ok {
		return false
	}
	con, err := c.Value.CompareDatum(ctx.GetSessionVars().StmtCtx, y.Value)
	if err != nil || con != 0 {
		return false
	}
	return true
}
541482
func (d DummyEqualer) Equal(u Equaler) bool {
	_, ok := u.(DummyEqualer)
	return ok
}
885476
func (i Int) Equal(other Argument) bool {
	if other.Typetag() != TypetagInt {
		return false
	}
	i2 := other.(Int)
	return i == i2
}
433721
func (o *AroundRadiusOption) Equal(o2 *AroundRadiusOption) bool {
	if o2 == nil {
		return !o.isAll && o.meters == 0
	}
	return reflect.DeepEqual(o, o2)
}
12738
func (f *BloomFilter) Equal(g *BloomFilter) bool {
	return f.m == g.m && f.k == g.k && f.b.Equal(g.b)
}
758733
func (o *ExactOnSingleWordQueryOption) Equal(o2 *ExactOnSingleWordQueryOption) bool {
	if o2 == nil {
		return o.value == "attribute"
	}
	return o.value == o2.value
}
493968
func (o *EnableRulesOption) Equal(o2 *EnableRulesOption) bool {
	if o2 == nil {
		return o.value == true
	}
	return o.value == o2.value
}
1274687
func (o *PercentileComputationOption) Equal(o2 *PercentileComputationOption) bool {
	if o2 == nil {
		return o.value == true
	}
	return o.value == o2.value
}
1284348
func (o *TagFiltersOption) Equal(o2 *TagFiltersOption) bool {
	return o.comp.Equal(&o2.comp)
}
561872
func (k Key) Equal(k2 Key) bool {
	return k.string == k2.string
}
1255767
func (t SimpleType) Equal(u convert.Equaler) bool {
	other, ok := u.(SimpleType)
	if !ok {
		return false
	}
	if t.DefaultValue != other.DefaultValue {
		return false
	}
	return t.Kind == other.Kind
}