`PRIMARY KEY (key1,key2,key3)` VS `PRIMARY KEY key1,key2,key3`

```
create database test;
use test;

create table dict_table ( key1 UInt64, key2 String, key3 String, S String)
Engine MergeTree order by (key1, key2, key3);

CREATE DICTIONARY item_dict ( key1 UInt64, key2 String, key3 String, S String ) 
PRIMARY KEY (key1,key2,key3) 
SOURCE(CLICKHOUSE(TABLE dict_table DB 'test' USER 'default')) 
LAYOUT(complex_key_direct());

Expected one of: list of elements, identifier

CREATE DICTIONARY item_dict ( key1 UInt64, key2 String, key3 String, S String ) 
PRIMARY KEY key1,key2,key3
SOURCE(CLICKHOUSE(TABLE dict_table DB 'test' USER 'default')) 
LAYOUT(complex_key_direct());
Ok.

0 rows in set. Elapsed: 0.007 sec.
```
{
    ParserLiteral literal_p;
    ParserKeyValuePairsList key_value_pairs_p;
    ASTPtr ast_lifetime;
    auto res = std::make_shared<ASTDictionaryLifetime>();
    
    if (literal_p.parse(pos, ast_lifetime, expected))
    {
        auto literal = ast_lifetime->as<const ASTLiteral &>();
        if (literal.value.getType() != Field::Types::UInt64)
            return false;
        res->max_sec = literal.value.get<UInt64>();
        node = res;
        return true;
    }
    if (!key_value_pairs_p.parse(pos, ast_lifetime, expected))