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::DROP_COLUMN
                || command.type == AlterCommand::COMMENT_COLUMN
                || command.type == AlterCommand::RENAME_COLUMN)
        {
            if (!has_column && command.if_exists)
                command.ignore = true;
        }
    }
    prepared = true;
}
void AlterCommands::validate(const StorageInMemoryMetadata & metadata, ContextPtr context) const
{
    auto all_columns = metadata.columns;
    
    ASTPtr default_expr_list = std::make_shared<ASTExpressionList>();
    NameSet modified_columns, renamed_columns;
    for (size_t i = 0; i < size(); ++i)
    {
        const auto & command = (*this)[i];
        const auto & column_name = command.column_name;
        if (command.type == AlterCommand::ADD_COLUMN)
        {
            if (all_columns.has(column_name) || all_columns.hasNested(column_name))
            {
                if (!command.if_not_exists)
                    throw Exception{"Cannot add column " + backQuote(column_name) + ": column with this name already exists",
                                    ErrorCodes::DUPLICATE_COLUMN};
                else
                    continue;
            }