```
create table test_lc(a LowCardinality(String)) Engine = MergeTree order by tuple();

insert into test_lc values ('abcd');

select * from test_lc format Parquet;

Exception on client:
Code: 50. DB::Exception: The type "LowCardinality" of a column "a" is not supported for conversion into a Parquet data format

Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.3.12 revision 54433.
```

Shorter version of the test:
```
select toLowCardinality('abcd') format Parquet;

Exception on client:
Code: 50. DB::Exception: The type "LowCardinality" of a column "toLowCardinality('abcd')" is not supported for conversion into a Parquet data format

Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.3.12 revision 54433.
```

<s>P.S. Insert works ok.</s>
```
# clickhouse-client --query="select 'ab' as a format Parquet" | clickhouse-client --query="insert into test_lc format Parquet"
```

UPD: not ok with `LowCardinality(Nullable(String))` (see comment). 
{
        auto & column_data = assert_cast<ColumnVector<UInt32> &>(*internal_column).getData();
        column_data.reserve(arrow_column->length());
        for (size_t chunk_i = 0, num_chunks = static_cast<size_t>(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i)
        {
            auto & chunk = static_cast<arrow::TimestampArray &>(*(arrow_column->chunk(chunk_i)));
            const auto & type = static_cast<const ::arrow::TimestampType &>(*chunk.type());
            UInt32 divide = 1;
            const auto unit = type.unit();
            switch (unit)
            {
                case arrow::TimeUnit::SECOND:
                    divide = 1;
                    break;
                case arrow::TimeUnit::MILLI:
                    divide = 1000;
                    break;
                case arrow::TimeUnit::MICRO:
                    divide = 1000000;
                    break;
                case arrow::TimeUnit::NANO:
                    divide = 1000000000;
                    break;
            }
            for (size_t value_i = 0, length = static_cast<size_t>(chunk.length()); value_i < length; ++value_i)
            {
                auto timestamp = static_cast<UInt32>(chunk.Value(value_i) / divide);