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

James Taylor commented on PHOENIX-1533:
---------------------------------------

[~maryannxue] - in the code for the join optimization, can you have the code 
stop looking for combinations of key expressions when you find one in which 
StatementContext.getScanRanges().isPointLookup()==true? You won't find a better 
combination, as this means that all pk columns have PK parts. You could 
alternatively compare StatementContext.getScanRanges().getPkColumnSpan() to 
StatementContext.getScanRanges().getSchema().getMaxFields() and stop if they're 
equal.

When we find a point lookup, we flatten the schema and row key bytes as an 
optimization for SkipScan.



> Last key part not taken into child/parent optimization
> ------------------------------------------------------
>
>                 Key: PHOENIX-1533
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1533
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 3.0.0, 4.0.0, 5.0.0
>            Reporter: Maryann Xue
>            Assignee: Maryann Xue
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> For example we have multiple PK columns (pk0, pk1, pk2) for table A, if we do 
> a IN subquery or join query with all PK columns, like:
> select * from A where (pk0, pk1, pk2) IN (select pk0, pk1, pk2 from B);
> The child/parent join optimization is supposed to use the entire PK "(pk0, 
> pk1, pk2)" for constructing the dynamic skip-scan filter.
> However it would only use (pk0, pk1) instead, missing the last PK part.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to