in pkg/query/logical/tag_filter.go [417:455]
func (r *rangeTag) Match(accessor TagValueIndexAccessor, registry TagSpecRegistry) (bool, error) {
expr, err := tagExpr(accessor, registry, r.Name)
if err != nil {
return false, err
}
if r.Opts.Lower != nil {
lower := r.Opts.Lower
c, b := lower.Compare(expr)
if !b {
return false, nil
}
if r.Opts.IncludesLower {
if c > 0 {
return false, nil
}
} else {
if c >= 0 {
return false, nil
}
}
}
if r.Opts.Upper != nil {
upper := r.Opts.Upper
c, b := upper.Compare(expr)
if !b {
return false, nil
}
if r.Opts.IncludesUpper {
if c < 0 {
return false, nil
}
} else {
if c <= 0 {
return false, nil
}
}
}
return true, nil
}