**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
extern const int SUSPICIOUS_TYPE_FOR_LOW_CARDINALITY;
    extern const int DICTIONARY_ALREADY_EXISTS;
    extern const int ILLEGAL_SYNTAX_FOR_DATA_TYPE;
    extern const int ILLEGAL_COLUMN;
}
namespace fs = std::filesystem;
InterpreterCreateQuery::InterpreterCreateQuery(const ASTPtr & query_ptr_, Context & context_)
    : query_ptr(query_ptr_), context(context_)
{
}
BlockIO InterpreterCreateQuery::createDatabase(ASTCreateQuery & create)
{
    String database_name = create.database;
    auto guard = DatabaseCatalog::instance().getDDLGuard(database_name, "");
    
    if (DatabaseCatalog::instance().isDatabaseExist(database_name))
    {
        if (create.if_not_exists)
            return {};
        else
            throw Exception("Database " + database_name + " already exists.", ErrorCodes::DATABASE_ALREADY_EXISTS);
    }
    
    String database_name_escaped = escapeForFileName(database_name);
    fs::path metadata_path = fs::canonical(context.getPath());
    fs::path metadata_file_tmp_path = metadata_path / "metadata" / (database_name_escaped + ".sql.tmp");
    fs::path metadata_file_path = metadata_path / "metadata" / (database_name_escaped + ".sql");
    if (!create.storage && create.attach)
    {
        if (!fs::exists(metadata_file_path))