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

James Taylor commented on PHOENIX-1015:
---------------------------------------

This one too, Is it necessary? If it is, then please change the instanceof 
check to: if (table.getIndexType() == IndexType.LOCAL_INDEX)

{code}
Index: phoenix-core/src/main/java/org/apache/phoenix/compile/WhereCompiler.java
===================================================================
--- phoenix-core/src/main/java/org/apache/phoenix/compile/WhereCompiler.java    
(revision 786)
+++ phoenix-core/src/main/java/org/apache/phoenix/compile/WhereCompiler.java    
(working copy)
@@ -44,8 +44,10 @@
 import org.apache.phoenix.schema.AmbiguousColumnException;
 import org.apache.phoenix.schema.ColumnNotFoundException;
 import org.apache.phoenix.schema.ColumnRef;
+import org.apache.phoenix.schema.LocalIndexDataColumnRef;
 import org.apache.phoenix.schema.PDataType;
 import org.apache.phoenix.schema.PTable;
+import org.apache.phoenix.schema.PTable.IndexType;
 import org.apache.phoenix.schema.PTableType;
 import org.apache.phoenix.schema.TableRef;
 import org.apache.phoenix.schema.TypeMismatchException;
@@ -135,6 +137,9 @@
         protected ColumnRef resolveColumn(ColumnParseNode node) throws 
SQLException {
             ColumnRef ref = super.resolveColumn(node);
             PTable table = ref.getTable();
+            if (ref instanceof LocalIndexDataColumnRef) {
+                
context.getResolver().getTables().get(0).getTable().getPKColumn(ref.getColumn().getName().getString());
+            }
             // Track if we need to compare KeyValue during filter evaluation
             // using column family. If the column qualifier is enough, we
             // just use that.
{code}


> Support joining back to data table row from local index when query condition 
> involves leading columns in local index
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-1015
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1015
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: rajeshbabu
>            Assignee: rajeshbabu
>         Attachments: PHOENIX-1015.patch, PHOENIX-1015_v6.patch, 
> PHOENIX-1015_v7.patch
>
>
> When a query involves more columns to project than columns in index and query 
> condition involves leading columns in local index then first we can get 
> matching rowkeys from local index table and then get the required columns 
> from data table. In local index both data region and index region co-reside 
> in the same RS, we can call get on data region to get the missing columns in 
> the index, without any n/w overhead. So it's efficient. 



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

Reply via email to