```
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). 
ColumnPtr write_column,
        std::shared_ptr<arrow::Array> & arrow_array,
        const PaddedPODArray<UInt8> * null_bytemap,
        const String & format_name)
    {
        const auto & internal_data = assert_cast<const ColumnVector<UInt32> &>(*write_column).getData();
        
        arrow::UInt32Builder builder;
        arrow::Status status;
        for (size_t value_i = 0, size = internal_data.size(); value_i < size; ++value_i)
        {
            if (null_bytemap && (*null_bytemap)[value_i])
                status = builder.AppendNull();
            else
                
                
                status = builder.Append(internal_data[value_i]);
            checkStatus(status, write_column->getName(), format_name);
        }
        status = builder.Finish(&arrow_array);
        checkStatus(status, write_column->getName(), format_name);
    }
    template <typename DataType>
    static void fillArrowArrayWithDecimalColumnData(