Clickhouse version 21.10.6.2,21.10.5.3 and lower:
```
CREATE TABLE repro (
`id` UInt64,
`version` UInt16,
`conversations.id` Array(UInt64),
`conversations.routings.id` Array(Array(UInt64))
)
ENGINE = ReplacingMergeTree(version)
ORDER BY (id)
SETTINGS min_bytes_for_wide_part = 0, min_rows_for_wide_part = 0;

INSERT INTO repro (`id`, `version`, `conversations.id`, `conversations.routings.id`)
VALUES (1, 1, [1], [[1]]);

select * from repro;

┌─id─┬─version─┬─conversations.id─┬─conversations.routings.id─┐
│  1 │       1 │ [1]              │ [[1]]                     │
└────┴─────────┴──────────────────┴───────────────────────────┘

```
CH version: 21.11.2.2 and upper:

```
CREATE TABLE repro (
`id` UInt64,
`version` UInt16,
`conversations.id` Array(UInt64),
`conversations.routings.id` Array(Array(UInt64))
)
ENGINE = ReplacingMergeTree(version)
ORDER BY (id)
SETTINGS min_bytes_for_wide_part = 0, min_rows_for_wide_part = 0;

INSERT INTO repro (`id`, `version`, `conversations.id`, `conversations.routings.id`)
VALUES (1, 1, [1], [[1]]);

select * from repro;

Received exception from server (version 21.11.2):                        <------------- unexpected, it should have results.
Code: 44. DB::Exception: Received from localhost:9000. DB::Exception: There is no subcolumn routings.id in type Nested(id UInt64, `routings.id` Array(UInt64)): While executing MergeTreeInOrder. (ILLEGAL_COLUMN)

```

**Unexpected Behaviour:**
It should not have an exception in the select query.



{
    enumerateStreams(path, callback, {getPtr(), nullptr, nullptr, nullptr});
}
void ISerialization::enumerateStreams(SubstreamPath & path, const StreamCallback & callback, const DataTypePtr & type) const
{
    enumerateStreams(path, callback, {getPtr(), type, nullptr, nullptr});
}
void ISerialization::serializeBinaryBulk(const IColumn & column, WriteBuffer &, size_t, size_t) const
{
    throw Exception(ErrorCodes::MULTIPLE_STREAMS_REQUIRED, "Column {} must be serialized with multiple streams", column.getName());
}
void ISerialization::deserializeBinaryBulk(IColumn & column, ReadBuffer &, size_t, double) const
{
    throw Exception(ErrorCodes::MULTIPLE_STREAMS_REQUIRED, "Column {} must be deserialized with multiple streams", column.getName());
}
void ISerialization::serializeBinaryBulkWithMultipleStreams(
    const IColumn & column,
    size_t offset,
    size_t limit,
    SerializeBinaryBulkSettings & settings,
    SerializeBinaryBulkStatePtr & ) const
{
    if (WriteBuffer * stream = settings.getter(settings.path))
        serializeBinaryBulk(column, *stream, offset, limit);
}
void ISerialization::deserializeBinaryBulkWithMultipleStreams(