You have to provide the following information whenever possible.

**Describe the bug**

When use chinese as field name for nested type and query:

````
SELECT * from table array join `xxxx`;
````

it will raise error:

No columns in nested table xxx

**Does it reproduce on recent release?**

ClickHouse server version 21.3.5 revision 54447.

**How to reproduce**

1. create table

````
CREATE TABLE tmp.test1 (`id` String, `products` Nested (`产品` Array(String), `销量` Array(Int32))) ENGINE = ReplacingMergeTree ORDER BY id
````

2.  query

````
SELECT * FROM tmp.test2 array join products;
````

Error：

````
Received exception from server (version 21.3.5):
Code: 208. DB::Exception: Received from localhost:9000. DB::Exception: No columns in nested table products. 
````


**Additional Information**

I've tried using english character as field name, and it works.
{
    NamesAndTypesList res;
    auto nested_types = getSubcolumnsOfNested(names_and_types);
    for (const auto & name_type : names_and_types)
        if (!nested_types.count(splitName(name_type.name).first))
            res.push_back(name_type);
    for (const auto & name_type : nested_types)
        res.emplace_back(name_type.first, name_type.second);
    return res;
}
NamesAndTypesList convertToSubcolumns(const NamesAndTypesList & names_and_types)
{
    auto nested_types = getSubcolumnsOfNested(names_and_types);
    auto res = names_and_types;
    for (auto & name_type : res)
    {
        auto split = splitName(name_type.name);
        if (name_type.isSubcolumn() || split.second.empty())
            continue;
        auto it = nested_types.find(split.first);
        if (it != nested_types.end())
            name_type = NameAndTypePair{split.first, split.second, it->second, it->second->getSubcolumnType(split.second)};
    }
    return res;
}
void validateArraySizes(const Block & block)
{
    
    std::map<std::string, size_t> nested;