[
https://issues.apache.org/jira/browse/PHOENIX-1211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14123240#comment-14123240
]
Kyle Buzsaki commented on PHOENIX-1211:
---------------------------------------
Huh?
I thought that each position in each of these:
{code}
// Conjunctive normal form of or-ed ranges or point lookups
private List<List<KeyRange>> slots;
// How far each slot spans minus one. We only handle a single column span
currently
private int[] slotSpan;
// current position for each slot
private int[] position;
{code}
corresponded to a single slot. That is, the following should always be true:
{code}
slots.size() == slotSpan.length == position.length
{code}
i and j are used as indexes into slots, slotSpan, and position, which means
that they represent which "slot you are in.". Therefore, any time you increment
or decrement i or j, you are moving from slot to slot.
> Use skip scan when row value constructor uses leading row key columns
> ----------------------------------------------------------------------
>
> Key: PHOENIX-1211
> URL: https://issues.apache.org/jira/browse/PHOENIX-1211
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
> Assignee: Kyle Buzsaki
> Attachments: PHOENIX-1211-diff.patch
>
>
> We currently only use a skip scan for a row value constructor equality or in
> list expression is fully qualified. We can fairly easily use it when only
> some of the leading pk columns are used.
> For example:
> {code}
> WHERE (a,b) IN ((1,2),(3,4))
> {code}
> If the PK is (a,b,c), we can still use a skip scan. We need to pass through
> the slotSpan array in this case too, to the SkipScanFilter.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)