You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2015/01/31 20:17:54 UTC
[1/2] phoenix git commit: PHOENIX-1616 Creating a View with a case
sensitive column name does not work (Thomas D'Silva)
Repository: phoenix
Updated Branches:
refs/heads/master a1baf2aca -> 03a5d7ef1
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/main/java/org/apache/phoenix/util/SchemaUtil.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/SchemaUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/util/SchemaUtil.java
index 72c67bf..9ab0692 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/SchemaUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/SchemaUtil.java
@@ -48,18 +48,18 @@ import org.apache.phoenix.schema.ColumnFamilyNotFoundException;
import org.apache.phoenix.schema.ColumnNotFoundException;
import org.apache.phoenix.schema.PColumn;
import org.apache.phoenix.schema.PColumnFamily;
-import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.PDatum;
import org.apache.phoenix.schema.PMetaData;
import org.apache.phoenix.schema.PName;
import org.apache.phoenix.schema.PTable;
-import org.apache.phoenix.schema.types.PVarbinary;
-import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.RowKeySchema;
import org.apache.phoenix.schema.RowKeySchema.RowKeySchemaBuilder;
import org.apache.phoenix.schema.SaltingUtil;
import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.ValueSchema.Field;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PVarbinary;
+import org.apache.phoenix.schema.types.PVarchar;
import com.google.common.base.Preconditions;
@@ -174,7 +174,7 @@ public class SchemaUtil {
}
public static boolean isCaseSensitive(String name) {
- return name.length() > 0 && name.charAt(0)=='"';
+ return name!=null && name.length() > 0 && name.charAt(0)=='"';
}
public static <T> List<T> concat(List<T> l1, List<T> l2) {
[2/2] phoenix git commit: PHOENIX-1616 Creating a View with a case
sensitive column name does not work (Thomas D'Silva)
Posted by ja...@apache.org.
PHOENIX-1616 Creating a View with a case sensitive column name does not work (Thomas D'Silva)
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/03a5d7ef
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/03a5d7ef
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/03a5d7ef
Branch: refs/heads/master
Commit: 03a5d7ef198f059b289a7195613db8d375b88e46
Parents: a1baf2a
Author: James Taylor <jt...@salesforce.com>
Authored: Sat Jan 31 11:17:46 2015 -0800
Committer: James Taylor <jt...@salesforce.com>
Committed: Sat Jan 31 11:17:46 2015 -0800
----------------------------------------------------------------------
.../org/apache/phoenix/end2end/HashJoinIT.java | 84 ++++++++---------
.../phoenix/end2end/HashJoinLocalIndexIT.java | 4 +-
.../apache/phoenix/end2end/SortMergeJoinIT.java | 22 ++---
.../org/apache/phoenix/end2end/SubqueryIT.java | 70 +++++++-------
.../end2end/SubqueryUsingSortMergeJoinIT.java | 96 ++++++++++----------
.../java/org/apache/phoenix/end2end/ViewIT.java | 27 ++++++
.../index/GlobalIndexOptimizationIT.java | 18 ++--
.../phoenix/compile/ExpressionCompiler.java | 2 +-
.../apache/phoenix/parse/ColumnParseNode.java | 4 +
.../org/apache/phoenix/parse/TableName.java | 24 +++--
.../org/apache/phoenix/schema/ColumnRef.java | 8 +-
.../phoenix/schema/LocalIndexDataColumnRef.java | 2 +-
.../org/apache/phoenix/schema/TableRef.java | 37 ++++----
.../java/org/apache/phoenix/util/IndexUtil.java | 3 +-
.../org/apache/phoenix/util/SchemaUtil.java | 8 +-
15 files changed, 225 insertions(+), 184 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java
index a699d48..781bfea 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java
@@ -127,7 +127,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
* GROUP BY i.item_id ORDER BY q DESC"
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [I.item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"I.item_id\"]\n" +
"CLIENT MERGE SORT\n" +
"CLIENT SORTED BY [SUM(O.QUANTITY) DESC]\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
@@ -141,9 +141,9 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [I.item_id]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [\"I.item_id\"]\n" +
"CLIENT MERGE SORT\n" +
- "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, I.item_id]\n" +
+ "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, \"I.item_id\"]\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME,
/*
@@ -166,9 +166,9 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [I.item_id]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [\"I.item_id\"]\n" +
"CLIENT MERGE SORT\n" +
- "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, I.item_id]\n" +
+ "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, \"I.item_id\"]\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME,
/*
@@ -218,7 +218,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" SERVER FILTER BY QUANTITY < 5000\n" +
" PARALLEL INNER-JOIN TABLE 1\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + "\n" +
- " DYNAMIC SERVER FILTER BY item_id IN (O.item_id)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN (\"O.item_id\")",
/*
* testSelfJoin()
* SELECT i2.item_id, i1.name FROM joinItemTable i1
@@ -229,7 +229,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " DYNAMIC SERVER FILTER BY item_id IN (I2.item_id)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN (\"I2.item_id\")",
/*
* testSelfJoin()
* SELECT i1.name, i2.name FROM joinItemTable i1
@@ -241,7 +241,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
"CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
- " DYNAMIC SERVER FILTER BY item_id IN (I2.supplier_id)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN (\"I2.supplier_id\")",
/*
* testStarJoin()
* SELECT order_id, c.name, i.name iname, quantity, o.date
@@ -264,13 +264,13 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
* ORDER BY order_id
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
- " SERVER SORTED BY [O.order_id]\n" +
+ " SERVER SORTED BY [\"O.order_id\"]\n" +
"CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_CUSTOMER_TABLE_DISPLAY_NAME + "\n" +
- " DYNAMIC SERVER FILTER BY item_id IN (O.item_id)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN (\"O.item_id\")",
/*
* testSubJoin()
* SELECT * FROM joinCustomerTable c
@@ -285,7 +285,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
* ORDER BY c.customer_id, i.name
*/
"CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + JOIN_CUSTOMER_TABLE_DISPLAY_NAME + " [*] - ['0000000005']\n" +
- " SERVER SORTED BY [C.customer_id, I.NAME]\n" +
+ " SERVER SORTED BY [\"C.customer_id\", I.NAME]\n" +
"CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
@@ -295,7 +295,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" SERVER FILTER BY NAME != 'T3'\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + "\n" +
- " DYNAMIC SERVER FILTER BY customer_id IN (O.customer_id)",
+ " DYNAMIC SERVER FILTER BY \"customer_id\" IN (\"O.customer_id\")",
/*
* testJoinWithSubqueryAndAggregation()
* SELECT i.name, sum(quantity) FROM joinOrderTable o
@@ -338,7 +338,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
"CLIENT MERGE SORT\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
/*
* testJoinWithSubqueryAndAggregation()
@@ -354,7 +354,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
"CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
/*
* testNestedSubqueries()
@@ -415,7 +415,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" CLIENT PARALLEL 1-WAY FULL SCAN OVER "+ JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
" PARALLEL INNER-JOIN TABLE 1(DELAYED EVALUATION)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER "+ JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " DYNAMIC SERVER FILTER BY supplier_id IN (I.supplier_id)\n" +
+ " DYNAMIC SERVER FILTER BY \"supplier_id\" IN (\"I.supplier_id\")\n" +
" JOIN-SCANNER 4 ROW LIMIT",
/*
* testJoinWithKeyRangeOptimization()
@@ -491,7 +491,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
* GROUP BY i.item_id ORDER BY q DESC"
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [I.:item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"I.:item_id\"]\n" +
"CLIENT MERGE SORT\n" +
"CLIENT SORTED BY [SUM(O.QUANTITY) DESC]\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
@@ -505,9 +505,9 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [I.item_id]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [\"I.item_id\"]\n" +
"CLIENT MERGE SORT\n" +
- "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, I.item_id]\n" +
+ "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, \"I.item_id\"]\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME,
/*
@@ -530,9 +530,9 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [I.item_id]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [\"I.item_id\"]\n" +
"CLIENT MERGE SORT\n" +
- "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, I.item_id]\n" +
+ "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, \"I.item_id\"]\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME,
/*
@@ -592,7 +592,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " DYNAMIC SERVER FILTER BY item_id IN (I2.:item_id)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN (\"I2.:item_id\")",
/*
* testSelfJoin()
* SELECT i1.name, i2.name FROM joinItemTable i1
@@ -630,7 +630,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER SORTED BY [O.order_id]\n" +
+ " SERVER SORTED BY [\"O.order_id\"]\n" +
"CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
@@ -651,7 +651,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
* ORDER BY c.customer_id, i.name
*/
"CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + JOIN_CUSTOMER_TABLE_DISPLAY_NAME + " [*] - ['0000000005']\n" +
- " SERVER SORTED BY [C.customer_id, I.0:NAME]\n" +
+ " SERVER SORTED BY [\"C.customer_id\", I.0:NAME]\n" +
"CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
@@ -661,7 +661,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" SERVER FILTER BY NAME != 'T3'\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + "\n" +
- " DYNAMIC SERVER FILTER BY customer_id IN (O.customer_id)",
+ " DYNAMIC SERVER FILTER BY \"customer_id\" IN (\"O.customer_id\")",
/*
* testJoinWithSubqueryAndAggregation()
* SELECT i.name, sum(quantity) FROM joinOrderTable o
@@ -705,7 +705,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
"CLIENT MERGE SORT\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
/*
* testJoinWithSubqueryAndAggregation()
@@ -721,7 +721,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
"CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
/*
* testNestedSubqueries()
@@ -782,7 +782,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" CLIENT PARALLEL 1-WAY FULL SCAN OVER "+ JOIN_SCHEMA + ".idx_item\n" +
" PARALLEL INNER-JOIN TABLE 1(DELAYED EVALUATION)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER "+ JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " DYNAMIC SERVER FILTER BY supplier_id IN (I.0:supplier_id)\n" +
+ " DYNAMIC SERVER FILTER BY \"supplier_id\" IN (\"I.0:supplier_id\")\n" +
" JOIN-SCANNER 4 ROW LIMIT",
/*
* testJoinWithKeyRangeOptimization()
@@ -859,7 +859,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
* GROUP BY i.item_id ORDER BY q DESC"
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [I.:item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"I.:item_id\"]\n" +
"CLIENT MERGE SORT\n" +
"CLIENT SORTED BY [SUM(O.QUANTITY) DESC]\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
@@ -874,9 +874,9 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [I.item_id]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [\"I.item_id\"]\n" +
"CLIENT MERGE SORT\n" +
- "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, I.item_id]\n" +
+ "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, \"I.item_id\"]\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME,
/*
@@ -900,9 +900,9 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
*/
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [I.item_id]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [\"I.item_id\"]\n" +
"CLIENT MERGE SORT\n" +
- "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, I.item_id]\n" +
+ "CLIENT SORTED BY [SUM(O.QUANTITY) DESC NULLS LAST, \"I.item_id\"]\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME,
/*
@@ -958,7 +958,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + "" + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + " [-32768]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN (O.item_id)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN (\"O.item_id\")",
/*
* testSelfJoin()
* SELECT i2.item_id, i1.name FROM joinItemTable i1
@@ -970,7 +970,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER "+ MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX +""+ JOIN_ITEM_TABLE_DISPLAY_NAME +" [-32768]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN (I2.:item_id)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN (\"I2.:item_id\")",
/*
* testSelfJoin()
* SELECT i1.name, i2.name FROM joinItemTable i1
@@ -984,7 +984,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX +""+ JOIN_ITEM_TABLE_DISPLAY_NAME +" [-32768]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN (I2.0:supplier_id)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN (\"I2.0:supplier_id\")",
/*
* testStarJoin()
* SELECT order_id, c.name, i.name iname, quantity, o.date
@@ -1012,7 +1012,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
*/
"CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + "" + JOIN_ITEM_TABLE_DISPLAY_NAME + " [-32768]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER SORTED BY [O.order_id]\n"+
+ " SERVER SORTED BY [\"O.order_id\"]\n"+
"CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
@@ -1020,7 +1020,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + "" + JOIN_CUSTOMER_TABLE_DISPLAY_NAME+" [-32768]\n"+
" SERVER FILTER BY FIRST KEY ONLY\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN (O.item_id)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN (\"O.item_id\")",
/*
* testSubJoin()
* SELECT * FROM joinCustomerTable c
@@ -1035,7 +1035,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
* ORDER BY c.customer_id, i.name
*/
"CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + JOIN_CUSTOMER_TABLE_DISPLAY_NAME + " [*] - ['0000000005']\n" +
- " SERVER SORTED BY [C.customer_id, I.0:NAME]\n"+
+ " SERVER SORTED BY [\"C.customer_id\", I.0:NAME]\n"+
"CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
@@ -1046,7 +1046,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" CLIENT MERGE SORT\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + "\n" +
- " DYNAMIC SERVER FILTER BY customer_id IN (O.customer_id)",
+ " DYNAMIC SERVER FILTER BY \"customer_id\" IN (\"O.customer_id\")",
/*
* testJoinWithSubqueryAndAggregation()
* SELECT i.name, sum(quantity) FROM joinOrderTable o
@@ -1092,7 +1092,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
"CLIENT MERGE SORT\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
/*
* testJoinWithSubqueryAndAggregation()
@@ -1108,7 +1108,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
"CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
/*
* testNestedSubqueries()
@@ -1172,7 +1172,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
" CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 1(DELAYED EVALUATION)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER "+ JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " DYNAMIC SERVER FILTER BY supplier_id IN (I.0:supplier_id)\n" +
+ " DYNAMIC SERVER FILTER BY \"supplier_id\" IN (\"I.0:supplier_id\")\n" +
" JOIN-SCANNER 4 ROW LIMIT",
/*
* testJoinWithKeyRangeOptimization()
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinLocalIndexIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinLocalIndexIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinLocalIndexIT.java
index 6f47044..45e80c6 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinLocalIndexIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinLocalIndexIT.java
@@ -105,7 +105,7 @@ public class HashJoinLocalIndexIT extends BaseHBaseManagedTimeIT {
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " [-32768,*] - [-32768,'T6']\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY supplier_id IN (I.0:supplier_id)",
+ " DYNAMIC SERVER FILTER BY \"supplier_id\" IN (\"I.0:supplier_id\")",
"CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + " [-32768,'S1']\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
@@ -115,7 +115,7 @@ public class HashJoinLocalIndexIT extends BaseHBaseManagedTimeIT {
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " [-32768,*] - [-32768,'T6']\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY supplier_id IN (I.0:supplier_id)",
+ " DYNAMIC SERVER FILTER BY \"supplier_id\" IN (\"I.0:supplier_id\")",
"CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + " [-32768,*] - [-32768,'S3']\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java
index 0d76082..4503b5b 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java
@@ -112,14 +112,14 @@ public class SortMergeJoinIT extends BaseHBaseManagedTimeIT {
"AND\n" +
" SORT-MERGE-JOIN (INNER) TABLES\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
- " SERVER SORTED BY [I.item_id]\n" +
+ " SERVER SORTED BY [\"I.item_id\"]\n" +
" CLIENT MERGE SORT\n" +
" AND (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
" SERVER FILTER BY QUANTITY < 5000\n" +
- " SERVER SORTED BY [O.item_id]\n" +
+ " SERVER SORTED BY [\"O.item_id\"]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY [I.supplier_id]",
+ " CLIENT SORTED BY [\"I.supplier_id\"]",
}});
testCases.add(new String[][] {
{
@@ -130,19 +130,19 @@ public class SortMergeJoinIT extends BaseHBaseManagedTimeIT {
"SORT-MERGE-JOIN (LEFT) TABLES\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_supplier\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER SORTED BY [S.:supplier_id]\n" +
+ " SERVER SORTED BY [\"S.:supplier_id\"]\n" +
" CLIENT MERGE SORT\n" +
"AND\n" +
" SORT-MERGE-JOIN (INNER) TABLES\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
- " SERVER SORTED BY [I.:item_id]\n" +
+ " SERVER SORTED BY [\"I.:item_id\"]\n" +
" CLIENT MERGE SORT\n" +
" AND (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
" SERVER FILTER BY QUANTITY < 5000\n" +
- " SERVER SORTED BY [O.item_id]\n" +
+ " SERVER SORTED BY [\"O.item_id\"]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY [I.0:supplier_id]"
+ " CLIENT SORTED BY [\"I.0:supplier_id\"]"
}});
testCases.add(new String[][] {
{
@@ -153,19 +153,19 @@ public class SortMergeJoinIT extends BaseHBaseManagedTimeIT {
"SORT-MERGE-JOIN (LEFT) TABLES\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + " [-32768]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER SORTED BY [S.:supplier_id]\n" +
+ " SERVER SORTED BY [\"S.:supplier_id\"]\n" +
" CLIENT MERGE SORT\n" +
"AND\n" +
" SORT-MERGE-JOIN (INNER) TABLES\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " [-32768]\n" +
- " SERVER SORTED BY [I.:item_id]\n" +
+ " SERVER SORTED BY [\"I.:item_id\"]\n" +
" CLIENT MERGE SORT\n" +
" AND (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
" SERVER FILTER BY QUANTITY < 5000\n" +
- " SERVER SORTED BY [O.item_id]\n" +
+ " SERVER SORTED BY [\"O.item_id\"]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY [I.0:supplier_id]"
+ " CLIENT SORTED BY [\"I.0:supplier_id\"]"
}});
return testCases;
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryIT.java
index 85e562c..2d11c5c 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryIT.java
@@ -111,9 +111,9 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + "\n" +
" SKIP-SCAN-JOIN TABLE 1\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + " \\['000000000000001'\\] - \\[\\*\\]\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN \\(\\$\\d+.\\$\\d+\\)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN \\(\\$\\d+.\\$\\d+\\)",
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + "\n" +
" SERVER SORTED BY [I.NAME]\n" +
@@ -122,28 +122,28 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
" PARALLEL SEMI-JOIN TABLE 1(DELAYED EVALUATION) (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
"CLIENT PARALLEL 4-WAY FULL SCAN OVER " + JOIN_COITEM_TABLE_DISPLAY_NAME + "\n" +
"CLIENT MERGE SORT\n" +
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id, NAME\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\", NAME\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL ANTI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL LEFT-JOIN TABLE 1\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id, NAME\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\", NAME\\]\n" +
" CLIENT MERGE SORT\n" +
" SKIP-SCAN-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN \\(\\$\\d+.\\$\\d+\\)\n" +
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN \\(\\$\\d+.\\$\\d+\\)\n" +
" AFTER-JOIN SERVER FILTER BY \\(\\$\\d+.\\$\\d+ IS NOT NULL OR \\$\\d+.\\$\\d+ IS NOT NULL\\)",
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
@@ -151,23 +151,23 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
"CLIENT MERGE SORT\n" +
" PARALLEL ANTI-JOIN TABLE 0 (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_CUSTOMER_TABLE_DISPLAY_NAME + "\n" +
" SKIP-SCAN-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[O.customer_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"O.customer_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
" PARALLEL LEFT-JOIN TABLE 1\\(DELAYED EVALUATION\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN \\(O.item_id\\)\n" +
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN \\(\"O.item_id\"\\)\n" +
" AFTER-JOIN SERVER FILTER BY \\(I.NAME = 'T2' OR O.QUANTITY > \\$\\d+.\\$\\d+\\)\n" +
- " DYNAMIC SERVER FILTER BY customer_id IN \\(\\$\\d+.\\$\\d+\\)"
+ " DYNAMIC SERVER FILTER BY \"customer_id\" IN \\(\\$\\d+.\\$\\d+\\)"
}});
testCases.add(new String[][] {
{
@@ -181,7 +181,7 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" SERVER FILTER BY FIRST KEY ONLY\n" +
" PARALLEL SEMI-JOIN TABLE 1 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + " \\['000000000000001'\\] - \\[\\*\\]\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT",
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_supplier\n" +
@@ -192,7 +192,7 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
" PARALLEL SEMI-JOIN TABLE 1(DELAYED EVALUATION) (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
"CLIENT PARALLEL 4-WAY FULL SCAN OVER " + JOIN_COITEM_TABLE_DISPLAY_NAME + "\n" +
@@ -200,20 +200,20 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, item_id\\]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, \"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL ANTI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL LEFT-JOIN TABLE 1\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, item_id\\]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, \"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL SEMI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" AFTER-JOIN SERVER FILTER BY \\(\\$\\d+.\\$\\d+ IS NOT NULL OR \\$\\d+.\\$\\d+ IS NOT NULL\\)",
@@ -221,7 +221,7 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" SERVER FILTER BY FIRST KEY ONLY\n" +
" PARALLEL ANTI-JOIN TABLE 0 (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
"CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_customer\n" +
@@ -229,13 +229,13 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" PARALLEL SEMI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[O.customer_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"O.customer_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
" PARALLEL LEFT-JOIN TABLE 1\\(DELAYED EVALUATION\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" AFTER-JOIN SERVER FILTER BY \\(I.0:NAME = 'T2' OR O.QUANTITY > \\$\\d+.\\$\\d+\\)"
}});
@@ -253,9 +253,9 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" CLIENT MERGE SORT\n" +
" PARALLEL SEMI-JOIN TABLE 1 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + " \\['000000000000001'\\] - \\[\\*\\]\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN \\(\\$\\d+.\\$\\d+\\)",
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN \\(\\$\\d+.\\$\\d+\\)",
"CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + " [-32768]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
@@ -266,7 +266,7 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" CLIENT MERGE SORT\n" +
" PARALLEL SEMI-JOIN TABLE 1(DELAYED EVALUATION) (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
"CLIENT PARALLEL 4-WAY FULL SCAN OVER " + JOIN_COITEM_TABLE_DISPLAY_NAME + "\n" +
@@ -274,22 +274,22 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" PARALLEL LEFT-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " \\[-32768\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, item_id\\]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, \"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL ANTI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL LEFT-JOIN TABLE 1\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " \\[-32768\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, item_id\\]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, \"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL SEMI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN \\(\\$\\d+.\\$\\d+\\)\n" +
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN \\(\\$\\d+.\\$\\d+\\)\n" +
" AFTER-JOIN SERVER FILTER BY \\(\\$\\d+.\\$\\d+ IS NOT NULL OR \\$\\d+.\\$\\d+ IS NOT NULL\\)",
"CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " [-32768]\n" +
@@ -297,7 +297,7 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
"CLIENT MERGE SORT\n" +
" PARALLEL ANTI-JOIN TABLE 0 (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT",
"CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_CUSTOMER_TABLE_DISPLAY_NAME + " \\[-32768\\]\n" +
@@ -306,17 +306,17 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
" PARALLEL SEMI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " \\[-32768\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[O.customer_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"O.customer_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
" PARALLEL LEFT-JOIN TABLE 1\\(DELAYED EVALUATION\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN \\(O.item_id\\)\n" +
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN \\(\"O.item_id\"\\)\n" +
" AFTER-JOIN SERVER FILTER BY \\(I.0:NAME = 'T2' OR O.QUANTITY > \\$\\d+.\\$\\d+\\)\n" +
- " DYNAMIC SERVER FILTER BY customer_id IN \\(\\$\\d+.\\$\\d+\\)"
+ " DYNAMIC SERVER FILTER BY \"customer_id\" IN \\(\\$\\d+.\\$\\d+\\)"
}});
return testCases;
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryUsingSortMergeJoinIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryUsingSortMergeJoinIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryUsingSortMergeJoinIT.java
index 82b1c68..7457e02 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryUsingSortMergeJoinIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryUsingSortMergeJoinIT.java
@@ -110,18 +110,18 @@ public class SubqueryUsingSortMergeJoinIT extends BaseHBaseManagedTimeIT {
"SORT-MERGE-JOIN (SEMI) TABLES\n" +
" SORT-MERGE-JOIN (INNER) TABLES\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
- " SERVER SORTED BY [I.supplier_id]\n" +
+ " SERVER SORTED BY [\"I.supplier_id\"]\n" +
" CLIENT MERGE SORT\n" +
" AND\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER SORTED BY [S.supplier_id]\n" +
+ " SERVER SORTED BY [\"S.supplier_id\"]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY [I.item_id]\n" +
+ " CLIENT SORTED BY [\"I.item_id\"]\n" +
"AND (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + " ['000000000000001'] - [*]\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY [item_id]\n" +
+ " CLIENT SORTED BY [\"item_id\"]\n" +
"CLIENT SORTED BY [I.NAME]",
"SORT-MERGE-JOIN \\(LEFT\\) TABLES\n" +
@@ -130,40 +130,40 @@ public class SubqueryUsingSortMergeJoinIT extends BaseHBaseManagedTimeIT {
" CLIENT MERGE SORT\n" +
" AND\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id, NAME\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\", NAME\\]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY \\[item_id, NAME\\]\n" +
+ " CLIENT SORTED BY \\[\"item_id\", NAME\\]\n" +
" PARALLEL ANTI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id]\\\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"]\\\n" +
" CLIENT MERGE SORT\n" +
" CLIENT SORTED BY \\[.*.CO_ITEM_ID, .*.CO_ITEM_NAME\\]\n" +
"AND\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id, NAME\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\", NAME\\]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY \\[item_id, NAME\\]\n" +
+ " CLIENT SORTED BY \\[\"item_id\", NAME\\]\n" +
" SKIP-SCAN-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN \\(\\$\\d+.\\$\\d+\\)\n" +
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN \\(\\$\\d+.\\$\\d+\\)\n" +
"CLIENT FILTER BY \\(\\$\\d+.\\$\\d+ IS NOT NULL OR \\$\\d+.\\$\\d+ IS NOT NULL\\)",
"SORT-MERGE-JOIN \\(SEMI\\) TABLES\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_CUSTOMER_TABLE_DISPLAY_NAME + "\n" +
"AND \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ITEM_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[O.customer_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"O.customer_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY \\[O.customer_id\\]\n" +
+ " CLIENT SORTED BY \\[\"O.customer_id\"\\]\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
" PARALLEL LEFT-JOIN TABLE 1\\(DELAYED EVALUATION\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN \\(O.item_id\\)\n" +
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN \\(\"O.item_id\"\\)\n" +
" AFTER-JOIN SERVER FILTER BY \\(I.NAME = 'T2' OR O.QUANTITY > \\$\\d+.\\$\\d+\\)",
}});
testCases.add(new String[][] {
@@ -175,19 +175,19 @@ public class SubqueryUsingSortMergeJoinIT extends BaseHBaseManagedTimeIT {
"SORT-MERGE-JOIN (SEMI) TABLES\n" +
" SORT-MERGE-JOIN (INNER) TABLES\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
- " SERVER SORTED BY [I.0:supplier_id]\n" +
+ " SERVER SORTED BY [\"I.0:supplier_id\"]\n" +
" CLIENT MERGE SORT\n" +
" AND\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_supplier\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER SORTED BY [S.:supplier_id]\n" +
+ " SERVER SORTED BY [\"S.:supplier_id\"]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY [I.:item_id]\n" +
+ " CLIENT SORTED BY [\"I.:item_id\"]\n" +
"AND (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + " ['000000000000001'] - [*]\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY [item_id]\n" +
+ " CLIENT SORTED BY [\"item_id\"]\n" +
"CLIENT SORTED BY [I.0:NAME]",
"SORT-MERGE-JOIN \\(LEFT\\) TABLES\n" +
@@ -197,42 +197,42 @@ public class SubqueryUsingSortMergeJoinIT extends BaseHBaseManagedTimeIT {
" AND\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, item_id\\]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, \"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY \\[item_id, NAME\\]\n" +
+ " CLIENT SORTED BY \\[\"item_id\", NAME\\]\n" +
" PARALLEL ANTI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" CLIENT SORTED BY \\[.*.CO_ITEM_ID, .*.CO_ITEM_NAME\\]\n" +
"AND\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, item_id\\]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, \"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY \\[item_id, NAME\\]\n" +
+ " CLIENT SORTED BY \\[\"item_id\", NAME\\]\n" +
" PARALLEL SEMI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
"CLIENT FILTER BY \\(\\$\\d+.\\$\\d+ IS NOT NULL OR \\$\\d+.\\$\\d+ IS NOT NULL\\)",
"SORT-MERGE-JOIN \\(SEMI\\) TABLES\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_customer\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER SORTED BY \\[Join.idx_customer.:customer_id\\]\n" +
+ " SERVER SORTED BY \\[\"Join.idx_customer.:customer_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
"AND \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_SCHEMA + ".idx_item\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[O.customer_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"O.customer_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY \\[O.customer_id\\]\n" +
+ " CLIENT SORTED BY \\[\"O.customer_id\"\\]\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
" PARALLEL LEFT-JOIN TABLE 1\\(DELAYED EVALUATION\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" AFTER-JOIN SERVER FILTER BY \\(I.0:NAME = 'T2' OR O.QUANTITY > \\$\\d+.\\$\\d+\\)",
}});
@@ -245,19 +245,19 @@ public class SubqueryUsingSortMergeJoinIT extends BaseHBaseManagedTimeIT {
"SORT-MERGE-JOIN (SEMI) TABLES\n" +
" SORT-MERGE-JOIN (INNER) TABLES\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " [-32768]\n" +
- " SERVER SORTED BY [I.0:supplier_id]\n" +
+ " SERVER SORTED BY [\"I.0:supplier_id\"]\n" +
" CLIENT MERGE SORT\n" +
" AND\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_SUPPLIER_TABLE_DISPLAY_NAME + " [-32768]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER SORTED BY [S.:supplier_id]\n" +
+ " SERVER SORTED BY [\"S.:supplier_id\"]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY [I.:item_id]\n" +
+ " CLIENT SORTED BY [\"I.:item_id\"]\n" +
"AND (SKIP MERGE)\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + " ['000000000000001'] - [*]\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY [item_id]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY [\"item_id\"]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY [item_id]\n" +
+ " CLIENT SORTED BY [\"item_id\"]\n" +
"CLIENT SORTED BY [I.0:NAME]",
"SORT-MERGE-JOIN \\(LEFT\\) TABLES\n" +
@@ -267,45 +267,45 @@ public class SubqueryUsingSortMergeJoinIT extends BaseHBaseManagedTimeIT {
" AND\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " \\[-32768\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, item_id\\]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, \"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY \\[item_id, NAME\\]\n" +
+ " CLIENT SORTED BY \\[\"item_id\", NAME\\]\n" +
" PARALLEL ANTI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
" CLIENT SORTED BY \\[.*.CO_ITEM_ID, .*.CO_ITEM_NAME\\]\n" +
"AND\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " \\[-32768\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, item_id\\]\n" +
+ " SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY \\[NAME, \"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY \\[item_id, NAME\\]\n" +
+ " CLIENT SORTED BY \\[\"item_id\", NAME\\]\n" +
" PARALLEL SEMI-JOIN TABLE 0 \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN \\(\\$\\d+.\\$\\d+\\)\n" +
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN \\(\\$\\d+.\\$\\d+\\)\n" +
"CLIENT FILTER BY \\(\\$\\d+.\\$\\d+ IS NOT NULL OR \\$\\d+.\\$\\d+ IS NOT NULL\\)",
"SORT-MERGE-JOIN \\(SEMI\\) TABLES\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_CUSTOMER_TABLE_DISPLAY_NAME + " \\[-32768\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER SORTED BY \\[Join.idx_customer.:customer_id\\]\n" +
+ " SERVER SORTED BY \\[\"Join.idx_customer.:customer_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
"AND \\(SKIP MERGE\\)\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX + JOIN_ITEM_TABLE_DISPLAY_NAME + " \\[-32768\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[O.customer_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"O.customer_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " CLIENT SORTED BY \\[O.customer_id\\]\n" +
+ " CLIENT SORTED BY \\[\"O.customer_id\"\\]\n" +
" PARALLEL INNER-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
" PARALLEL LEFT-JOIN TABLE 1\\(DELAYED EVALUATION\\)\n" +
" CLIENT PARALLEL 1-WAY FULL SCAN OVER " + JOIN_ORDER_TABLE_DISPLAY_NAME + "\n" +
- " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[item_id\\]\n" +
+ " SERVER AGGREGATE INTO DISTINCT ROWS BY \\[\"item_id\"\\]\n" +
" CLIENT MERGE SORT\n" +
- " DYNAMIC SERVER FILTER BY item_id IN \\(O.item_id\\)\n" +
+ " DYNAMIC SERVER FILTER BY \"item_id\" IN \\(\"O.item_id\"\\)\n" +
" AFTER-JOIN SERVER FILTER BY \\(I.0:NAME = 'T2' OR O.QUANTITY > \\$\\d+.\\$\\d+\\)",
}});
return testCases;
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
index 0b06e03..aa26f9b 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
@@ -245,6 +245,33 @@ public class ViewIT extends BaseViewIT {
}
@Test
+ public void testReadOnlyViewWithCaseSensitiveColumnNames() throws Exception {
+ Connection conn = DriverManager.getConnection(getUrl());
+ String ddl = "CREATE TABLE t (\"k\" INTEGER NOT NULL PRIMARY KEY, \"v1\" INTEGER, \"a\".v2 VARCHAR)";
+ conn.createStatement().execute(ddl);
+ ddl = "CREATE VIEW v (v VARCHAR) AS SELECT * FROM t WHERE \"k\" > 5 and \"v1\" > 1";
+ conn.createStatement().execute(ddl);
+ try {
+ conn.createStatement().execute("UPSERT INTO v VALUES(1)");
+ fail();
+ } catch (ReadOnlyTableException e) {
+
+ }
+ for (int i = 0; i < 10; i++) {
+ conn.createStatement().execute("UPSERT INTO t VALUES(" + i + ", " + (i+10) + ",'A')");
+ }
+ conn.commit();
+
+ int count = 0;
+ ResultSet rs = conn.createStatement().executeQuery("SELECT \"k\", \"v1\",\"a\".v2 FROM v");
+ while (rs.next()) {
+ count++;
+ assertEquals(count + 5, rs.getInt(1));
+ }
+ assertEquals(4, count);
+ }
+
+ @Test
public void testViewAndTableInDifferentSchemas() throws Exception {
Connection conn = DriverManager.getConnection(getUrl());
String ddl = "CREATE TABLE s1.t (k INTEGER NOT NULL PRIMARY KEY, v1 DATE)";
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java
index f526c6a..e54e6a2 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java
@@ -113,7 +113,7 @@ public class GlobalIndexOptimizationIT extends BaseHBaseManagedTimeIT {
" SKIP-SCAN-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + TestUtil.DEFAULT_INDEX_TABLE_NAME + " \\['a'\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " DYNAMIC SERVER FILTER BY \\(T_ID, K1, K2\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
+ " DYNAMIC SERVER FILTER BY \\(\"T_ID\", \"K1\", \"K2\"\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
String actual = QueryUtil.getExplainPlan(rs);
assertTrue("Expected:\n" + expected + "\nbut got\n" + actual, Pattern.matches(expected, actual));
@@ -138,7 +138,7 @@ public class GlobalIndexOptimizationIT extends BaseHBaseManagedTimeIT {
" SKIP-SCAN-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + TestUtil.DEFAULT_INDEX_TABLE_NAME + " \\['a'\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " DYNAMIC SERVER FILTER BY \\(T_ID, K1, K2\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
+ " DYNAMIC SERVER FILTER BY \\(\"T_ID\", \"K1\", \"K2\"\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
actual = QueryUtil.getExplainPlan(rs);
assertTrue("Expected:\n" + expected + "\nbut got\n" + actual, Pattern.matches(expected, actual));
@@ -168,7 +168,7 @@ public class GlobalIndexOptimizationIT extends BaseHBaseManagedTimeIT {
" SKIP-SCAN-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + TestUtil.DEFAULT_INDEX_TABLE_NAME + " \\[\\*\\] - \\['z'\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " DYNAMIC SERVER FILTER BY \\(T_ID, K1, K2\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
+ " DYNAMIC SERVER FILTER BY \\(\"T_ID\", \"K1\", \"K2\"\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
actual = QueryUtil.getExplainPlan(rs);
assertTrue("Expected:\n" + expected + "\nbut got\n" + actual, Pattern.matches(expected, actual));
@@ -203,7 +203,7 @@ public class GlobalIndexOptimizationIT extends BaseHBaseManagedTimeIT {
" SKIP-SCAN-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER " + TestUtil.DEFAULT_INDEX_TABLE_NAME + " \\[\\*\\] - \\['z'\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " DYNAMIC SERVER FILTER BY \\(T_ID, K1, K2\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
+ " DYNAMIC SERVER FILTER BY \\(\"T_ID\", \"K1\", \"K2\"\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
actual = QueryUtil.getExplainPlan(rs);
assertTrue("Expected:\n" + expected + "\nbut got\n" + actual, Pattern.matches(expected, actual));
@@ -237,7 +237,7 @@ public class GlobalIndexOptimizationIT extends BaseHBaseManagedTimeIT {
" SKIP-SCAN-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER I \\[\\*\\] - \\['z'\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " DYNAMIC SERVER FILTER BY \\(T_ID, K1, K2\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
+ " DYNAMIC SERVER FILTER BY \\(\"T_ID\", \"K1\", \"K2\"\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
actual = QueryUtil.getExplainPlan(rs);
assertTrue("Expected:\n" + expected + "\nbut got\n" + actual, Pattern.matches(expected, actual));
@@ -275,8 +275,8 @@ public class GlobalIndexOptimizationIT extends BaseHBaseManagedTimeIT {
" SKIP-SCAN-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY RANGE SCAN OVER I \\['tid1','a'\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY\n" +
- " DYNAMIC SERVER FILTER BY \\(K1, K2\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
- assertTrue("Expected:\n" + expected + "\nbut got\n" + actual, Pattern.matches(expected, actual));
+ " DYNAMIC SERVER FILTER BY \\(\"K1\", \"K2\"\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
+ assertTrue("Expected:\n" + expected + "\ndid not match\n" + actual, Pattern.matches(expected, actual));
rs = conn1.createStatement().executeQuery(query);
assertTrue(rs.next());
@@ -323,8 +323,8 @@ public class GlobalIndexOptimizationIT extends BaseHBaseManagedTimeIT {
" SKIP-SCAN-JOIN TABLE 0\n" +
" CLIENT PARALLEL 1-WAY SKIP SCAN ON 2 KEYS OVER _IDX_T \\[-32768,1\\] - \\[-32768,2\\]\n" +
" SERVER FILTER BY FIRST KEY ONLY AND K2 IN \\(3,4\\)\n" +
- " DYNAMIC SERVER FILTER BY \\(T_ID, K1, K2\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
- assertTrue("Expected:\n" + expected + "\nbut got\n" + actual, Pattern.matches(expected,actual));
+ " DYNAMIC SERVER FILTER BY \\(\"T_ID\", \"K1\", \"K2\"\\) IN \\(\\(\\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+, \\$\\d+.\\$\\d+\\)\\)";
+ assertTrue("Expected:\n" + expected + "\ndid not match\n" + actual, Pattern.matches(expected,actual));
rs = conn1.createStatement().executeQuery(query);
assertTrue(rs.next());
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java
index 32216db..95e145c 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java
@@ -387,7 +387,7 @@ public class ExpressionCompiler extends UnsupportedAllParseNodeVisitor<Expressio
if (tableRef.equals(context.getCurrentTable()) && !SchemaUtil.isPKColumn(column)) { // project only kv columns
context.getScan().addColumn(column.getFamilyName().getBytes(), column.getName().getBytes());
}
- Expression expression = ref.newColumnExpression();
+ Expression expression = ref.newColumnExpression(node.isTableNameCaseSensitive(), node.isCaseSensitive());
Expression wrappedExpression = wrapGroupByExpression(expression);
// If we're in an aggregate expression
// and we're not in the context of an aggregate function
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/main/java/org/apache/phoenix/parse/ColumnParseNode.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/parse/ColumnParseNode.java b/phoenix-core/src/main/java/org/apache/phoenix/parse/ColumnParseNode.java
index 95ef6a4..19dbc68 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/parse/ColumnParseNode.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/parse/ColumnParseNode.java
@@ -85,4 +85,8 @@ public class ColumnParseNode extends NamedParseNode {
ColumnParseNode other = (ColumnParseNode)obj;
return fullName.equals(other.fullName);
}
+
+ public boolean isTableNameCaseSensitive() {
+ return tableName == null ? false : tableName.isTableNameCaseSensitive();
+ }
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/main/java/org/apache/phoenix/parse/TableName.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/parse/TableName.java b/phoenix-core/src/main/java/org/apache/phoenix/parse/TableName.java
index 9f43371..9717067 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/parse/TableName.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/parse/TableName.java
@@ -23,20 +23,30 @@ import org.apache.phoenix.util.SchemaUtil;
public class TableName {
private final String tableName;
private final String schemaName;
+ private final boolean isTableNameCaseSensitive;
+ private final boolean isSchemaNameCaseSensitive;
public static TableName createNormalized(String schemaName, String tableName) {
- schemaName = schemaName == null ? null : SchemaUtil.normalizeIdentifier(schemaName);
- tableName = SchemaUtil.normalizeIdentifier(tableName);
- return new TableName(schemaName, tableName);
+ return new TableName(schemaName, tableName, true);
}
public static TableName create(String schemaName, String tableName) {
- return new TableName(schemaName,tableName);
+ return new TableName(schemaName, tableName, false);
}
- private TableName(String schemaName, String tableName) {
- this.schemaName = schemaName;
- this.tableName = tableName;
+ private TableName(String schemaName, String tableName, boolean normalize) {
+ this.schemaName = normalize ? SchemaUtil.normalizeIdentifier(schemaName) : schemaName;
+ this.isSchemaNameCaseSensitive = normalize ? SchemaUtil.isCaseSensitive(schemaName) : false;
+ this.tableName = normalize ? SchemaUtil.normalizeIdentifier(tableName) : tableName;
+ this.isTableNameCaseSensitive = normalize ? SchemaUtil.isCaseSensitive(tableName) : false;
+ }
+
+ public boolean isTableNameCaseSensitive() {
+ return isTableNameCaseSensitive;
+ }
+
+ public boolean isSchemaNameCaseSensitive() {
+ return isSchemaNameCaseSensitive;
}
public String getTableName() {
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnRef.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnRef.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnRef.java
index f271ac5..c6dd1f4 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnRef.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnRef.java
@@ -89,11 +89,15 @@ public class ColumnRef {
if (!tableRef.equals(other.tableRef)) return false;
return true;
}
-
+
public ColumnExpression newColumnExpression() {
+ return newColumnExpression(false, false);
+ }
+
+ public ColumnExpression newColumnExpression(boolean schemaNameCaseSensitive, boolean colNameCaseSensitive) {
PTable table = tableRef.getTable();
PColumn column = this.getColumn();
- String displayName = tableRef.getColumnDisplayName(this);
+ String displayName = tableRef.getColumnDisplayName(this, schemaNameCaseSensitive, colNameCaseSensitive);
if (SchemaUtil.isPKColumn(column)) {
return new RowKeyColumnExpression(
column,
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/main/java/org/apache/phoenix/schema/LocalIndexDataColumnRef.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/LocalIndexDataColumnRef.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/LocalIndexDataColumnRef.java
index 362d59f..62ef431 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/LocalIndexDataColumnRef.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/LocalIndexDataColumnRef.java
@@ -61,7 +61,7 @@ public class LocalIndexDataColumnRef extends ColumnRef {
}
@Override
- public ColumnExpression newColumnExpression() {
+ public ColumnExpression newColumnExpression(boolean schemaNameCaseSensitive, boolean colNameCaseSensitive) {
PTable table = this.getTable();
PColumn column = this.getColumn();
// TODO: util for this or store in member variable
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/main/java/org/apache/phoenix/schema/TableRef.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/TableRef.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/TableRef.java
index a88ba4d..b64912b 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/TableRef.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/TableRef.java
@@ -18,7 +18,6 @@
package org.apache.phoenix.schema;
import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.util.Bytes;
import org.apache.phoenix.query.QueryConstants;
import org.apache.phoenix.util.IndexUtil;
import org.apache.phoenix.util.SchemaUtil;
@@ -69,31 +68,29 @@ public class TableRef {
return alias;
}
- public String getColumnDisplayName(ColumnRef ref) {
+ public String getColumnDisplayName(ColumnRef ref, boolean cfCaseSensitive, boolean cqCaseSensitive) {
+ String cf = null;
+ String cq = null;
PColumn column = ref.getColumn();
+ String name = column.getName().getString();
+ boolean isIndex = table.getType() == PTableType.INDEX;
if (table.getType() == PTableType.JOIN || table.getType() == PTableType.SUBQUERY) {
- return column.getName().getString();
+ cq = column.getName().getString();
}
- boolean isIndex = table.getType() == PTableType.INDEX;
- if (SchemaUtil.isPKColumn(column)) {
- String name = column.getName().getString();
- if (isIndex) {
- return IndexUtil.getDataColumnName(name);
- }
- return name;
+ else if (SchemaUtil.isPKColumn(column)) {
+ cq = isIndex ? IndexUtil.getDataColumnName(name) : name;
}
-
- if (isIndex) {
- // Translate to the data table column name
- String indexColumnName = column.getName().getString();
- String dataFamilyName = IndexUtil.getDataColumnFamilyName(indexColumnName);
- String dataColumnName = IndexUtil.getDataColumnName(indexColumnName);
+ else {
String defaultFamilyName = table.getDefaultFamilyName() == null ? QueryConstants.DEFAULT_COLUMN_FAMILY : table.getDefaultFamilyName().getString();
- return SchemaUtil.getColumnDisplayName(defaultFamilyName.equals(dataFamilyName) ? null : dataFamilyName, dataColumnName);
+ // Translate to the data table column name
+ String dataFamilyName = isIndex ? IndexUtil.getDataColumnFamilyName(name) : column.getFamilyName().getString() ;
+ cf = defaultFamilyName.equals(dataFamilyName) ? null : dataFamilyName;
+ cq = isIndex ? IndexUtil.getDataColumnName(name) : name;
}
- byte[] defaultFamily = table.getDefaultFamilyName() == null ? QueryConstants.DEFAULT_COLUMN_FAMILY_BYTES : table.getDefaultFamilyName().getBytes();
- String displayName = SchemaUtil.getColumnDisplayName(Bytes.compareTo(defaultFamily, column.getFamilyName().getBytes()) == 0 ? null : column.getFamilyName().getBytes(), column.getName().getBytes());
- return displayName;
+
+ cf = (cf!=null && cfCaseSensitive) ? "\"" + cf + "\"" : cf;
+ cq = cqCaseSensitive ? "\"" + cq + "\"" : cq;
+ return SchemaUtil.getColumnDisplayName(cf, cq);
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03a5d7ef/phoenix-core/src/main/java/org/apache/phoenix/util/IndexUtil.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/IndexUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/util/IndexUtil.java
index 8245df5..39e13bf 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/IndexUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/IndexUtil.java
@@ -28,7 +28,6 @@ import java.util.List;
import java.util.Map;
import org.apache.hadoop.hbase.Cell;
-import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Get;
@@ -442,7 +441,7 @@ public class IndexUtil {
PhoenixStatement statement = new PhoenixStatement(conn);
TableRef indexTableRef = new TableRef(index) {
@Override
- public String getColumnDisplayName(ColumnRef ref) {
+ public String getColumnDisplayName(ColumnRef ref, boolean cfCaseSensitive, boolean cqCaseSensitive) {
return '"' + ref.getColumn().getName().getString() + '"';
}
};