[ 
https://issues.apache.org/jira/browse/CALCITE-5745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17730438#comment-17730438
 ] 

Julian Hyde commented on CALCITE-5745:
--------------------------------------

So Postgres' CONCAT allows 1 argument and MSSQL's CONCAT does not. I don't 
think that's a reason to make them different functions. The same function can 
handle any VALID MSSQL query. It doesn't matter that we can execute some 
queries that MSSQL considers to be invalid.

As I said above, we don't need to worry about argument counts, just null 
semantics, and therefore we only need two functions.

> CONCAT2 function (enabled in Oracle library) gets wrong result when one of 
> the arguments 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
>              Labels: pull-request-available
>             Fix For: 1.35.0
>
>
> 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)

Reply via email to