**Describe the bug**
```
SELECT pow('0.0000000257', NULL), pow(pow(NULL, NULL), NULL) - NULL, (val + NULL) = (rval * 0), * FROM (SELECT (val + 256) = (NULL * NULL), toLowCardinality(toNullable(dummy)) AS val FROM system.one) AS s1 ANY LEFT JOIN (SELECT toLowCardinality(dummy) AS rval FROM system.one) AS s2 ON (val + 0) = (rval * 255)
```

https://clickhouse-test-reports.s3.yandex.net/19868/c39ee3f58c85de0f2a7b609377e2f138305dc745/fuzzer_msan/server.log
if (!columns.empty())
        {
            /// 
            if (should_evaluate_missing_defaults)
            {
                auto block = prev_reader->sample_block.cloneWithColumns(read_result.columns);
                auto block_before_prewhere = read_result.block_before_prewhere;
                for (auto & ctn : block)
                {
                    if (block_before_prewhere.has(ctn.name))
                        block_before_prewhere.erase(ctn.name);
                }
                if (block_before_prewhere)
                {
                    if (read_result.need_filter)
                    {
                        auto old_columns = block_before_prewhere.getColumns();
                        filterColumns(old_columns, read_result.getFilterOriginal()->getData());
                        block_before_prewhere.setColumns(std::move(old_columns));
                    }
                    for (auto && ctn : block_before_prewhere)
                        block.insert(std::move(ctn));
                }
                merge_tree_reader->evaluateMissingDefaults(block, columns);
            }
            /// 
            merge_tree_reader->performRequiredConversions(columns);
        }
        read_result.columns.reserve(read_result.columns.size() + columns.size());
        for (auto & column : columns)