[
https://issues.apache.org/jira/browse/PHOENIX-3773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16035412#comment-16035412
]
James Taylor commented on PHOENIX-3773:
---------------------------------------
Best option IMHO is to fix appendItemToArray to handle the case where the
existing array is empty (i.e. null). Just add a test in ArrayAppendFunctionIT
that does an ARRAY_APPEND where the array (i.e. the varchars column in this
case) itself is null:
{code}
SELECT ARRAY_APPEND(varchars,'1') FROM T;
SELECT ARRAY_APPEND(null,'1') FROM T;
{code}
Both these should work correctly and end up with an array with a single element
of '1'. Also, given that appendItemToArray always allocates a new byte array,
probably simplest to just append as you evaluate rather than outside the loop
(since there'd be no advantage to doing it outside the loop).
> Implement FIRST_VALUES aggregate function
> -----------------------------------------
>
> Key: PHOENIX-3773
> URL: https://issues.apache.org/jira/browse/PHOENIX-3773
> Project: Phoenix
> Issue Type: New Feature
> Reporter: James Taylor
> Assignee: Loknath Priyatham Teja Singamsetty
> Labels: SFDC
> Fix For: 4.11.0
>
> Attachments: PHOENIX-3773_4.x-HBase-0.98.patch,
> PHOENIX-3773_master.patch, PHOENIX-3773.patch, PHOENIX-3773.v2.patch,
> PHOENIX-3773.v3.patch
>
>
> Similar to FIRST_VALUE, but would allow the user to specify how many values
> to keep. This could use a MinMaxPriorityQueue under the covers and be much
> more efficient than using multiple NTH_VALUE calls to do the same like this:
> {code}
> SELECT entity_id,
> NTH_VALUE(user_id,1) WITHIN GROUP (ORDER BY last_read_date DESC) as
> nth1_user_id,
> NTH_VALUE(user_id,2) WITHIN GROUP (ORDER BY last_read_date DESC) as
> nth2_user_id,
> NTH_VALUE(user_id,3) WITHIN GROUP (ORDER BY last_read_date DESC) as
> nth3_user_id,
> count(*)
> FROM MY_TABLE
> WHERE tenant_id='00Dx0000000XXXX'
> AND entity_id in ('0D5x000000ABCD','0D5x000000ABCE')
> GROUP BY entity_id;
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)