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

```
const SelectQueryInfo & info_, ContextPtr context_, const Block & header_, size_t hash_functions_)
    : WithContext(context_), header(header_), query_info(info_), hash_functions(hash_functions_)
{
    auto atom_from_ast = [this](auto & node, auto, auto & constants, auto & out) { return traverseAtomAST(node, constants, out); };
    rpn = std::move(RPNBuilder<RPNElement>(info_, getContext(), atom_from_ast).extractRPN());
}
bool MergeTreeIndexConditionBloomFilter::alwaysUnknownOrTrue() const
{
    std::vector<bool> rpn_stack;
    for (const auto & element : rpn)
    {
        if (element.function == RPNElement::FUNCTION_UNKNOWN
            || element.function == RPNElement::ALWAYS_TRUE)
        {
            rpn_stack.push_back(true);
        }
        else if (element.function == RPNElement::FUNCTION_EQUALS
            || element.function == RPNElement::FUNCTION_NOT_EQUALS
            || element.function == RPNElement::FUNCTION_HAS