[
https://issues.apache.org/jira/browse/FLINK-35498?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
lincoln lee updated FLINK-35498:
--------------------------------
Fix Version/s: (was: 2.0.0)
> Unexpected argument name conflict error when do extract method params from udf
> ------------------------------------------------------------------------------
>
> Key: FLINK-35498
> URL: https://issues.apache.org/jira/browse/FLINK-35498
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Affects Versions: 1.19.0, 1.20.0
> Reporter: lincoln lee
> Assignee: xuyang
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.20.0, 1.19.2
>
> Attachments: image-2024-06-02-23-09-17-768.png
>
>
> Follow the steps to reproduce the error:
> test case:
> {code:java}
> util.addTemporarySystemFunction("myudf", new TestXyz)
> util.tableEnv.explainSql("select myudf(f1, f2) from t")
> {code}
>
> udf: TestXyz
> {code:java}
> public class TestXyz extends ScalarFunction {
> public String eval(String s1, String s2) {
> // will not fail if add initialization
> String localV1;
> if (s1 == null) {
> if (s2 != null) {
> localV1 = s2;
> } else {
> localV1 = s2 + s1;
> }
> } else {
> if ("xx".equals(s2)) {
> localV1 = s1.length() >= s2.length() ? s1 : s2;
> } else {
> localV1 = s1;
> }
> }
> if (s1 == null) {
> return s2 + localV1;
> }
> if (s2 == null) {
> return s1;
> }
> return s1.length() >= s2.length() ? s1 + localV1 : s2;
> }
> }
> {code}
>
> error stack:
> {code:java}
> Caused by: org.apache.flink.table.api.ValidationException: Unable to extract
> a type inference from method:
> public java.lang.String
> org.apache.flink.table.planner.runtime.utils.TestXyz.eval(java.lang.String,java.lang.String)
> at
> org.apache.flink.table.types.extraction.ExtractionUtils.extractionError(ExtractionUtils.java:362)
> at
> org.apache.flink.table.types.extraction.BaseMappingExtractor.extractResultMappings(BaseMappingExtractor.java:154)
> at
> org.apache.flink.table.types.extraction.BaseMappingExtractor.extractOutputMapping(BaseMappingExtractor.java:100)
> ... 53 more
> Caused by: org.apache.flink.table.api.ValidationException: Argument name
> conflict, there are at least two argument names that are the same.
> at
> org.apache.flink.table.types.extraction.ExtractionUtils.extractionError(ExtractionUtils.java:362)
> at
> org.apache.flink.table.types.extraction.ExtractionUtils.extractionError(ExtractionUtils.java:357)
> at
> org.apache.flink.table.types.extraction.FunctionSignatureTemplate.of(FunctionSignatureTemplate.java:73)
> at
> org.apache.flink.table.types.extraction.BaseMappingExtractor.lambda$createParameterSignatureExtraction$9(BaseMappingExtractor.java:381)
> at
> org.apache.flink.table.types.extraction.BaseMappingExtractor.putExtractedResultMappings(BaseMappingExtractor.java:298)
> at
> org.apache.flink.table.types.extraction.BaseMappingExtractor.collectMethodMappings(BaseMappingExtractor.java:244)
> at
> org.apache.flink.table.types.extraction.BaseMappingExtractor.extractResultMappings(BaseMappingExtractor.java:137)
> ... 54 more
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)