21.5.1.6605

```sql
create table bftest (k Int64, x Array(Int64), index ix1(x) TYPE bloom_filter GRANULARITY 3) 
Engine=MergeTree order by k;

insert into bftest select number, 
    arrayMap(i->rand64()%565656, range(10)) from numbers(10000000);
insert into bftest select number, 
    arrayMap(i->rand64()%565656, range(10)) from numbers(100000000);

###  hasAny(x, [42,-42])
select count() from bftest where hasAny(x, [42,-42]);
Elapsed: 0.909 sec. Processed 110.00 million rows

### has (x, 42) or has(x, -42)
select count() from bftest where has (x, 42) or has(x, -42);
Elapsed: 0.143 sec. Processed 6.55 million rows

```
bool reversed = false;
            const ASTLiteral * constant = nullptr;
            if (const ASTLiteral * left = function->arguments->children[0]->as<ASTLiteral>())
            {
                constant = left;
                reversed = true;
            }
            else if (const ASTLiteral * right = function->arguments->children[1]->as<ASTLiteral>())
            {
                constant = right;
            }
            else
                return false;
            Field zero(0);
            return (function->name == "equals"  
                    && !applyVisitor(FieldVisitorAccurateEquals(), constant->value, zero))
                || (function->name == "notEquals"  
                    && applyVisitor(FieldVisitorAccurateEquals(), constant->value, zero))
                || (function->name == (reversed ? "less" : "greater")   
                    && !applyVisitor(FieldVisitorAccurateLess(), constant->value, zero))
                || (function->name == (reversed ? "lessOrEquals" : "greaterOrEquals")   
                    && applyVisitor(FieldVisitorAccurateLess(), zero, constant->value));
        }
    }
    return false;
}
bool MergeTreeIndexConditionBloomFilter::traverseASTEquals(