[ 
https://issues.apache.org/jira/browse/PHOENIX-1229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Josh Mahonin updated PHOENIX-1229:
----------------------------------
    Description: 
Running a query with "NTH_VALUE" can result in null values returning, which is 
expected. When wrapping the results in a coalesce, a 
java.lang.ArrayIndexOutOfBoundsException is thrown.

Reproducible test case below:

{code}
-- Create table
CREATE TABLE TEST_NTH(
    ID BIGINT NOT NULL, 
    DATE TIMESTAMP NOT NULL, 
    COUNT BIGINT 
    CONSTRAINT pk PRIMARY KEY(ID, DATE));

-- Sample values
UPSERT INTO TEST_NTH(ID, DATE, COUNT) VALUES(1, CURRENT_TIME(), 1);
UPSERT INTO TEST_NTH(ID, DATE, COUNT) VALUES(1, CURRENT_TIME(), 2);

UPSERT INTO TEST_NTH(ID, DATE, COUNT) VALUES(2, CURRENT_TIME(), 1);

-- Select nth, returns null for id 2, OK
SELECT ID, 
       NTH_VALUE(COUNT, 2) 
       WITHIN GROUP (ORDER BY COUNT DESC) 
FROM TEST_NTH 
GROUP BY ID;

-- Using coalesce throws java.lang.ArrayIndexOutOfBoundsException
SELECT ID,
       COALESCE(
            NTH_VALUE(COUNT, 2)
            WITHIN GROUP (ORDER BY COUNT DESC),
       0)
FROM TEST_NTH
GROUP BY id;
{code}

  was:
Running a query with "NTH_VALUE" can result in null values returning, which is 
expected. When wrapping the results in a coalesce, a 
java.lang.ArrayIndexOutOfBoundsException is thrown.

Reproducible test case below:

-- Create table
CREATE TABLE TEST_NTH(
    ID BIGINT NOT NULL, 
    DATE TIMESTAMP NOT NULL, 
    COUNT BIGINT 
    CONSTRAINT pk PRIMARY KEY(ID, DATE));

-- Sample values
UPSERT INTO TEST_NTH(ID, DATE, COUNT) VALUES(1, CURRENT_TIME(), 1);
UPSERT INTO TEST_NTH(ID, DATE, COUNT) VALUES(1, CURRENT_TIME(), 2);

UPSERT INTO TEST_NTH(ID, DATE, COUNT) VALUES(2, CURRENT_TIME(), 1);

-- Select nth, returns null for id 2, OK
SELECT ID, 
       NTH_VALUE(COUNT, 2) 
       WITHIN GROUP (ORDER BY COUNT DESC) 
FROM TEST_NTH 
GROUP BY ID;

-- Using coalesce throws java.lang.ArrayIndexOutOfBoundsException
SELECT ID,
       COALESCE(
            NTH_VALUE(COUNT, 2)
            WITHIN GROUP (ORDER BY COUNT DESC),
       0)
FROM TEST_NTH
GROUP BY id;


> Coalesce on nth_value gives ArrayIndexOutOfBoundsException
> ----------------------------------------------------------
>
>                 Key: PHOENIX-1229
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1229
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0
>            Reporter: Josh Mahonin
>
> Running a query with "NTH_VALUE" can result in null values returning, which 
> is expected. When wrapping the results in a coalesce, a 
> java.lang.ArrayIndexOutOfBoundsException is thrown.
> Reproducible test case below:
> {code}
> -- Create table
> CREATE TABLE TEST_NTH(
>     ID BIGINT NOT NULL, 
>     DATE TIMESTAMP NOT NULL, 
>     COUNT BIGINT 
>     CONSTRAINT pk PRIMARY KEY(ID, DATE));
> -- Sample values
> UPSERT INTO TEST_NTH(ID, DATE, COUNT) VALUES(1, CURRENT_TIME(), 1);
> UPSERT INTO TEST_NTH(ID, DATE, COUNT) VALUES(1, CURRENT_TIME(), 2);
> UPSERT INTO TEST_NTH(ID, DATE, COUNT) VALUES(2, CURRENT_TIME(), 1);
> -- Select nth, returns null for id 2, OK
> SELECT ID, 
>        NTH_VALUE(COUNT, 2) 
>        WITHIN GROUP (ORDER BY COUNT DESC) 
> FROM TEST_NTH 
> GROUP BY ID;
> -- Using coalesce throws java.lang.ArrayIndexOutOfBoundsException
> SELECT ID,
>        COALESCE(
>             NTH_VALUE(COUNT, 2)
>             WITHIN GROUP (ORDER BY COUNT DESC),
>        0)
> FROM TEST_NTH
> GROUP BY id;
> {code}



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

Reply via email to