diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java index 2f36f04..87f3716 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java @@ -578,8 +578,6 @@ public static void setMapWork(MapWork plan, ParseContext parseCtx, Set> mvTasks, HiveConf hco // There are separate configuration parameters to control whether to // merge for a map-only job // or for a map-reduce job - if (currTask.getWork() instanceof MapredWork) { + if (currTask.getWork() instanceof MapredWork) { ReduceWork reduceWork = ((MapredWork) currTask.getWork()).getReduceWork(); boolean mergeMapOnly = hconf.getBoolVar(ConfVars.HIVEMERGEMAPFILES) && reduceWork == null; @@ -1788,7 +1786,7 @@ public static Path createMoveTask(Task currTask, boolean return Collections.emptyList(); } - public static List getInputPathsForPartialScan(QBParseInfo parseInfo, StringBuffer aggregationKey) + public static List getInputPathsForPartialScan(QBParseInfo parseInfo, StringBuffer aggregationKey) throws SemanticException { List inputPaths = new ArrayList(); switch (parseInfo.getTableSpec().specType) { @@ -1825,6 +1823,7 @@ public static Path createMoveTask(Task currTask, boolean public static Set> findTopOps(Operator startOp, final Class clazz) { final Set> operators = new LinkedHashSet>(); OperatorUtils.iterateParents(startOp, new NodeUtils.Function>() { + @Override public void apply(Operator argument) { if (argument.getNumParent() == 0 && (clazz == null || clazz.isInstance(argument))) { operators.add(argument); 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 c4dacf9..ddd645b 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 @@ -1624,6 +1624,10 @@ public void getMetaData(QB qb, ReadEntity parentInput) throws SemanticException qb.getParseInfo().addTableSpec(alias, ts); } + + ReadEntity parentViewInfo = PlanUtils.getParentViewInfo(getAliasId(alias, qb), viewAliasToInput); + PlanUtils.addInput(inputs, + new ReadEntity(tab, parentViewInfo, parentViewInfo == null)); } LOG.info("Get metadata for subqueries"); @@ -2428,7 +2432,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 {