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
```
startupTables(pool, force_restore, force_attach);
    }
}
void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTablesMetadata & metadata)
{
    size_t prev_tables_count = metadata.parsed_tables.size();
    size_t prev_total_dictionaries = metadata.total_dictionaries;
    auto process_metadata = [&metadata, this](const String & file_name)
    {
        fs::path path(getMetadataPath());
        fs::path file_path(file_name);
        fs::path full_path = path / file_path;
        try
        {
            auto ast = parseQueryFromMetadata(log, getContext(), full_path.string(),  true,  false);
            if (ast)
            {
                auto * create_query = ast->as<ASTCreateQuery>();
                create_query->setDatabase(database_name);
                if (fs::exists(full_path.string() + detached_suffix))
                {
                    
                    
                    
                    const std::string table_name = unescapeForFileName(file_name.substr(0, file_name.size() - 4));
                    LOG_DEBUG(log, "Skipping permanently detached table {}.", backQuote(table_name));
                    return;
                }
                TableNamesSet loading_dependencies = getDependenciesSetFromCreateQuery(getContext(), ast);
                QualifiedTableName qualified_name{database_name, create_query->getTable()};