If you have really wide table with many thousands of columns and you want to drop / modify column.
For wide parts it working fine, but for compact clickhouse would try to allocate a lot of memory and going to be killed via OOM killer.



**Does it reproduce on recent release?**

Yes, 21.9

**How to reproduce**
```
clickhouse-client -mn --query="SELECT 'CREATE TABLE xxx_really_wide( ' || arrayStringConcat(groupArray('column_'|| toString(number) || ' Nullable(UInt32)'), ',') || ') ENGINE=MergeTree ORDER BY assumeNotNull(column_0)' FROM numbers(6000) FORMAT TSVRaw" | clickhouse-client -mn

clickhouse-client -mn --query="SELECT arrayStringConcat(replicate('1', range(6000)), ',') FROM numbers(300) FORMAT TSVRaw" | clickhouse-client -mn --query "INSERT INTO xxx_really_wide FORMAT CSV " --send_logs_level='trace'
```

```
SELECT *
FROM system.merges
FORMAT Vertical

Query id: d9751847-a689-49f0-aab3-f868d9c08e34

Row 1:
──────
database:                    default
table:                       xxx_really_wide
elapsed:                     84.8952157
progress:                    0
num_parts:                   1
source_part_names:           ['all_1_1_0']
result_part_name:            all_1_1_0_3
source_part_paths:           ['/var/lib/clickhouse/data/default/xxx_really_wide/all_1_1_0/']
result_part_path:            /var/lib/clickhouse/data/default/xxx_really_wide/all_1_1_0_3/
partition_id:                all
is_mutation:                 1
total_size_bytes_compressed: 456027
total_size_marks:            2
bytes_read_uncompressed:     0
rows_read:                   0
bytes_written_uncompressed:  0
rows_written:                0
columns_written:             0
memory_usage:                16836533272
thread_id:                   16171
merge_type:
merge_algorithm:

Row 2:
──────
database:                    default
table:                       xxx_really_wide
elapsed:                     84.8947852
progress:                    0
num_parts:                   1
source_part_names:           ['all_2_2_0']
result_part_name:            all_2_2_0_3
source_part_paths:           ['/var/lib/clickhouse/data/default/xxx_really_wide/all_2_2_0/']
result_part_path:            /var/lib/clickhouse/data/default/xxx_really_wide/all_2_2_0_3/
partition_id:                all
is_mutation:                 1
total_size_bytes_compressed: 468027
total_size_marks:            2
bytes_read_uncompressed:     0
rows_read:                   0
bytes_written_uncompressed:  0
rows_written:                0
columns_written:             0
memory_usage:                16706294896
thread_id:                   16174
merge_type:
merge_algorithm:
```

DataTypePtr type;
                if (auto physical_column = columns_desc.tryGetPhysical(column))
                    type = physical_column->type;
                else if (column == LightweightDeleteDescription::FILTER_COLUMN.name)
                    type = LightweightDeleteDescription::FILTER_COLUMN.type;
                else
                    throw Exception(ErrorCodes::LOGICAL_ERROR, "Unknown column {}", column);
                auto type_literal = std::make_shared<ASTLiteral>(type->getName());
                const auto & update_expr = kv.second;
                ASTPtr condition = getPartitionAndPredicateExpressionForMutationCommand(command);
                
                if (isArray(type) && !Nested::splitName(column).second.empty())
                {
                    std::shared_ptr<ASTFunction> function = nullptr;
                    auto nested_update_exprs = getExpressionsOfUpdatedNestedSubcolumns(column, all_columns, command.column_to_update_expression);
                    if (!nested_update_exprs)
                    {
                        function = makeASTFunction("validateNestedArraySizes",
                            condition,
                            update_expr->clone(),
                            std::make_shared<ASTIdentifier>(column));
                        condition = makeASTFunction("and", condition, function);
                    }
                    else if (nested_update_exprs->size() > 1)