phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-1015) Support joining back to data table row from local index when query condition involves leading columns in local index
Date Sun, 29 Jun 2014 09:20:24 GMT


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)

Index: phoenix-core/src/main/java/org/apache/phoenix/compile/
--- phoenix-core/src/main/java/org/apache/phoenix/compile/	(revision 786)
+++ phoenix-core/src/main/java/org/apache/phoenix/compile/	(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.

> Support joining back to data table row from local index when query condition involves
leading columns in local index
> --------------------------------------------------------------------------------------------------------------------
>                 Key: PHOENIX-1015
>                 URL:
>             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

View raw message