
**Describe the unexpected behaviour**
Clickhouse parses enum object unexpectedly when enum object literal value is 08 or 09. I tried to debug the problem and it seems that  Which::type is returning Float64 and hence ENUMparser is throwing error.

**Notice  dot symbol after 8 literal value in generated SQL .  This is not happening for values 07,01,03... so on . This is failing for only ( = 08 and =09)**

**How to reproduce**
````
 :) CREATE TABLE t1 (`Road_Surface_Condition` Enum8('00 - Unkown' = 0,'07 - Others' = 07,'08 - Loose sand and gravel' = 8, '09 - Spilled liquid' = 9),objectId UInt32)Engine=MergeTree ORDER BY objectId

CREATE TABLE t1
(
    `Road_Surface_Condition` Enum8('00 - Unkown' = 0, '07 - Others' = 7, '08 - Loose sand and gravel' = 8, '09 - Spilled liquid' = 9),
    `objectId` UInt32
)
ENGINE = MergeTree
ORDER BY objectId

Query id: fc946666-baeb-49af-bda2-72df3fd5d6ea

Ok.

0 rows in set. Elapsed: 0.028 sec. 

:) CREATE TABLE t1 (`Road_Surface_Condition` Enum8('00 - Unkown' = 0,'07 - Others' = 07),objectId UInt32)Engine=MergeTree ORDER BY objectId

CREATE TABLE t1
(
    `Road_Surface_Condition` Enum8('00 - Unkown' = 0, '07 - Others' = 7),
    `objectId` UInt32
)
ENGINE = MergeTree
ORDER BY objectId

Query id: ee00d448-d038-4876-85c3-a607b0a85d4c


0 rows in set. Elapsed: 0.003 sec. 

Received exception from server (version 22.3.6):
Code: 57. DB::Exception: Received from localhost:9000. DB::Exception: Table default.t1 already exists. (TABLE_ALREADY_EXISTS)

 :) CREATE TABLE t2 (`Road_Surface_Condition` Enum8('00 - Unkown' = 0,'07 - Others' = 07),objectId UInt32)Engine=MergeTree ORDER BY objectId

CREATE TABLE t2
(
    `Road_Surface_Condition` Enum8('00 - Unkown' = 0, '07 - Others' = 7),
    `objectId` UInt32
)
ENGINE = MergeTree
ORDER BY objectId

Query id: f6eb283f-0480-43ad-8fc0-08925a6a13e5

Ok.

0 rows in set. Elapsed: 0.027 sec. 
 :) `
```

* Which ClickHouse server version to use
 v22.6

* Which interface to use, if matters
command line client. 

**Expected behavior**
Table should be created successfully with specified Enum column .

**Error message and/or stacktrace**
```
Received exception from server (version 22.3.6):
Code: 223. DB::exception: Received from localhost:9000. DB::exception: Elements of Enum data type must be of form: 'name' = number, where name is string literal and number is an integer. (UNEXPECTED_AST_STRUCTURE)
```

**Additional context**

ParserStringLiteral uuid_p;
            ASTPtr ast_uuid;
            if (!uuid_p.parse(pos, ast_uuid, expected))
                return false;
            uuid = parseFromString<UUID>(ast_uuid->as<ASTLiteral>()->value.get<String>());
        }
        if (parts.size() == 1) node = std::make_shared<ASTTableIdentifier>(parts[0], std::move(params));
        else node = std::make_shared<ASTTableIdentifier>(parts[0], parts[1], std::move(params));
        node->as<ASTTableIdentifier>()->uuid = uuid;
    }
    else
        node = std::make_shared<ASTIdentifier>(std::move(parts), false, std::move(params));
    return true;
}
ASTPtr createFunctionCast(const ASTPtr & expr_ast, const ASTPtr & type_ast)
{
    
    auto type_literal = std::make_shared<ASTLiteral>(queryToString(type_ast));
    auto expr_list_args = std::make_shared<ASTExpressionList>();
    expr_list_args->children.push_back(expr_ast);
    expr_list_args->children.push_back(std::move(type_literal));
    auto func_node = std::make_shared<ASTFunction>();
    func_node->name = "CAST";
    func_node->arguments = std::move(expr_list_args);
    func_node->children.push_back(func_node->arguments);
    return func_node;
}
namespace
{
    bool parseCastAs(IParser::Pos & pos, ASTPtr & node, Expected & expected)