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