After you create table with fields with dots and after alter table clickhouse throw exception about bad cast
version 20.12.3

How to reproduce

```
CREATE TABLE test_nested
(
    `id` String,
    `with_dot.str` String,
    `with_dot.array` Array(Int32)
)
ENGINE = MergeTree()
ORDER BY id


Insert Into test_nested (id,`with_dot.str`, `with_dot.array`) VALUES('123','asd',[1,2])

select * FROM test_nested


SELECT *
FROM test_nested

Query id: 42f26a6e-7573-4169-a4a1-9fe7022ba656

┌─id──┬─with_dot.str─┬─with_dot.array─┐
│ 123 │ asd          │ [1,2]          │
└─────┴──────────────┴────────────────┘

alter table test_nested ADD COLUMN `with_dot.bool` UInt8


SELECT *
FROM test_nested

Query id: 3ea8ae6b-1e0a-4ae5-b4d0-dcdcb6b7b8f8


Received exception from server (version 20.12.3):
Code: 49. DB::Exception: Received from localhost:9000. DB::Exception: Bad cast from type DB::DataTypeNumber<char8_t> to DB::DataTypeArray: (while reading from part /var/lib/clickhouse/store...
```

I think that happend because clickhouse after altert think that field `with_dot.bool` is nested and trying to cast to array, but i'm not creating nested field, i'm only use field name with `.`

String offsets_name = Nested::extractTableName(requested_column->name);
                auto & offsets_column = offset_columns[offsets_name];
                
                
                if (!offsets_column || offsets_column->empty())
                    offsets_column = array->getOffsetsPtr();
            }
        }
        should_evaluate_missing_defaults = false;
        
        requested_column = columns.begin();
        for (size_t i = 0; i < num_columns; ++i, ++requested_column)
        {
            auto & [name, type] = *requested_column;
            if (res_columns[i] && arrayHasNoElementsRead(*res_columns[i]))
                res_columns[i] = nullptr;
            if (res_columns[i] == nullptr)
            {
                if (metadata_snapshot->getColumns().hasDefault(name))
                {
                    should_evaluate_missing_defaults = true;
                    continue;
                }
                String offsets_name = Nested::extractTableName(name);
                auto offset_it = offset_columns.find(offsets_name);
                if (offset_it != offset_columns.end())
                {
                    ColumnPtr offsets_column = offset_it->second;
                    DataTypePtr nested_type = typeid_cast<const DataTypeArray &>(*type).getNestedType();
                    size_t nested_rows = typeid_cast<const ColumnUInt64 &>(*offsets_column).getData().back();