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]