```
milovidov-desktop :) CREATE TABLE perf_lc_num(　        num UInt8,　        arr Array(LowCardinality(Int64)) default [num]　        ) ENGINE = TinyLog

CREATE TABLE perf_lc_num
(
    `num` UInt8,
    `arr` Array(LowCardinality(Int64)) DEFAULT [num]
)
ENGINE = TinyLog

Query id: e95f9a71-5795-4dea-8d80-4729fc8016b9

Ok.

0 rows in set. Elapsed: 0.002 sec. 

milovidov-desktop :) INSERT INTO perf_lc_num (num)
:-]         SELECT toUInt8(number)
:-]         FROM numbers(100000000)

INSERT INTO perf_lc_num (num) SELECT toUInt8(number)
FROM numbers(100000000)

Query id: 1101fd75-a545-4809-acb5-8afa2fae80c0


Received exception from server (version 20.13.1):
Code: 49. DB::Exception: Received from localhost:9000. DB::Exception: Got empty stream for DataTypeLowCardinality keys.: While executing SinkToOutputStream. 

0 rows in set. Elapsed: 0.045 sec. 

milovidov-desktop :) INSERT INTO perf_lc_num (num)　        SELECT toUInt8(number)　        FROM numbers(100000000)

INSERT INTO perf_lc_num (num) SELECT toUInt8(number)
FROM numbers(100000000)

Query id: 0ad8532a-5c6e-4590-84cd-7e00759d152d


Received exception from server (version 20.13.1):
Code: 49. DB::Exception: Received from localhost:9000. DB::Exception: Got empty stream for DataTypeLowCardinality keys.: While executing SinkToOutputStream. 

0 rows in set. Elapsed: 0.033 sec.
```

if (!column->empty())
            res.insert(ColumnWithTypeAndName(std::move(column), name_type.type, name_type.name));
    }
    if (!res || streams.begin()->second->compressed.eof())
    {
        is_finished = true;
        streams.clear();
    }
    auto flatten = Nested::flatten(res);
    return Chunk(flatten.getColumns(), flatten.rows());
}
void TinyLogSource::readData(const String & name, const IDataType & type, IColumn & column, UInt64 limit)
{
    IDataType::DeserializeBinaryBulkSettings settings; 
    settings.getter = [&] (const IDataType::SubstreamPath & path) -> ReadBuffer *
    {
        String stream_name = IDataType::getFileNameForStream(name, path);
        if (!streams.count(stream_name))
        {
            String file_path = storage.files[stream_name].data_file_path;
            streams[stream_name] = std::make_unique<Stream>(
                storage.disk, file_path, max_read_buffer_size, file_sizes[fileName(file_path)]);
        }
        return &streams[stream_name]->compressed;
    };
    if (deserialize_states.count(name) == 0)
        type.deserializeBinaryBulkStatePrefix(settings, deserialize_states[name]);
    type.deserializeBinaryBulkWithMultipleStreams(column, limit, settings, deserialize_states[name]);
}
class TinyLogBlockOutputStream final : public IBlockOutputStream