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]

Reply via email to