suxiaogang223 opened a new pull request, #66891:
URL: https://github.com/apache/doris/pull/66891

   ### What
   
   - Introduce target-specific Arrow write converters for canonical Arrow, 
Iceberg, Paimon, and Parquet paths.
   - Move Iceberg UUID/Variant/fixed semantics and Paimon Variant/timestamp 
semantics out of common SerDe dispatch.
   - Remove the duplicate Paimon JNI-side conversion protocol and consume the 
target Arrow schema directly.
   - Map Iceberg `fixed(n)` to Doris `VARBINARY(n)` regardless of the 
variable-binary compatibility switch.
   - Reject undeclared canonical bindings and invalid fixed widths instead of 
falling back to another serialization path.
   
   ### Why
   
   The shared `write_to_arrow` path had accumulated table-format conditionals 
and duplicate Paimon conversion logic. Keeping target differences in their own 
converters makes the common SerDe contract predictable and prevents 
compatibility fallbacks from hiding schema errors. Iceberg `fixed(n)` is 
arbitrary binary data, so mapping it to `CHAR(n)` was also semantically 
incorrect and failed for widths above 255.
   
   ### Impact
   
   Iceberg fixed values preserve raw bytes through `VARBINARY(n)` and require 
exact declared and per-row widths. Existing target-specific UUID, Variant, 
nested, decimal, and timestamp behavior is selected explicitly by the 
corresponding converter.
   
   ### Validation
   
   - Clang format and `git diff --check` passed.
   - Focused BE UT build/run is in progress and will be reported on this draft 
PR.


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