22.2.1.4422.

```
create table test_alias (K Int64, D Date, S String, B Int64 Alias length(S)) Engine=MergeTree order by K;
insert into test_alias select number, today(), 'sdfsdfsdfsdfsdfds' from numbers(10000000);

session1: 
clickhouse-benchmark -c 10 <<< "insert into test_alias select number, today(), 'sdfsdfsdfsdfsdfds' from numbers(10000)"

session2: 
alter table test_alias drop column B;
0 rows in set. Elapsed: 251.043 sec.
```

especially it can be a problem with S3 disks

Alias columns do not persist in parts even in columns.txt
}
        }
        else if (command.type == AlterCommand::REMOVE_TTL && !metadata.hasAnyTableTTL())
        {
            throw Exception{"Table doesn't have any table TTL expression, cannot remove", ErrorCodes::BAD_ARGUMENTS};
        }
        else if (command.type == AlterCommand::REMOVE_SAMPLE_BY && !metadata.hasSamplingKey())
        {
            throw Exception{"Table doesn't have SAMPLE BY, cannot remove", ErrorCodes::BAD_ARGUMENTS};
        }
        
        if (command.type == AlterCommand::MODIFY_COLUMN || command.type == AlterCommand::ADD_COLUMN)
        {
            if (command.default_expression)
            {
                DataTypePtr data_type_ptr;
                
                if (!command.data_type) 
                    data_type_ptr = all_columns.get(column_name).type;
                else
                    data_type_ptr = command.data_type;
                const auto & final_column_name = column_name;
                const auto tmp_column_name = final_column_name + "_tmp_alter" + toString(randomSeed());
                default_expr_list->children.emplace_back(setAlias(
                    addTypeConversionToAST(std::make_shared<ASTIdentifier>(tmp_column_name), data_type_ptr->getName()),
                    final_column_name));
                default_expr_list->children.emplace_back(setAlias(command.default_expression->clone(), tmp_column_name));
            } 
            else if (all_columns.has(column_name) && command.data_type)
            {