The only columns that show what they are supposed to are `database`, `table`, `name` and `disk`.
The other columns borrow values from a neighbour.
```
┌─table────────┬─partition_id─┬─name────────────────────────────────┬─disk────┬─reason─┬─min_block_number─┬─max_block_number─┬───level─┐
│ actions_log  │ ignored      │ ignored_202107_714380_714380_0      │ default │        │           202107 │           714380 │  714380 │
│ actions_log  │ ignored      │ ignored_202107_713838_713838_0      │ default │        │           202107 │           713838 │  713838 │
│ actions_log  │ ignored      │ ignored_202107_713875_713875_0      │ default │        │           202107 │           713875 │  713875 │
│ actions_log  │ ignored      │ ignored_202107_725839_725839_0      │ default │        │           202107 │           725839 │  725839 │
│ actions_log  │ ignored      │ ignored_202107_713927_713927_0      │ default │        │           202107 │           713927 │  713927 │
│ actions_log  │ ignored      │ ignored_202107_714009_714009_0      │ default │        │           202107 │           714009 │  714009 │
```
throttler->add(block.bytes());
        MergeTreePartInfo new_part_info("all", 0, 0, 0);
        MergeTreeData::MutableDataPartPtr new_projection_part =
            std::make_shared<MergeTreeDataPartInMemory>(data, projection_name, new_part_info, volume, projection_name, new_data_part.get());
        new_projection_part->is_temp = false;
        new_projection_part->setColumns(block.getNamesAndTypesList());
        MergeTreePartition partition{};
        IMergeTreeDataPart::MinMaxIndex minmax_idx{};
        new_projection_part->partition = std::move(partition);
        new_projection_part->minmax_idx = std::move(minmax_idx);
        MergedBlockOutputStream part_out(
            new_projection_part,
            metadata_snapshot->projections.get(projection_name).metadata,
            block.getNamesAndTypesList(),
            {},
            CompressionCodecFactory::instance().get("NONE", {}));
        part_out.writePrefix();
        part_out.write(block);
        part_out.writeSuffixAndFinalizePart(new_projection_part);
        new_projection_part->checksums.checkEqual(checksums,  true);
        new_data_part->addProjectionPart(projection_name, std::move(new_projection_part));
    }
    MergeTreeData::DataPart::Checksums checksums;
    if (!checksums.read(in))
        throw Exception("Cannot deserialize checksums", ErrorCodes::CORRUPTED_DATA);
    NativeBlockInputStream block_in(in, 0);
    auto block = block_in.read();
    throttler->add(block.bytes());
    new_data_part->uuid = part_uuid;
    new_data_part->is_temp = true;