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 (local_context->getSettingsRef().default_table_engine.value == DefaultTableEngine::None)
        throw Exception(ErrorCodes::ENGINE_REQUIRED, "Table engine is not specified in CREATE query");
    auto engine_ast = std::make_shared<ASTFunction>();
    auto default_table_engine = local_context->getSettingsRef().default_table_engine.value;
    engine_ast->name = getTableEngineName(default_table_engine);
    engine_ast->no_empty_args = true;
    storage.set(storage.engine, engine_ast);
}
void InterpreterCreateQuery::setEngine(ASTCreateQuery & create) const