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

Maryann Xue commented on PHOENIX-852:
-------------------------------------

I see. So the below code is now what handles partial match for IN clause, right?

{code}
            // We can only optimize a row value constructor that is fully 
qualified
            if (childSlot.getPKSpan() > 1 && 
!isFullyQualified(childSlot.getPKSpan())) {
                // Just return a key part that has the min/max of the IN list, 
but doesn't
                // extract the IN list expression.
                return newKeyParts(childSlot, (Expression)null, 
Collections.singletonList(
                        KeyRange.getKeyRange(
                                
ByteUtil.copyKeyBytesIfNecessary(node.getMinKey()), true,
                                
ByteUtil.copyKeyBytesIfNecessary(node.getMaxKey()), true)), null);
            }
{code}

> Optimize child/parent foreign key joins
> ---------------------------------------
>
>                 Key: PHOENIX-852
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-852
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: James Taylor
>            Assignee: Maryann Xue
>
> Often times a join will occur from a child to a parent. Our current algorithm 
> would do a full scan of one side or the other. We can do much better than 
> that if the HashCache contains the PK (or even part of the PK) from the table 
> being joined to. In these cases, we should drive the second scan through a 
> skip scan on the server side.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to