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

Reply via email to