[ https://issues.apache.org/jira/browse/CALCITE-5745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17728933#comment-17728933 ]
Julian Hyde commented on CALCITE-5745: -------------------------------------- Thanks for doing the research on Oracle. I agree with you that CONCAT is the exception rather than the rule in Oracle and we should implement a CONCAT2 function in Calcite that has the same null semantics. I think we need one CONCAT function that ignores NULL arguments (treats them as empty strings) and one that returns NULL if any arguments are NULL. I think both functions should accept a variable number of arguments (at least one). Do you agree that two functions are sufficient? > CONCAT2 function(enabled in Oracle library) gets wrong result when one of the > argument is NULL > ---------------------------------------------------------------------------------------------- > > Key: CALCITE-5745 > URL: https://issues.apache.org/jira/browse/CALCITE-5745 > Project: Calcite > Issue Type: Bug > Components: core > Affects Versions: 1.34.0 > Reporter: ZheHu > Assignee: ZheHu > Priority: Major > > Tested CONCAT function in Oracle and got the corresponding results. > {code} > select concat('a', cast(null as varchar(20))) from DUAL; > --- results in 'a' > {code} > {code} > select concat('a', null) from DUAL; > select 'a' || null from DUAL; > --- both result in 'a' > {code} > In Calcite(see checkConcat2Func() in SqlOperatorTest.java), CONCAT2 function > gets null when running: > {code} > concat('a', cast(null as varchar)) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)