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

James Taylor commented on PHOENIX-10:
-------------------------------------

Then on the server-side, after the call to super.nextRaw(List<KeyValue> kv), 
you'd
- evaluate each Expression in arrayKeyValueRefs (just call the standard 
evaluate method by creating a MultiKeyValueTuple for the tuple)
- populate the KeyValueSchema as I mentioned in my previous comment
- remove any KV with a cf:cq that matches any of the ones in the 
arrayKeyValueRefs list
- add your new, fixed-named KeyValue with the byte[] value set using the 
KeyValueSchema bytes

I'd name this fixed-named KeyValue a name with ARRAY in the constant so it's 
clear what we're using it for.


> Push projection of a single ARRAY element to the server
> -------------------------------------------------------
>
>                 Key: PHOENIX-10
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-10
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: James Taylor
>            Assignee: ramkrishna.s.vasudevan
>         Attachments: Phoenix-10_1.patch
>
>
> If only a single array element is selected, we'll still return the entire 
> array back to the client. Instead, we should push this to the server and only 
> return the single array element. The same goes for the reference to an ARRAY 
> in the WHERE clause. There's a general HBase fix for this (i.e. the ability 
> to define a separate set of key values that will be returned versus key 
> values available to filters) that has a patch here, but is deemed not 
> possible to pull into the 0.94 branch by @lhofhansl.
> My thought is that we can add a Filter at the end our our filter chain that 
> filters out any KeyValues that aren't in the SELECT expressions (i.e. filter 
> out if a column is referenced in the WHERE clause, but not in the SELECT 
> expressions). This same Filter could handle returning only the elements of 
> the array that are referenced in the SELECT expression rather than the entire 
> array.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to