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

Vaclav Loffelmann commented on PHOENIX-1237:
--------------------------------------------

Thank for review [~jamestaylor]. I've updated evaluating logic and add test for 
expression in second parameter (will upload after resolving all issues). But 
there is situation with validation if second parameter is actually coercible to 
first one. Because of 
{code}
PDataType.INTEGER.isCoercibleTo(PDataType.UNSIGNED_INT) // is false
{code}
Should I change definitions for isCoercibleTo methods in PDataType? Or is there 
a better solution?
Thanks

> COALESCE Function - type of second parameter
> --------------------------------------------
>
>                 Key: PHOENIX-1237
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1237
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0, 3.1, 4.1
>            Reporter: Vaclav Loffelmann
>            Assignee: Vaclav Loffelmann
>         Attachments: PHOENIX-1237.fix.patch, PHOENIX_1237.patch
>
>
> There is an issue with automatic set data type of second parameter to 
> coalesce function.
> For instance table:
> {code:sql}
> CREATE TABLE IF NOT EXISTS TEST_COALESCE(
> ID BIGINT NOT NULL,
> COUNT UNSIGNED_INT
> CONSTRAINT pk PRIMARY KEY(ID));
> {code}
> and query:
> {code:sql}
> SELECT COALESCE(SUM(COUNT), 0) FROM TEST_SUM GROUP BY ID;
> {code}
> This will cause in:
> {quote}SQLException: ERROR 507 (42846): Cannot convert type. COALESCE 
> expected UNSIGNED_INT, but got INTEGER {quote}
> Hence second parameter is typed to its input value (eg. 0 is signed int not 
> long), and long is expected. That is cause for ArrayIndexOutOfBoundsException 
> described in PHOENIX-1229.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to