**Describe the bug**
`CODEC` is allowed for `ALIAS` column

**How to reproduce**
``` sql
CREATE TABLE t102
(
    `c0` ALIAS c1 CODEC(ZSTD),
    `c1` String
)
ENGINE = Memory()

Ok.

DESCRIBE TABLE t102

┌─name─┬─type───┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ c0   │ String │ ALIAS        │ c1                 │         │ ZSTD(1)          │                │
│ c1   │ String │              │                    │         │                  │                │
└──────┴────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘

```
**Expected behavior**
Error
}
            }
        }
        else if (command.type == AlterCommand::ADD_COLUMN)
        {
            if (has_column && command.if_not_exists)
                command.ignore = true;
        }
        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, const Context & 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)
        {