github-actions[bot] commented on code in PR #68614:
URL: https://github.com/apache/doris/pull/68614#discussion_r4130451368


##########
be/src/format/arrow/arrow_row_batch.cpp:
##########
@@ -138,7 +138,9 @@ Status convert_to_arrow_type(const DataTypePtr& origin_type,
         std::shared_ptr<arrow::DataType> item_type;
         RETURN_IF_ERROR(convert_to_arrow_type(type_arr->get_nested_type(), 
&item_type, timezone,
                                               datetime_naive));
-        *result = std::make_shared<arrow::ListType>(item_type);
+        // Arrow stores metadata on fields, so implicit child fields lose the 
Doris logical type.
+        *result = 
std::make_shared<arrow::ListType>(create_arrow_field_with_metadata(

Review Comment:
   [P1] Preserve Flight schema compatibility during rolling BE upgrades. With 
the default parallel result sink, a multi-BE query returning ARRAY<LARGEINT> 
can include an old BE whose item field has no `doris_type` metadata and a new 
BE whose item field has this marker. 
`FlightSqlConnectProcessor.fetchArrowFlightSchema` compares complete Java Arrow 
schemas, including nested field metadata, and aborts GetFlightInfo with "The 
schema returned by results BE is different" even though the value types match. 
Top-level JSON/VARIANT have the same new mismatch. Make the compared and 
advertised schemas compatible across BE versions during rollout.



-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to