
create table test1 (a Float32,  b Float32 ) engine = MergeTree order by a ;
insert into test1 values (0.1,0.1), (0.2,0.2);
select count() from test1 where b = 0.1;
0 
select count() from test1 where b = toFloat32(0.1);
1
select count() from test1 where a > 0;
0
select count() from test1 where a > 0.0;
2
select count() from test1 where b > 0;
2

version 22.1.3.7  

{
    size_t res = 0;
    for (const auto & element : rpn)
    {
        if (element.function == RPNElement::FUNCTION_NOT_IN_RANGE
            || element.function == RPNElement::FUNCTION_IN_RANGE
            || element.function == RPNElement::FUNCTION_IS_NULL
            || element.function == RPNElement::FUNCTION_IS_NOT_NULL
            || element.function == RPNElement::FUNCTION_IN_SET
            || element.function == RPNElement::FUNCTION_NOT_IN_SET)
        {
            if (element.key_column > res)
                res = element.key_column;
        }
    }
    return res;
}
bool KeyCondition::hasMonotonicFunctionsChain() const
{
    for (const auto & element : rpn)
        if (!element.monotonic_functions_chain.empty()
            || (element.set_index && element.set_index->hasMonotonicFunctionsChain()))
            return true;
    return false;
}
}