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

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

bq. One other question. In HashCacheClient, can you remind me what this does 
(maybe add a comment?):
Ok, will do. This is to evaluate the value set for InExpression in the same 
iteration where we do hash-table building.

bq. And instead of the code below, it'd be better if you called into 
WhereOptimizer to get this information. There are cases beyond a simple column 
reference that we'd be able to optimize (like a SUBSTR(rowKeyCol, 1, 3), or 
even a row value constructor construct):
The reason why I do that now is to sort the join keys in a fashion to organize 
them into a RowValueConstructor with as many leading key parts as possible. for 
example, c1 is the first join key and c0 is second, that way we'll be able to 
get a (c0,c1) for the final dynamic filter. Yeah, I also understand there are 
situations you mentioned above. So any way we can cover these both situations 
best? 

> 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
>         Attachments: 852-2.patch, 852.patch, PHOENIX-852.patch
>
>
> 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