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]
