```
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). 
const Block & header, std::string format_name)
    {
        Columns columns_list;
        UInt64 num_rows = 0;
        columns_list.reserve(header.rows());
        using NameToColumnPtr = std::unordered_map<std::string, std::shared_ptr<arrow::ChunkedArray>>;
        NameToColumnPtr name_to_column_ptr;
        for (const auto& column_name : table->ColumnNames())
        {
            std::shared_ptr<arrow::ChunkedArray> arrow_column = table->GetColumnByName(column_name);
            name_to_column_ptr[column_name] = arrow_column;
        }
        for (size_t column_i = 0, columns = header.columns(); column_i < columns; ++column_i)
        {
            ColumnWithTypeAndName header_column = header.getByPosition(column_i);
            if (name_to_column_ptr.find(header_column.name) == name_to_column_ptr.end())
                
                throw Exception{"Column \"" + header_column.name + "\" is not presented in input data",
                                ErrorCodes::THERE_IS_NO_COLUMN};
            std::shared_ptr<arrow::ChunkedArray> arrow_column = name_to_column_ptr[header_column.name];
            arrow::Type::type arrow_type = arrow_column->type()->id();
            
            if (!header_column.type->isNullable() && arrow_column->null_count())
            {
                throw Exception{"Can not insert NULL data into non-nullable column \"" + header_column.name + "\"",
                                ErrorCodes::CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN};
            }
            const bool target_column_is_nullable = header_column.type->isNullable() || arrow_column->null_count();