func newSargAnd(expr *expression.And) *sargAnd { rv := &sargAnd{} rv.sarg = func(expr2 expression.Expression) (spans Spans, err error) { if expr.EquivalentTo(expr2) { return _SELF_SPANS, nil } for _, op := range expr.Operands() { s := SargFor(op, expr2) if s == nil { continue } if spans == nil { spans = s } else { spans = constrain(spans, s) } } return } return rv }