diff --git a/data/conf/hive-site.xml b/data/conf/hive-site.xml
index ed3ee42..9e5b566 100644
--- a/data/conf/hive-site.xml
+++ b/data/conf/hive-site.xml
@@ -38,13 +38,12 @@
A base for other temporary directories.
-
hive.exec.scratchdir
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/translator/ASTConverter.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/translator/ASTConverter.java
index 77427e8..7a96ee7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/translator/ASTConverter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/translator/ASTConverter.java
@@ -27,7 +27,9 @@
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.ql.optimizer.optiq.OptiqSemanticException;
+import org.apache.hadoop.hive.ql.optimizer.optiq.RelOptHiveTable;
import org.apache.hadoop.hive.ql.optimizer.optiq.reloperators.HiveSortRel;
+import org.apache.hadoop.hive.ql.optimizer.optiq.reloperators.HiveTableScanRel;
import org.apache.hadoop.hive.ql.optimizer.optiq.translator.SqlFunctionConverter.HiveToken;
import org.apache.hadoop.hive.ql.parse.ASTNode;
import org.apache.hadoop.hive.ql.parse.HiveParser;
@@ -237,6 +239,10 @@ private QueryBlockInfo convertSource(RelNode r) {
ASTConverter src = new ASTConverter(r);
ASTNode srcAST = src.convert(order);
String sqAlias = ASTConverter.nextAlias();
+ if (src.from instanceof HiveTableScanRel) {
+ sqAlias = ((RelOptHiveTable)((HiveTableScanRel)src.from).getTable()).getName();
+ }
+
s = src.getRowSchema(sqAlias);
ast = ASTBuilder.subQuery(srcAST, sqAlias);
}
@@ -530,7 +536,7 @@ public QueryBlockInfo(Schema schema, ASTNode ast) {
* 1. ProjectRel will always be child of SortRel.
* 2. In Optiq every projection in ProjectRelBase is uniquely named
* (unambigous) without using table qualifier (table name).
- *
+ *
* @param order
* Hive Sort Rel Node
* @return Schema
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
index 943cc5c..94024e7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
@@ -449,7 +449,6 @@ protected void reset(boolean clearPartsCache) {
viewSelect = null;
ctesExpanded = null;
globalLimitCtx.disableOpt();
- viewAliasToInput.clear();
reduceSinkOperatorsAddedByEnforceBucketingSorting.clear();
topToTableProps.clear();
listMapJoinOpsNoReducer.clear();
@@ -2425,7 +2424,7 @@ private Operator genHavingPlan(String dest, QB qb, Operator input,
output = putOpInsertMap(output, inputRR);
return output;
}
-
+
private Operator genPlanForSubQueryPredicate(
QB qbSQ,
ISubQueryJoinInfo subQueryPredicate) throws SemanticException {
@@ -12642,7 +12641,7 @@ private RelNode genTableLogicalPlan(String tableAlias, QB qb) throws SemanticExc
try {
- // 0. If the table has a Sample specified, bail from Optiq path.
+ // 1. If the table has a Sample specified, bail from Optiq path.
if ( qb.getParseInfo().getTabSample(tableAlias) != null ||
SemanticAnalyzer.this.nameToSplitSample.containsKey(tableAlias)) {
String msg = String.format("Table Sample specified for %s." +
@@ -12652,9 +12651,6 @@ private RelNode genTableLogicalPlan(String tableAlias, QB qb) throws SemanticExc
throw new OptiqSemanticException(msg);
}
- // 1. Get Table Alias
- String alias_id = getAliasId(tableAlias, qb);
-
// 2. Get Table Metadata
Table tab = qb.getMetaData().getSrcForAlias(tableAlias);
@@ -12707,7 +12703,7 @@ private RelNode genTableLogicalPlan(String tableAlias, QB qb) throws SemanticExc
RelDataType rowType = TypeConverter.getType(cluster, rr, null);
// 4. Build RelOptAbstractTable
- RelOptHiveTable optTable = new RelOptHiveTable(relOptSchema, tableAlias, rowType, tab,
+ RelOptHiveTable optTable = new RelOptHiveTable(relOptSchema, qb.getId(), rowType, tab,
nonPartitionColumns, partitionColumns, conf, partitionCache, noColsMissingStats);
// 5. Build Hive Table Scan Rel