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.
{
    switch (default_table_engine)
    {
        case DefaultTableEngine::Log:
            return "Log";
        case DefaultTableEngine::StripeLog:
            return "StripeLog";
        case DefaultTableEngine::MergeTree:
            return "MergeTree";
        case DefaultTableEngine::ReplacingMergeTree:
            return "ReplacingMergeTree";
        case DefaultTableEngine::ReplicatedMergeTree:
            return "ReplicatedMergeTree";
        case DefaultTableEngine::ReplicatedReplacingMergeTree:
            return "ReplicatedReplacingMergeTree";
        case DefaultTableEngine::Memory:
            return "Memory";
        default:
            throw Exception("default_table_engine is set to unknown value", ErrorCodes::LOGICAL_ERROR);
    }
}
void InterpreterCreateQuery::setDefaultTableEngine(ASTStorage & storage, ContextPtr local_context)