Vertical merges of wide parts fail if there is an array in the table and not all columns are present in parts.
```sql
CREATE TABLE aaa 
(
  a   Array(Int16),
  b   Int8
)
ENGINE = MergeTree
ORDER BY tuple() 
settings
    vertical_merge_algorithm_min_columns_to_activate=1,
    vertical_merge_algorithm_min_rows_to_activate=1,
    min_bytes_for_wide_part=0;

insert into aaa select [], 0;
alter table aaa clear column b;

optimize table aaa final;

Received exception from server (version 22.4.2):
Code: 16. DB::Exception: Received from localhost:9000. 
DB::Exception: There is no column a.size0 in table. (NO_SUCH_COLUMN_IN_TABLE)
```
{
    files.push_back(UUID_FILE_NAME);
}
void IMergeTreeDataPart::loadColumns(bool require)
{
    String path = fs::path(getFullRelativePath()) / "columns.txt";
    auto metadata_snapshot = storage.getInMemoryMetadataPtr();
    if (parent_part)
        metadata_snapshot = metadata_snapshot->projections.get(name).metadata;
    NamesAndTypesList loaded_columns;
    bool exists = metadata_manager->exists("columns.txt");
    if (!exists)
    {
        
        if (require || part_type == Type::COMPACT)
            throw Exception("No columns.txt in part " + name + ", expected path " + path + " on drive " + volume->getDisk()->getName(),
                ErrorCodes::NO_FILE_IN_DATA_PART);
        
        for (const NameAndTypePair & column : metadata_snapshot->getColumns().getAllPhysical())
            if (volume->getDisk()->exists(fs::path(getFullRelativePath()) / (getFileNameForColumn(column) + ".bin")))
                loaded_columns.push_back(column);
        if (columns.empty())
            throw Exception("No columns in part " + name, ErrorCodes::NO_FILE_IN_DATA_PART);
        {
            auto buf = volume->getDisk()->writeFile(path + ".tmp", 4096);
            loaded_columns.writeText(*buf);