[
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)