CREATE TABLE ... **EMPTY** AS SELECT

**Use case**

Create a table with the same structure as SELECT query returns but don't fill it.

**Describe alternatives you've considered**

CREATE TABLE ... AS DESCRIBE (SELECT ...)

\- more consistent but also more clunky.
if (!select_p.parse(pos, select, expected)) 
            {
                
                if (storage || !table_function_p.parse(pos, as_table_function, expected))
                {
                    
                    if (!name_p.parse(pos, as_table, expected))
                        return false;
                    if (s_dot.ignore(pos, expected))
                    {
                        as_database = as_table;
                        if (!name_p.parse(pos, as_table, expected))
                            return false;
                    }
                    
                    if (!storage)
                        storage_p.parse(pos, storage, expected);
                }
            }
        }
    }
    auto comment = parseComment(pos, expected);
    auto query = std::make_shared<ASTCreateQuery>();
    node = query;
    if (as_table_function)
        query->as_table_function = as_table_function;
    query->attach = attach;
    query->replace_table = replace;
    query->create_or_replace = or_replace;
    query->if_not_exists = if_not_exists;