Debug build:
```
CREATE TABLE table_float__fuzz_44 (`f` Decimal(18, 3), `u` Int8) ENGINE = MergeTree ORDER BY (f, u);
INSERT INTO table_float VALUES (1.2, 1) (1.3, 2) (1.4, 3) (1.5, 4);
SELECT count() FROM table_float__fuzz_44 WHERE (toUInt64(f) = 1) AND (f >= 1.3) AND (f <= 1.4) AND (u > 0) GROUP BY (toUInt64(f) = 1) AND (f >= 1.3) AND (f <= 100.0001) AND (u > 0);
```

https://s3.amazonaws.com/clickhouse-test-reports/44812/ea04181d11827fd552a86ca4d9c07e1d531e6ca3/fuzzer_astfuzzerdebug/report.html
to_reverse_index.reserve(to_element_types.size());
            for (size_t i = 0; i < to_element_types.size(); ++i)
                to_reverse_index.emplace_back(i);
        }
        return [element_wrappers, from_element_types, to_element_types, to_reverse_index]
            (ColumnsWithTypeAndName & arguments, const DataTypePtr &, const ColumnNullable * nullable_source, size_t input_rows_count) -> ColumnPtr
        {
            const auto * col = arguments.front().column.get();
            size_t tuple_size = to_element_types.size();
            const ColumnTuple & column_tuple = typeid_cast<const ColumnTuple &>(*col);
            Columns converted_columns(tuple_size);
            
            for (size_t i = 0; i < tuple_size; ++i)
            {
                if (to_reverse_index[i])
                {
                    size_t from_idx = *to_reverse_index[i];
                    ColumnsWithTypeAndName element = {{column_tuple.getColumns()[from_idx], from_element_types[from_idx], "" }};
                    converted_columns[i] = element_wrappers[i](element, to_element_types[i], nullable_source, input_rows_count);
                }
                else
                {
                    converted_columns[i] = to_element_types[i]->createColumn()->cloneResized(input_rows_count);
                }
            }
            return ColumnTuple::create(converted_columns);
        };
    }
    
    WrapperType createTupleToMapWrapper(const DataTypes & from_kv_types, const DataTypes & to_kv_types) const