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

James Taylor commented on PHOENIX-2064:
---------------------------------------

Add a return true to the if statement at the top of evaluate method:
{code}
if (position == elements.length) {
    ptr.set(valuePtr.get(), valuePtr.getOffset(), valuePtr.getLength());
    return true;
}
{code}
Also, in init(), do valuePtr.set(ByteUtil.EMPTY_BYTE_ARRAY);

Otherwise, I'm not sure - I'd need to debug it. The idea is to return the 
cached value, but we'd only do it when position has been initialized to not be 
-1 in the reset call. This is a kind of partial evaluation mode that executes 
on the server-side during filtering.

> ARRAY constructor doesn't work when used in COUNT DISTINCT
> ----------------------------------------------------------
>
>                 Key: PHOENIX-2064
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2064
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: Dumindu Buddhika
>         Attachments: PHOENIX-2064-v2.patch, PHOENIX-2064.patch
>
>
> As a workaround for PHOENIX-2062, I tried the following query:
> {code}
> SELECT COUNT(DISTINCT ARRAY[a.col1, b.col2]) ...
> {code}
> However, this always returns the full number of rows which is wrong.



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

Reply via email to