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


##########
be/src/core/data_type_serde/data_type_string_serde.cpp:
##########
@@ -281,11 +281,10 @@ Status 
DataTypeStringSerDeBase<ColumnType>::read_column_from_arrow(
     } else if (arrow_array->type_id() == arrow::Type::FIXED_SIZE_BINARY) {
         const auto* concrete_array = dynamic_cast<const 
arrow::FixedSizeBinaryArray*>(arrow_array);
         uint32_t width = concrete_array->byte_width();
-        const auto* array_data = concrete_array->GetValue(start);
 
-        for (size_t offset_i = 0; offset_i < end - start; ++offset_i) {
+        for (auto offset_i = start; offset_i < end; ++offset_i) {

Review Comment:
   This fixes the string serde branch, but the parallel JSONB Arrow reader 
still has the same mixed-index bug. In 
`DataTypeJsonbSerDe::read_column_from_arrow`, the `FIXED_SIZE_BINARY` case 
still does `GetValue(start)`, loops `offset_i` from `0`, and checks 
`IsNull(offset_i)`. Nested array/map/struct readers pass nonzero child ranges 
into nested serdes, so an `ARRAY<JSONB>` or `MAP<..., JSONB>` backed by 
fixed-size binary Arrow values can still apply row 0's null bit while reading 
row `start`'s bytes. Please update the JSONB fixed-size-binary branch to use 
the same absolute `[start, end)` indexing as this string branch, and add the 
corresponding JSONB/nested coverage if possible.



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