

such as
```
create view view1 as 
with t as (select number n from numbers(3))
select n from t
```
local_context->getMacros()->expand(zk_path, info);
            if (!info.expanded_uuid)
                return;
        }
        throw Exception("Seems like cluster is configured for cross-replication, "
                        "but zookeeper_path for ReplicatedMergeTree is not specified or contains {uuid} macro. "
                        "It's not supported for cross replication, because tables must have different UUIDs. "
                        "Please specify unique zookeeper_path explicitly.", ErrorCodes::INCORRECT_QUERY);
    }
}
BlockIO InterpreterCreateQuery::execute()
{
    FunctionNameNormalizer().visit(query_ptr.get());
    auto & create = query_ptr->as<ASTCreateQuery &>();
    if (!create.cluster.empty())
    {
        prepareOnClusterQuery(create, getContext(), create.cluster);
        return executeDDLQueryOnCluster(query_ptr, getContext(), getRequiredAccess());
    }
    getContext()->checkAccess(getRequiredAccess());
    ASTQueryWithOutput::resetOutputASTIfExist(create);
    
    if (!create.database.empty() && create.table.empty())
        return createDatabase(create);
    else if (!create.is_dictionary)
        return createTable(create);
    else
        return createDictionary(create);
}
AccessRightsElements InterpreterCreateQuery::getRequiredAccess() const