Repository: phoenix
Updated Branches:
  refs/heads/calcite caf1c6ed9 -> 4e32e29a5


PHOENIX-2781 Support multi-tenant secondary index in Calcite-Phoenix


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/4e32e29a
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/4e32e29a
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/4e32e29a

Branch: refs/heads/calcite
Commit: 4e32e29a562ee83856e36480b17335f5f9a16ea3
Parents: caf1c6e
Author: maryannxue <maryann....@gmail.com>
Authored: Thu Mar 31 09:31:11 2016 -0400
Committer: maryannxue <maryann....@gmail.com>
Committed: Thu Mar 31 09:31:11 2016 -0400

----------------------------------------------------------------------
 .../phoenix/calcite/CalciteLocalIndexIT.java     | 19 ++++++++++---------
 .../phoenix/calcite/rel/PhoenixTableScan.java    |  6 +++---
 2 files changed, 13 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/4e32e29a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteLocalIndexIT.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteLocalIndexIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteLocalIndexIT.java
index 30ec0bc..90bfc3b 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteLocalIndexIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteLocalIndexIT.java
@@ -195,11 +195,11 @@ public class CalciteLocalIndexIT extends 
BaseCalciteIndexIT {
                 .explainIs("PhoenixToEnumerableConverter\n" +
                            "  PhoenixServerProject(ID=[$1], COL0=[$2], 
COL1=[CAST($0):INTEGER], COL2=[$3])\n" +
                            "    PhoenixTableScan(table=[[phoenix, 
IDX_MULTITENANT_TEST_TABLE]], filter=[>(CAST($0):INTEGER, 1000)])\n")
-//                .resultIs(0, new Object[][] {
-//                        {"0999", 1000, 1001, 1002},
-//                        {"1000", 1001, 1002, 1003},
-//                        {"1001", 1002, 1003, 1004},
-//                        {"1002", 1003, 1004, 1005}})
+                .resultIs(0, new Object[][] {
+                        {"0999", 1000, 1001, 1002},
+                        {"1000", 1001, 1002, 1003},
+                        {"1001", 1002, 1003, 1004},
+                        {"1002", 1003, 1004, 1005}})
                 .close();
         
         try {
@@ -222,10 +222,11 @@ public class CalciteLocalIndexIT extends 
BaseCalciteIndexIT {
                 .explainIs("PhoenixToEnumerableConverter\n" +
                            "  PhoenixServerProject(ID=[$1], COL0=[$2], 
COL1=[CAST($0):INTEGER], COL2=[$3])\n" +
                            "    PhoenixTableScan(table=[[phoenix, 
IDX_MULTITENANT_TEST_TABLE]], filter=[<=(CAST($0):INTEGER, 6)])\n")
-//                .resultIs(0, new Object[][] {
-//                        {"0002", 3, 4, 5},
-//                        {"0003", 4, 5, 6},
-//                        {"0004", 5, 6, 7}})
+                .sameResultAsPhoenixStandalone(0)
+                /*.resultIs(0, new Object[][] {
+                        {"0002", 3, 4, 5},
+                        {"0003", 4, 5, 6},
+                        {"0004", 5, 6, 7}})*/
                 .close();
         
         start(props).sql("select id, col0 from " + MULTI_TENANT_VIEW1 + " 
where col0 >= 1000")

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4e32e29a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixTableScan.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixTableScan.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixTableScan.java
index c510e3b..32c7a90 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixTableScan.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixTableScan.java
@@ -255,7 +255,7 @@ public class PhoenixTableScan extends TableScan implements 
PhoenixRel {
             if (filter != null && 
!context.getScanRanges().equals(this.scanRanges)) {
                 dynamicFilter = filterExpr;
             }
-            projectColumnFamilies(context.getScan(), phoenixTable.getTable(), 
columnRefList);
+            projectColumnFamilies(context.getScan(), 
phoenixTable.mappedColumns, columnRefList);
             if (implementor.getCurrentContext().forceProject) {
                 TupleProjector tupleProjector = 
implementor.createTupleProjector();
                 TupleProjector.serializeProjectorIntoScan(context.getScan(), 
tupleProjector);
@@ -275,10 +275,10 @@ public class PhoenixTableScan extends TableScan 
implements PhoenixRel {
         }
     }
     
-    private void projectColumnFamilies(Scan scan, PTable table, 
ImmutableIntList columnRefList) {
+    private void projectColumnFamilies(Scan scan, List<PColumn> mappedColumns, 
ImmutableIntList columnRefList) {
         scan.getFamilyMap().clear();
         for (Integer index : columnRefList) {
-            PColumn column = table.getColumns().get(index);
+            PColumn column = mappedColumns.get(index);
             PName familyName = column.getFamilyName();
             if (familyName != null) {
                 scan.addFamily(familyName.getBytes());

Reply via email to