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