hubgeter commented on code in PR #66620:
URL: https://github.com/apache/doris/pull/66620#discussion_r3755712863


##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java:
##########
@@ -816,6 +817,8 @@ private Plan 
bindIcebergTableSink(MatchingContext<UnboundIcebergTableSink<Plan>>
                     + "Expected " + boundSink.getCols().size() + " columns but 
got " + child.getOutput().size());
         }
 

Review Comment:
   Thanks for raising this. We reproduced the coercion behavior locally, but 
the root cause is the generic Nereids common-type handling for Variant mixed 
with scalar values in UNION/IF/CASE. That coercion happens before any 
sink-specific analysis and is not specific to Iceberg; changing it or 
propagating target types through these operators would also affect ordinary 
queries, internal-table paths, and other external sinks. This PR is scoped to 
Iceberg V3 Parquet Variant physical writes and validation of values that reach 
the Iceberg sink, rather than redefining generic Variant expression semantics. 
Adding an Iceberg-only lineage rejection for this shared behavior would also 
make sink behavior inconsistent and broaden the PR substantially. We therefore 
do not plan to address this issue in this PR and propose handling target-aware 
Variant coercion/validation separately with cross-sink coverage.



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