**Describe the unexpected behaviour**

```
:) CREATE TEMPORARY TABLE test (x INT NOT NULL DEFAULT 1)

Syntax error: failed at position 52 ('DEFAULT') (line 3, col 22):

CREATE TEMPORARY TABLE test
(
    `x` INT NOT NULL DEFAULT 1
                     ^
)

Expected one of: COMMENT, CODEC, TTL, token, Comma, ClosingRoundBracket
```

But this query succeeded:

```
:) CREATE TEMPORARY TABLE test (x INT DEFAULT 1 NOT NULL)

CREATE TEMPORARY TABLE test
(
    `x` INT NOT NULL DEFAULT 1
)
```
{
    if (create.as_table_function)
        return;
    if (create.is_dictionary || create.is_ordinary_view || create.is_live_view || create.is_window_view)
        return;
    if (create.is_materialized_view && create.to_table_id)
        return;
    if (create.temporary)
    {
        if (create.storage && create.storage->engine && create.storage->engine->name != "Memory")
            throw Exception(ErrorCodes::INCORRECT_QUERY, "Temporary tables can only be created with ENGINE = Memory, not {}",
                create.storage->engine->name);
        
        
        
        
        if (create.storage && !create.storage->engine)
            throw Exception(ErrorCodes::INCORRECT_QUERY, "Invalid storage definition for temporary table: must be either ENGINE = Memory or empty");
        auto engine_ast = std::make_shared<ASTFunction>();
        engine_ast->name = "Memory";
        engine_ast->no_empty_args = true;
        auto storage_ast = std::make_shared<ASTStorage>();
        storage_ast->set(storage_ast->engine, engine_ast);
        create.set(create.storage, storage_ast);