And waits for them. That's pointless.
std::string partition_id;
    bool is_mutation;
    Float64 elapsed;
    Float64 progress;
    UInt64 num_parts;
    UInt64 total_size_bytes_compressed;
    UInt64 total_size_marks;
    UInt64 total_rows_count;
    UInt64 bytes_read_uncompressed;
    UInt64 bytes_written_uncompressed;
    UInt64 rows_read;
    UInt64 rows_written;
    UInt64 columns_written;
    UInt64 memory_usage;
    UInt64 thread_id;
    std::string merge_type;
    std::string merge_algorithm;
};
struct FutureMergedMutatedPart;
struct MergeListElement : boost::noncopyable
{
    const StorageID table_id;
    std::string partition_id;
    const std::string result_part_name;
    const std::string result_part_path;
    Int64 result_data_version{};
    bool is_mutation{};
    UInt64 num_parts{};
    Names source_part_names;
    Names source_part_paths;