lxy-9602 commented on code in PR #198:
URL: https://github.com/apache/paimon-cpp/pull/198#discussion_r3788466836


##########
src/paimon/format/parquet/parquet_file_batch_reader.cpp:
##########
@@ -762,7 +783,7 @@ Status ParquetFileBatchReader::CollectLeafIndices(const 
std::shared_ptr<arrow::D
 void ParquetFileBatchReader::SkipLeafIndices(const 
std::shared_ptr<arrow::DataType>& file_type,
                                              int32_t* leaf_index) {
     if (file_type->id() == arrow::Type::STRUCT || file_type->id() == 
arrow::Type::LIST ||
-        file_type->id() == arrow::Type::MAP) {

Review Comment:
   For write side, I noticed that the current Paimon library is using Arrow 17, 
which does not handle `fixed size list -> list` conversion very well in the 
presence of nulls. For example, cases like `[valid vec, null, valid vec]` may 
fail.
   
   If that’s the case, then the write path may also need to reuse the current 
`ParquetVectorConverter::ConvertToWriteType` logic.
   
   Since this issue has already been fixed in newer Arrow versions, I’d suggest 
keeping the write-side handling as isolated as possible within the Parquet 
format layer, and adding a TODO so that the extra conversion can be removed 
directly once we upgrade Arrow.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to