21.11.3.6
```
cat /etc/clickhouse-server/node.tsv
1,test

cat /etc/clickhouse-server/node_dictionary.xml
<dictionaries>
    <dictionary>
        <name>node</name>
        <source>
            <file>
                <path>/etc/clickhouse-server/node.tsv</path>
                <format>CSV</format>
            </file>
        </source>
        <lifetime>0</lifetime>
        <layout><flat /></layout>
        <structure>
            <id><name>key</name></id>
            <attribute>
                <name>name</name>
                <type>String</type>
                <null_value></null_value>
            </attribute>
        </structure>
    </dictionary>
</dictionaries>

create table default.node ( key UInt64, name String ) Engine=Dictionary(node);

select * from default.node;
┌─key─┬─name─┐
│   1 │ test │
└─────┴──────┘

/etc/init.d/clickhouse-server restart

<Error> Application: DB::Exception: Cannot attach 1 tables due to cyclic dependencies. See server log for details.
<Information> Application: shutting down
```
const InterpreterCreateQuery::TableProperties & properties)
{
    
    ContextPtr current_context = getContext();
    ContextMutablePtr create_context = Context::createCopy(current_context);
    create_context->setQueryContext(std::const_pointer_cast<Context>(current_context));
    auto make_drop_context = [&](bool on_error) -> ContextMutablePtr
    {
        ContextMutablePtr drop_context = Context::createCopy(current_context);
        drop_context->makeQueryContext();
        if (on_error)
            return drop_context;
        if (auto txn = current_context->getZooKeeperMetadataTransaction())
        {
            
            
            drop_context->resetZooKeeperMetadataTransaction();
            auto drop_txn = std::make_shared<ZooKeeperMetadataTransaction>(txn->getZooKeeper(), txn->getDatabaseZooKeeperPath(),
                                                                           txn->isInitialQuery(), txn->getTaskZooKeeperPath());
            drop_context->initZooKeeperMetadataTransaction(drop_txn);
        }
        return drop_context;
    };
    auto ast_drop = std::make_shared<ASTDropQuery>();
    String table_to_replace_name = create.getTable();
    {
        auto database = DatabaseCatalog::instance().getDatabase(create.getDatabase());
        if (database->getUUID() == UUIDHelpers::Nil)
            throw Exception(ErrorCodes::INCORRECT_QUERY,
                            "{} query is supported only for Atomic databases",