github-actions[bot] commented on code in PR #66819:
URL: https://github.com/apache/doris/pull/66819#discussion_r3800505233
##########
be/src/format_v2/table/adbc_reader.cpp:
##########
@@ -608,7 +617,7 @@ Status AdbcFileReader::_materialize_record_batch(const
arrow::RecordBatch& batch
std::shared_ptr<arrow::Array> array;
{
SCOPED_TIMER(_normalize_time);
- RETURN_IF_ERROR(normalize_arrow_array(batch.column(arrow_idx),
&array));
+ RETURN_IF_ERROR(normalize_arrow_array(batch.column(arrow_idx),
arrow_pool, &array));
Review Comment:
[P1] Reject null ListView rows for required ARRAY slots
The file schema here is synthesized from cached FE slots, not the imported
batch schema. If the source changes this field from required to nullable while
the 10-minute ADBC schema cache is live, the runtime batch can validly contain
a null ListView while `target_type` is still non-nullable. Normalization
preserves that null, but `_materialize_arrow_column` then calls
`DataTypeArraySerDe` directly; it consumes only offsets, so the repeated offset
for the null row is silently materialized as `[]`. Before this change the same
ListView failed as unsupported. Please reject `array->null_count() > 0` for
non-nullable targets before SerDe (with column context), and add an end-to-end
required ARRAY test containing a null ListView row (and LargeListView if both
remain supported).
--
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]