You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ma...@apache.org on 2017/02/02 00:50:52 UTC
phoenix git commit: PHOENIX-3643 Not able resolve columns in
predicate while querying views in Phoenix-Calcite
Repository: phoenix
Updated Branches:
refs/heads/calcite eb51d8bb4 -> 76fae2c86
PHOENIX-3643 Not able resolve columns in predicate while querying views in Phoenix-Calcite
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/76fae2c8
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/76fae2c8
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/76fae2c8
Branch: refs/heads/calcite
Commit: 76fae2c86464ec7eac27234c94d274772351f817
Parents: eb51d8b
Author: maryannxue <ma...@gmail.com>
Authored: Wed Feb 1 16:50:43 2017 -0800
Committer: maryannxue <ma...@gmail.com>
Committed: Wed Feb 1 16:50:43 2017 -0800
----------------------------------------------------------------------
.../java/org/apache/phoenix/calcite/CalciteIT.java | 8 ++++----
.../org/apache/phoenix/calcite/TableMapping.java | 16 +++++++++++++---
2 files changed, 17 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/76fae2c8/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java
index a2c15fa..a649c7e 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java
@@ -144,7 +144,7 @@ public class CalciteIT extends BaseCalciteIT {
" PhoenixClientProject(item_id=[$0], NAME=[$1], PRICE=[$2], DISCOUNT1=[$3], DISCOUNT2=[$4], supplier_id=[$5], DESCRIPTION=[$6], supplier_id0=[$7], NAME0=[$8], PHONE=[$9], ADDRESS=[$10], LOC_ID=[$11])\n" +
" PhoenixServerJoin(condition=[=($5, $7)], joinType=[inner])\n" +
" PhoenixTableScan(table=[[phoenix, Join, ItemTable]])\n" +
- " PhoenixServerProject(supplier_id=[$0], NAME=[$1], PHONE=[$2], ADDRESS=[$3], LOC_ID=[$4], NAME5=[CAST($1):VARCHAR(2) CHARACTER SET \"ISO-8859-1\" COLLATE \"ISO-8859-1$en_US$primary\"])\n" +
+ " PhoenixServerProject(supplier_id=[$0], NAME=[$1], PHONE=[$2], ADDRESS=[$3], LOC_ID=[$4], NAME0=[CAST($1):VARCHAR(2) CHARACTER SET \"ISO-8859-1\" COLLATE \"ISO-8859-1$en_US$primary\"])\n" +
" PhoenixTableScan(table=[[phoenix, Join, SupplierTable]], filter=[=(CAST($1):VARCHAR(2) CHARACTER SET \"ISO-8859-1\" COLLATE \"ISO-8859-1$en_US$primary\", 'S5')])\n")
.resultIs(0, new Object[][] {
{"0000000005", "T5", 500, 8, 15, "0000000005", "Item T5", "0000000005", "S5", "888-888-5555", "505 YYY Street", "10005"}})
@@ -157,7 +157,7 @@ public class CalciteIT extends BaseCalciteIT {
" PhoenixServerJoin(condition=[AND(=($6, $0), =($8, $4))], joinType=[inner])\n" +
" PhoenixServerProject(item_id=[$0], NAME=[$1], PRICE=[$2], DISCOUNT2=[$4], $f7=[/(*($2, -(100, $4)), 100.0)])\n" +
" PhoenixTableScan(table=[[phoenix, Join, ItemTable]])\n" +
- " PhoenixServerProject(order_id=[$0], item_id=[$2], QUANTITY=[$4], PRICE6=[CAST($3):DECIMAL(17, 6)])\n" +
+ " PhoenixServerProject(order_id=[$0], item_id=[$2], QUANTITY=[$4], PRICE0=[CAST($3):DECIMAL(17, 6)])\n" +
" PhoenixTableScan(table=[[phoenix, Join, OrderTable]], filter=[<($4, 5000)])\n")
.resultIs(0, new Object[][] {
{"000000000000004", "T6", 600, 15, 4000}})
@@ -230,10 +230,10 @@ public class CalciteIT extends BaseCalciteIT {
start(false, 100000f).sql("select t1.k0, t1.k1, t2.k0, t2.k1 from " + KEY_ORDERING_TABLE_1_NAME + " t1 join " + KEY_ORDERING_TABLE_2_NAME + " t2 on t1.k0 = t2.k0 and t1.k1 = t2.k1")
.explainIs("PhoenixToEnumerableConverter\n" +
- " PhoenixClientProject(K0=[$0], K1=[$1], K00=[$3], K10=[$4])\n" +
+ " PhoenixClientProject(K0=[$0], K1=[$1], K00=[$3], K11=[$4])\n" +
" PhoenixClientJoin(condition=[AND(=($0, $3), =($2, $4))], joinType=[inner])\n" +
" PhoenixServerSort(sort0=[$0], sort1=[$2], dir0=[ASC], dir1=[ASC])\n" +
- " PhoenixServerProject(K0=[$0], K1=[$1], K14=[CAST($1):BIGINT NOT NULL])\n" +
+ " PhoenixServerProject(K0=[$0], K1=[$1], K10=[CAST($1):BIGINT NOT NULL])\n" +
" PhoenixTableScan(table=[[phoenix, KEY_ORDERING_TEST_TABLE_1]])\n" +
" PhoenixServerProject(K0=[$0], K1=[$1])\n" +
" PhoenixTableScan(table=[[phoenix, KEY_ORDERING_TEST_TABLE_2]], scanOrder=[REVERSE])\n")
http://git-wip-us.apache.org/repos/asf/phoenix/blob/76fae2c8/phoenix-core/src/main/java/org/apache/phoenix/calcite/TableMapping.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/TableMapping.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/TableMapping.java
index 161c618..8891bd4 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/TableMapping.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/TableMapping.java
@@ -108,17 +108,27 @@ public class TableMapping {
}
private void init() {
+ Set<String> nameSet = Sets.newHashSet();
+ boolean dup = false;
for (int i = 0; i < mappedColumns.size(); i++) {
PColumn column = mappedColumns.get(i);
String familyName = column.getFamilyName() == null ? "" : column.getFamilyName().getString();
- String translatedName = SchemaUtil.getCaseSensitiveColumnDisplayName(familyName, column.getName().getString());
- names.add(translatedName);
+ String name = column.getName().getString();
Map<String, Integer> subMap = groupMap.get(familyName);
if (subMap == null) {
subMap = Maps.newHashMap();
groupMap.put(familyName, subMap);
}
- subMap.put(column.getName().getString(), i);
+ subMap.put(name, i);
+ dup = dup || !nameSet.add(name);
+ }
+ for (int i = 0; i < mappedColumns.size(); i++) {
+ PColumn column = mappedColumns.get(i);
+ String familyName = column.getFamilyName() == null ? "" : column.getFamilyName().getString();
+ String name = column.getName().getString();
+ String translatedName = !dup ? name
+ : SchemaUtil.getCaseSensitiveColumnDisplayName(familyName, column.getName().getString());
+ names.add(translatedName);
}
}