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 ASTExpressionList & columns_ast, ContextPtr context_, bool attach)
{
    
    /** all default_expressions as a single expression list,
     *  mixed with conversion-columns for each explicitly specified type */
    ASTPtr default_expr_list = std::make_shared<ASTExpressionList>();
    NamesAndTypesList column_names_and_types;
    bool make_columns_nullable = !attach && context_->getSettingsRef().data_type_default_nullable;
    for (const auto & ast : columns_ast.children)
    {
        const auto & col_decl = ast->as<ASTColumnDeclaration &>();
        DataTypePtr column_type = nullptr;
        if (col_decl.type)
        {
            column_type = DataTypeFactory::instance().get(col_decl.type);
            const auto * aggregate_function_type = typeid_cast<const DataTypeAggregateFunction *>(column_type.get());
            if (attach && aggregate_function_type && aggregate_function_type->isVersioned())
                aggregate_function_type->setVersion(0, true);
            if (col_decl.null_modifier)
            {
                if (column_type->isNullable())
                    throw Exception("Can't use [NOT] NULL modifier with Nullable type", ErrorCodes::ILLEGAL_SYNTAX_FOR_DATA_TYPE);
                if (*col_decl.null_modifier)
                    column_type = makeNullable(column_type);
            }