HIVE-19237: Only use an operatorId once in a plan (Zoltan Haindrich reviewed by Ashutosh Chauhan)
Signed-off-by: Zoltan Haindrich <k...@rxd.hu> Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/2842f88e Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/2842f88e Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/2842f88e Branch: refs/heads/master Commit: 2842f88e228bb4f11e587fb41338c9a770c96262 Parents: 24a98ea Author: Zoltan Haindrich <k...@rxd.hu> Authored: Mon Jun 11 08:01:49 2018 +0200 Committer: Zoltan Haindrich <k...@rxd.hu> Committed: Mon Jun 11 08:01:49 2018 +0200 ---------------------------------------------------------------------- data/conf/llap/hive-site.xml | 2 +- .../java/org/apache/hadoop/hive/ql/Context.java | 5 + .../apache/hadoop/hive/ql/exec/Operator.java | 23 +- .../hadoop/hive/ql/exec/OperatorUtils.java | 4 +- .../hive/ql/exec/SerializationUtilities.java | 14 +- .../ql/hooks/NoOperatorReuseCheckerHook.java | 109 ++ .../ql/optimizer/physical/MemoryDecider.java | 12 +- .../ql/optimizer/physical/SerializeFilter.java | 6 +- .../ql/parse/ColumnStatsAutoGatherContext.java | 1 + .../hive/ql/parse/spark/SplitOpTreeForDPP.java | 7 +- .../hadoop/hive/ql/plan/MergeJoinWork.java | 7 +- .../ql/plan/mapping/TestCounterMapping.java | 8 +- .../hive/ql/plan/mapping/TestOperatorCmp.java | 16 +- .../results/clientpositive/auto_join0.q.out | 8 +- .../cbo_rp_cross_product_check_2.q.out | 4 +- .../clientpositive/cross_product_check_2.q.out | 4 +- .../llap/bucketizedhiveinputformat.q.out | 2 +- .../clientpositive/llap/constprog_dpp.q.out | 28 +- .../clientpositive/llap/dp_counter_mm.q.out | 172 +- .../clientpositive/llap/dp_counter_non_mm.q.out | 172 +- .../llap/dynamic_semijoin_user_level.q.out | 16 +- .../clientpositive/llap/explainanalyze_2.q.out | 672 +++---- .../clientpositive/llap/explainuser_1.q.out | 128 +- .../clientpositive/llap/explainuser_2.q.out | 1840 +++++++++--------- .../results/clientpositive/llap/lineage3.q.out | 9 +- .../llap/table_access_keys_stats.q.out | 2 +- .../llap/tez_input_counters.q.out | 14 +- .../clientpositive/llap/union_fast_stats.q.out | 624 +++--- .../test/results/clientpositive/mapjoin47.q.out | 4 +- .../clientpositive/perf/spark/query77.q.out | 2 +- .../clientpositive/perf/tez/query14.q.out | 746 +++---- .../clientpositive/perf/tez/query2.q.out | 52 +- .../clientpositive/perf/tez/query23.q.out | 196 +- .../clientpositive/perf/tez/query33.q.out | 106 +- .../clientpositive/perf/tez/query38.q.out | 106 +- .../clientpositive/perf/tez/query49.q.out | 154 +- .../clientpositive/perf/tez/query5.q.out | 140 +- .../clientpositive/perf/tez/query54.q.out | 160 +- .../clientpositive/perf/tez/query56.q.out | 106 +- .../clientpositive/perf/tez/query60.q.out | 106 +- .../clientpositive/perf/tez/query66.q.out | 96 +- .../clientpositive/perf/tez/query71.q.out | 86 +- .../clientpositive/perf/tez/query75.q.out | 236 +-- .../clientpositive/perf/tez/query76.q.out | 96 +- .../clientpositive/perf/tez/query77.q.out | 168 +- .../clientpositive/perf/tez/query8.q.out | 84 +- .../clientpositive/perf/tez/query80.q.out | 162 +- .../clientpositive/perf/tez/query87.q.out | 132 +- .../results/clientpositive/smb_mapjoin_25.q.out | 16 +- .../results/clientpositive/smb_mapjoin_47.q.out | 4 +- .../spark/spark_explainuser_1.q.out | 64 +- .../clientpositive/subquery_multiinsert.q.out | 12 +- .../clientpositive/tez/explainanalyze_1.q.out | 36 +- .../clientpositive/tez/explainanalyze_3.q.out | 16 +- .../clientpositive/tez/explainanalyze_5.q.out | 28 +- .../clientpositive/tez/explainuser_3.q.out | 12 +- .../clientpositive/vector_groupby_mapjoin.q.out | 8 +- 57 files changed, 3621 insertions(+), 3422 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/data/conf/llap/hive-site.xml ---------------------------------------------------------------------- diff --git a/data/conf/llap/hive-site.xml b/data/conf/llap/hive-site.xml index 1507a56..44ca6c9 100644 --- a/data/conf/llap/hive-site.xml +++ b/data/conf/llap/hive-site.xml @@ -163,7 +163,7 @@ <property> <name>hive.exec.post.hooks</name> - <value>org.apache.hadoop.hive.ql.hooks.PostExecutePrinter, org.apache.hadoop.hive.ql.hooks.RuntimeStatsPersistenceCheckerHook</value> + <value>org.apache.hadoop.hive.ql.hooks.PostExecutePrinter, org.apache.hadoop.hive.ql.hooks.RuntimeStatsPersistenceCheckerHook, org.apache.hadoop.hive.ql.hooks.NoOperatorReuseCheckerHook</value> <description>Post Execute Hook for Tests</description> </property> http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/java/org/apache/hadoop/hive/ql/Context.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Context.java b/ql/src/java/org/apache/hadoop/hive/ql/Context.java index 9eda4ed..e4e3d48 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/Context.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/Context.java @@ -1026,6 +1026,10 @@ public class Context { return opContext; } + public void setOpContext(CompilationOpContext opContext) { + this.opContext = opContext; + } + public Heartbeater getHeartbeater() { return heartbeater; } @@ -1124,4 +1128,5 @@ public class Context { public void setTempTableForLoad(Table tempTableForLoad) { this.tempTableForLoad = tempTableForLoad; } + } http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java index 4e9784d..acadb43 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java @@ -89,6 +89,7 @@ public abstract class Operator<T extends OperatorDesc> implements Serializable,C protected int indexForTezUnion = -1; private transient Configuration hconf; protected final transient Collection<Future<?>> asyncInitOperations = new HashSet<>(); + private String marker; protected int bucketingVersion = -1; // It can be optimized later so that an operator operator (init/close) is performed @@ -134,6 +135,7 @@ public abstract class Operator<T extends OperatorDesc> implements Serializable,C initOperatorId(); } + /** Kryo ctor. */ protected Operator() { childOperators = new ArrayList<Operator<? extends OperatorDesc>>(); parentOperators = new ArrayList<Operator<? extends OperatorDesc>>(); @@ -244,10 +246,6 @@ public abstract class Operator<T extends OperatorDesc> implements Serializable,C protected transient ObjectInspector outputObjInspector; - public void setId(String id) { - this.id = id; - } - /** * This function is not named getId(), to make sure java serialization does * NOT serialize it. Some TestParse tests will fail if we serialize this @@ -1167,12 +1165,16 @@ public abstract class Operator<T extends OperatorDesc> implements Serializable,C return operatorId; } - public void initOperatorId() { - setOperatorId(getName() + "_" + this.id); + public String getMarker() { + return marker; } - public void setOperatorId(String operatorId) { - this.operatorId = operatorId; + public void setMarker(String marker) { + this.marker = marker; + } + + public void initOperatorId() { + this.operatorId = getName() + "_" + this.id; } /* @@ -1539,7 +1541,12 @@ public abstract class Operator<T extends OperatorDesc> implements Serializable,C } public void setCompilationOpContext(CompilationOpContext ctx) { + if (cContext == ctx) { + return; + } cContext = ctx; + id = String.valueOf(ctx.nextOperatorId()); + initOperatorId(); } /** @return Compilation operator context. Only available during compilation. */ http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorUtils.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorUtils.java index 4634928..7b2ae40 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorUtils.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorUtils.java @@ -427,12 +427,12 @@ public class OperatorUtils { return matchingOps; } - public static Operator<?> findOperatorById(Operator<?> start, String opId) { + public static Operator<?> findOperatorByMarker(Operator<?> start, String marker) { Deque<Operator<?>> queue = new ArrayDeque<>(); queue.add(start); while (!queue.isEmpty()) { Operator<?> op = queue.remove(); - if (op.getOperatorId().equals(opId)) { + if (marker.equals(op.getMarker())) { return op; } if (op.getChildOperators() != null) { http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/java/org/apache/hadoop/hive/ql/exec/SerializationUtilities.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/SerializationUtilities.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/SerializationUtilities.java index 66f0a00..ed1566f 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/SerializationUtilities.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/SerializationUtilities.java @@ -17,8 +17,6 @@ */ package org.apache.hadoop.hive.ql.exec; -import java.util.LinkedList; - import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; @@ -30,8 +28,10 @@ import java.lang.reflect.Field; import java.net.URI; import java.sql.Timestamp; import java.time.ZoneId; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Properties; @@ -39,16 +39,14 @@ import java.util.Properties; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.tuple.Pair; import org.apache.hadoop.fs.Path; -import org.apache.hadoop.hive.common.type.TimestampTZ; import org.apache.hadoop.hive.common.CopyOnFirstWriteProperties; +import org.apache.hadoop.hive.common.type.TimestampTZ; import org.apache.hadoop.hive.ql.CompilationOpContext; import org.apache.hadoop.hive.ql.exec.vector.VectorFileSinkOperator; import org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat; import org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat; import org.apache.hadoop.hive.ql.io.RCFileInputFormat; import org.apache.hadoop.hive.ql.log.PerfLogger; -import org.apache.hadoop.hive.ql.metadata.Hive; -import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.plan.AbstractOperatorDesc; import org.apache.hadoop.hive.ql.plan.BaseWork; import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc; @@ -225,6 +223,7 @@ public class SerializationUtilities { private static final Object FAKE_REFERENCE = new Object(); private static KryoFactory factory = new KryoFactory() { + @Override public Kryo create() { KryoWithHooks kryo = new KryoWithHooks(); kryo.register(java.sql.Date.class, new SqlDateSerializer()); @@ -646,8 +645,11 @@ public class SerializationUtilities { * @return The clone. */ public static List<Operator<?>> cloneOperatorTree(List<Operator<?>> roots) { + if (roots.isEmpty()) { + return new ArrayList<>(); + } ByteArrayOutputStream baos = new ByteArrayOutputStream(4096); - CompilationOpContext ctx = roots.isEmpty() ? null : roots.get(0).getCompilationOpContext(); + CompilationOpContext ctx = roots.get(0).getCompilationOpContext(); serializePlan(roots, baos, true); @SuppressWarnings("unchecked") List<Operator<?>> result = http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/java/org/apache/hadoop/hive/ql/hooks/NoOperatorReuseCheckerHook.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/NoOperatorReuseCheckerHook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/NoOperatorReuseCheckerHook.java new file mode 100644 index 0000000..3fc5429 --- /dev/null +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/NoOperatorReuseCheckerHook.java @@ -0,0 +1,109 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.hive.ql.hooks; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Stack; + +import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists; +import org.apache.hadoop.hive.ql.exec.Operator; +import org.apache.hadoop.hive.ql.exec.Task; +import org.apache.hadoop.hive.ql.lib.DefaultGraphWalker; +import org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher; +import org.apache.hadoop.hive.ql.lib.Dispatcher; +import org.apache.hadoop.hive.ql.lib.GraphWalker; +import org.apache.hadoop.hive.ql.lib.Node; +import org.apache.hadoop.hive.ql.lib.NodeProcessor; +import org.apache.hadoop.hive.ql.lib.NodeProcessorCtx; +import org.apache.hadoop.hive.ql.parse.SemanticException; +import org.apache.hadoop.hive.ql.plan.BaseWork; +import org.apache.hadoop.hive.ql.plan.MapWork; +import org.apache.hadoop.hive.ql.plan.MapredWork; +import org.apache.hadoop.hive.ql.plan.ReduceWork; +import org.apache.hadoop.hive.ql.plan.TezWork; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Checks whenever operator ids are not reused. + */ +public class NoOperatorReuseCheckerHook implements ExecuteWithHookContext { + + private static final Logger LOG = LoggerFactory.getLogger(NoOperatorReuseCheckerHook.class); + + static class UniqueOpIdChecker implements NodeProcessor { + + Map<String, Operator<?>> opMap = new HashMap<>(); + + @Override + public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, Object... nodeOutputs) + throws SemanticException { + Operator op = (Operator) nd; + String opKey = op.getOperatorId(); + Operator<?> found = opMap.get(opKey); + if (found != null) { + throw new RuntimeException("operator id reuse found: " + opKey); + } + opMap.put(opKey, op); + return null; + } + } + + @Override + public void run(HookContext hookContext) throws Exception { + + List<Node> rootOps = Lists.newArrayList(); + + ArrayList<Task<? extends Serializable>> roots = hookContext.getQueryPlan().getRootTasks(); + for (Task<? extends Serializable> task : roots) { + + Object work = task.getWork(); + if (work instanceof MapredWork) { + MapredWork mapredWork = (MapredWork) work; + MapWork mapWork = mapredWork.getMapWork(); + if (mapWork != null) { + rootOps.addAll(mapWork.getAllRootOperators()); + } + ReduceWork reduceWork = mapredWork.getReduceWork(); + if (reduceWork != null) { + rootOps.addAll(reduceWork.getAllRootOperators()); + } + } + if (work instanceof TezWork) { + for (BaseWork bw : ((TezWork) work).getAllWorkUnsorted()) { + rootOps.addAll(bw.getAllRootOperators()); + } + } + } + if (rootOps.isEmpty()) { + return; + } + + Dispatcher disp = new DefaultRuleDispatcher(new UniqueOpIdChecker(), new HashMap<>(), null); + GraphWalker ogw = new DefaultGraphWalker(disp); + + HashMap<Node, Object> nodeOutput = new HashMap<Node, Object>(); + ogw.startWalking(rootOps, nodeOutput); + + } +} http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/MemoryDecider.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/MemoryDecider.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/MemoryDecider.java index bf7a644..64f1e7b 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/MemoryDecider.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/MemoryDecider.java @@ -20,21 +20,19 @@ package org.apache.hadoop.hive.ql.optimizer.physical; import java.io.Serializable; import java.util.ArrayList; import java.util.Comparator; -import java.util.Iterator; import java.util.HashMap; -import java.util.Map; +import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; +import java.util.Map; import java.util.Set; import java.util.SortedSet; import java.util.Stack; import java.util.TreeSet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.apache.hadoop.hive.conf.HiveConf; -import org.apache.hadoop.hive.ql.exec.StatsTask; import org.apache.hadoop.hive.ql.exec.MapJoinOperator; +import org.apache.hadoop.hive.ql.exec.StatsTask; import org.apache.hadoop.hive.ql.exec.Task; import org.apache.hadoop.hive.ql.exec.tez.TezTask; import org.apache.hadoop.hive.ql.lib.DefaultGraphWalker; @@ -54,6 +52,8 @@ import org.apache.hadoop.hive.ql.plan.MapWork; import org.apache.hadoop.hive.ql.plan.MergeJoinWork; import org.apache.hadoop.hive.ql.plan.ReduceWork; import org.apache.hadoop.hive.ql.plan.TezWork; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * MemoryDecider is a simple physical optimizer that adjusts the memory layout of tez tasks. @@ -129,7 +129,7 @@ public class MemoryDecider implements PhysicalPlanResolver { Dispatcher disp = null; final Set<MapJoinOperator> mapJoins = new LinkedHashSet<MapJoinOperator>(); - Map<Rule, NodeProcessor> rules = new HashMap<Rule, NodeProcessor>(); + LinkedHashMap<Rule, NodeProcessor> rules = new LinkedHashMap<Rule, NodeProcessor>(); rules.put(new RuleRegExp("Map join memory estimator", MapJoinOperator.getOperatorName() + "%"), new NodeProcessor() { @Override http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SerializeFilter.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SerializeFilter.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SerializeFilter.java index 6a0ca5d..9224350 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SerializeFilter.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SerializeFilter.java @@ -19,15 +19,13 @@ package org.apache.hadoop.hive.ql.optimizer.physical; import java.io.Serializable; import java.util.ArrayList; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedHashSet; -import java.util.Map; import java.util.Set; import java.util.Stack; -import org.apache.hadoop.hive.ql.exec.StatsTask; import org.apache.hadoop.hive.ql.exec.SerializationUtilities; +import org.apache.hadoop.hive.ql.exec.StatsTask; import org.apache.hadoop.hive.ql.exec.TableScanOperator; import org.apache.hadoop.hive.ql.exec.Task; import org.apache.hadoop.hive.ql.exec.tez.TezTask; @@ -115,7 +113,7 @@ public class SerializeFilter implements PhysicalPlanResolver { Dispatcher disp = null; final Set<TableScanOperator> tableScans = new LinkedHashSet<TableScanOperator>(); - Map<Rule, NodeProcessor> rules = new HashMap<Rule, NodeProcessor>(); + LinkedHashMap<Rule, NodeProcessor> rules = new LinkedHashMap<Rule, NodeProcessor>(); rules.put(new RuleRegExp("TS finder", TableScanOperator.getOperatorName() + "%"), new NodeProcessor() { @Override http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsAutoGatherContext.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsAutoGatherContext.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsAutoGatherContext.java index fe26283..de0282f 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsAutoGatherContext.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsAutoGatherContext.java @@ -127,6 +127,7 @@ public class ColumnStatsAutoGatherContext { private Operator genSelOpForAnalyze(String analyzeCommand, Context origCtx) throws IOException, ParseException, SemanticException{ //0. initialization Context ctx = new Context(conf); + ctx.setOpContext(origCtx.getOpContext()); ctx.setExplainConfig(origCtx.getExplainConfig()); ASTNode tree = ParseUtils.parse(analyzeCommand, ctx); http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SplitOpTreeForDPP.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SplitOpTreeForDPP.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SplitOpTreeForDPP.java index b0d7eec..b9c2c1c 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SplitOpTreeForDPP.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SplitOpTreeForDPP.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.Set; import java.util.Stack; -import com.google.common.base.Preconditions; import org.apache.hadoop.hive.ql.exec.Operator; import org.apache.hadoop.hive.ql.exec.OperatorUtils; import org.apache.hadoop.hive.ql.exec.SerializationUtilities; @@ -37,6 +36,8 @@ import org.apache.hadoop.hive.ql.lib.NodeProcessor; import org.apache.hadoop.hive.ql.lib.NodeProcessorCtx; import org.apache.hadoop.hive.ql.parse.SemanticException; +import com.google.common.base.Preconditions; + /** * This processor triggers on SparkPartitionPruningSinkOperator. For a operator tree like @@ -100,6 +101,8 @@ public class SplitOpTreeForDPP implements NodeProcessor { collectRoots(roots, pruningSinkOp); Operator<?> branchingOp = pruningSinkOp.getBranchingOp(); + String marker = "SPARK_DPP_BRANCH_POINT_" + branchingOp.getOperatorId(); + branchingOp.setMarker(marker); List<Operator<?>> savedChildOps = branchingOp.getChildOperators(); List<Operator<?>> firstNodesOfPruningBranch = findFirstNodesOfPruningBranch(branchingOp); branchingOp.setChildOperators(null); @@ -115,7 +118,7 @@ public class SplitOpTreeForDPP implements NodeProcessor { Operator newBranchingOp = null; for (int i = 0; i < newRoots.size() && newBranchingOp == null; i++) { - newBranchingOp = OperatorUtils.findOperatorById(newRoots.get(i), branchingOp.getOperatorId()); + newBranchingOp = OperatorUtils.findOperatorByMarker(newRoots.get(i), marker); } Preconditions.checkNotNull(newBranchingOp, "Cannot find the branching operator in cloned tree."); http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/java/org/apache/hadoop/hive/ql/plan/MergeJoinWork.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/MergeJoinWork.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/MergeJoinWork.java index 24ce898..45f3347 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/plan/MergeJoinWork.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/MergeJoinWork.java @@ -19,7 +19,7 @@ package org.apache.hadoop.hive.ql.plan; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -49,7 +49,7 @@ public class MergeJoinWork extends BaseWork { @Override public Set<Operator<?>> getAllRootOperators() { - Set<Operator<?>> set = new HashSet<>(); + Set<Operator<?>> set = new LinkedHashSet<>(); set.addAll(getMainWork().getAllRootOperators()); for (BaseWork w : mergeWorkList) { set.addAll(w.getAllRootOperators()); @@ -92,7 +92,7 @@ public class MergeJoinWork extends BaseWork { * output name in the reduce sink needs to be setup appropriately. In the case of reduce * side merge work, we need to ensure that the parent work that provides data to this merge * work is setup to point to the right vertex name - the main work name. - * + * * In this case, if the big table work has already been created, we can hook up the merge * work items for the small table correctly. */ @@ -176,6 +176,7 @@ public class MergeJoinWork extends BaseWork { return getMainWork().getLlapMode(); } + @Override public void addDummyOp(HashTableDummyOperator dummyOp) { getMainWork().addDummyOp(dummyOp); } http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestCounterMapping.java ---------------------------------------------------------------------- diff --git a/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestCounterMapping.java b/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestCounterMapping.java index e8a7a1b..b57b5dd 100644 --- a/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestCounterMapping.java +++ b/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestCounterMapping.java @@ -62,7 +62,13 @@ public class TestCounterMapping { @Override public int compare(Operator<?> o1, Operator<?> o2) { - return Objects.compare(o1.getOperatorId(), o2.getOperatorId(), Comparator.naturalOrder()); + Long id1 = Long.valueOf(o1.getIdentifier()); + Long id2 = Long.valueOf(o2.getIdentifier()); + int c0 = Objects.compare(o1.getOperatorName(), o2.getOperatorName(), Comparator.naturalOrder()); + if (c0 != 0) { + return c0; + } + return Long.compare(id1, id2); } }; http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestOperatorCmp.java ---------------------------------------------------------------------- diff --git a/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestOperatorCmp.java b/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestOperatorCmp.java index 3e3e0b0..87d06ae 100644 --- a/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestOperatorCmp.java +++ b/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestOperatorCmp.java @@ -21,7 +21,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import java.util.Iterator; import java.util.List; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.conf.HiveConf.ConfVars; @@ -35,7 +34,6 @@ import org.apache.hadoop.hive.ql.exec.TableScanOperator; import org.apache.hadoop.hive.ql.optimizer.signature.TestOperatorSignature; import org.apache.hadoop.hive.ql.parse.ParseException; import org.apache.hadoop.hive.ql.plan.mapper.PlanMapper; -import org.apache.hadoop.hive.ql.plan.mapper.PlanMapper.EquivGroup; import org.apache.hadoop.hive.ql.session.SessionState; import org.apache.hadoop.hive.ql.stats.OperatorStatsReaderHook; import org.apache.hive.testutils.HiveTestEnvSetup; @@ -102,15 +100,19 @@ public class TestOperatorCmp { String query = "select u from tu where id_uv = 1 union all select v from tv where id_uv = 1"; PlanMapper pm = getMapperForQuery(driver, query); - Iterator<EquivGroup> itG = pm.iterateGroups(); List<FilterOperator> fos = pm.getAll(FilterOperator.class); // the same operator is present 2 times - fos.sort(TestCounterMapping.OPERATOR_ID_COMPARATOR.reversed()); assertEquals(4, fos.size()); - assertTrue("logicalEquals", compareOperators(fos.get(0), fos.get(1))); - assertFalse("logicalEquals", compareOperators(fos.get(0), fos.get(2))); - assertTrue("logicalEquals", compareOperators(fos.get(2), fos.get(3))); + int cnt = 0; + for (int i = 0; i < 3; i++) { + for (int j = i + 1; j < 4; j++) { + if (compareOperators(fos.get(i), fos.get(j))) { + cnt++; + } + } + } + assertEquals(2, cnt); } http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/test/results/clientpositive/auto_join0.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/auto_join0.q.out b/ql/src/test/results/clientpositive/auto_join0.q.out index da036b7..17fc2fd 100644 --- a/ql/src/test/results/clientpositive/auto_join0.q.out +++ b/ql/src/test/results/clientpositive/auto_join0.q.out @@ -1,5 +1,5 @@ -Warning: Map Join MAPJOIN[28][bigTable=?] in task 'Stage-5:MAPRED' is a cross product -Warning: Map Join MAPJOIN[29][bigTable=?] in task 'Stage-6:MAPRED' is a cross product +Warning: Map Join MAPJOIN[35][bigTable=?] in task 'Stage-5:MAPRED' is a cross product +Warning: Map Join MAPJOIN[43][bigTable=?] in task 'Stage-6:MAPRED' is a cross product Warning: Shuffle Join JOIN[12][tables = [src1, src2]] in Stage 'Stage-2:MAPRED' is a cross product PREHOOK: query: explain select sum(hash(a.k1,a.v1,a.k2, a.v2)) @@ -244,8 +244,8 @@ STAGE PLANS: Processor Tree: ListSink -Warning: Map Join MAPJOIN[28][bigTable=?] in task 'Stage-5:MAPRED' is a cross product -Warning: Map Join MAPJOIN[29][bigTable=?] in task 'Stage-6:MAPRED' is a cross product +Warning: Map Join MAPJOIN[35][bigTable=?] in task 'Stage-5:MAPRED' is a cross product +Warning: Map Join MAPJOIN[43][bigTable=?] in task 'Stage-6:MAPRED' is a cross product Warning: Shuffle Join JOIN[12][tables = [src1, src2]] in Stage 'Stage-2:MAPRED' is a cross product PREHOOK: query: select sum(hash(a.k1,a.v1,a.k2, a.v2)) from ( http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/test/results/clientpositive/cbo_rp_cross_product_check_2.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/cbo_rp_cross_product_check_2.q.out b/ql/src/test/results/clientpositive/cbo_rp_cross_product_check_2.q.out index 390a679..10a8ae1 100644 --- a/ql/src/test/results/clientpositive/cbo_rp_cross_product_check_2.q.out +++ b/ql/src/test/results/clientpositive/cbo_rp_cross_product_check_2.q.out @@ -460,8 +460,8 @@ STAGE PLANS: Processor Tree: ListSink -Warning: Map Join MAPJOIN[31][bigTable=?] in task 'Stage-7:MAPRED' is a cross product -Warning: Map Join MAPJOIN[30][bigTable=?] in task 'Stage-6:MAPRED' is a cross product +Warning: Map Join MAPJOIN[43][bigTable=?] in task 'Stage-7:MAPRED' is a cross product +Warning: Map Join MAPJOIN[36][bigTable=?] in task 'Stage-6:MAPRED' is a cross product Warning: Shuffle Join JOIN[20][tables = [, ]] in Stage 'Stage-2:MAPRED' is a cross product PREHOOK: query: explain select * from (select A_n18.key from A_n18 group by key) ss join http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/test/results/clientpositive/cross_product_check_2.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/cross_product_check_2.q.out b/ql/src/test/results/clientpositive/cross_product_check_2.q.out index 2c62cf0..6143431 100644 --- a/ql/src/test/results/clientpositive/cross_product_check_2.q.out +++ b/ql/src/test/results/clientpositive/cross_product_check_2.q.out @@ -452,8 +452,8 @@ STAGE PLANS: Processor Tree: ListSink -Warning: Map Join MAPJOIN[34][bigTable=?] in task 'Stage-7:MAPRED' is a cross product -Warning: Map Join MAPJOIN[33][bigTable=?] in task 'Stage-6:MAPRED' is a cross product +Warning: Map Join MAPJOIN[46][bigTable=?] in task 'Stage-7:MAPRED' is a cross product +Warning: Map Join MAPJOIN[39][bigTable=?] in task 'Stage-6:MAPRED' is a cross product Warning: Shuffle Join JOIN[22][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-2:MAPRED' is a cross product PREHOOK: query: explain select * from (select A_n2.key from A_n2 group by key) ss join http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/test/results/clientpositive/llap/bucketizedhiveinputformat.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/llap/bucketizedhiveinputformat.q.out b/ql/src/test/results/clientpositive/llap/bucketizedhiveinputformat.q.out index 37a9675..d87e3a3 100644 --- a/ql/src/test/results/clientpositive/llap/bucketizedhiveinputformat.q.out +++ b/ql/src/test/results/clientpositive/llap/bucketizedhiveinputformat.q.out @@ -22,7 +22,7 @@ POSTHOOK: query: CREATE TABLE T2_n74(name STRING) STORED AS SEQUENCEFILE POSTHOOK: type: CREATETABLE POSTHOOK: Output: database:default POSTHOOK: Output: default@T2_n74 -Warning: Shuffle Join MERGEJOIN[16][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 2' is a cross product +Warning: Shuffle Join MERGEJOIN[23][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 2' is a cross product PREHOOK: query: INSERT OVERWRITE TABLE T2_n74 SELECT * FROM ( SELECT tmp1.name as name FROM ( SELECT name, 'MMM' AS n FROM T1_n125) tmp1 http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/test/results/clientpositive/llap/constprog_dpp.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/llap/constprog_dpp.q.out b/ql/src/test/results/clientpositive/llap/constprog_dpp.q.out index 4e9038d..aaa4ecc 100644 --- a/ql/src/test/results/clientpositive/llap/constprog_dpp.q.out +++ b/ql/src/test/results/clientpositive/llap/constprog_dpp.q.out @@ -53,35 +53,35 @@ Stage-0 Reducer 2 llap File Output Operator [FS_17] Merge Join Operator [MERGEJOIN_21] (rows=1 width=4) - Conds:RS_23._col0=RS_26._col0(Left Outer),Output:["_col0"] + Conds:RS_33._col0=RS_36._col0(Left Outer),Output:["_col0"] <-Map 1 [SIMPLE_EDGE] vectorized, llap - SHUFFLE [RS_23] + SHUFFLE [RS_33] PartitionCols:_col0 - Select Operator [SEL_22] (rows=1 width=4) + Select Operator [SEL_32] (rows=1 width=4) Output:["_col0"] TableScan [TS_0] (rows=1 width=4) default@tb1,a,Tbl:COMPLETE,Col:NONE,Output:["id"] <-Reducer 5 [SIMPLE_EDGE] vectorized, llap - SHUFFLE [RS_26] + SHUFFLE [RS_36] PartitionCols:_col0 - Limit [LIM_25] (rows=1 width=2) + Limit [LIM_35] (rows=1 width=2) Number of rows:1 - Select Operator [SEL_24] (rows=1 width=2) + Select Operator [SEL_34] (rows=1 width=2) Output:["_col0"] <-Union 4 [CUSTOM_SIMPLE_EDGE] <-Map 3 [CONTAINS] vectorized, llap - Reduce Output Operator [RS_29] - Limit [LIM_28] (rows=1 width=2) + Reduce Output Operator [RS_39] + Limit [LIM_38] (rows=1 width=2) Number of rows:1 - Select Operator [SEL_27] (rows=1 width=4) + Select Operator [SEL_37] (rows=1 width=4) Output:["_col0"] - TableScan [TS_2] (rows=1 width=4) + TableScan [TS_22] (rows=1 width=4) Output:["id"] <-Map 6 [CONTAINS] vectorized, llap - Reduce Output Operator [RS_32] - Limit [LIM_31] (rows=1 width=2) + Reduce Output Operator [RS_42] + Limit [LIM_41] (rows=1 width=2) Number of rows:1 - Select Operator [SEL_30] (rows=1 width=0) + Select Operator [SEL_40] (rows=1 width=0) Output:["_col0"] - TableScan [TS_4] (rows=1 width=0) + TableScan [TS_27] (rows=1 width=0) http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/test/results/clientpositive/llap/dp_counter_mm.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/llap/dp_counter_mm.q.out b/ql/src/test/results/clientpositive/llap/dp_counter_mm.q.out index 25dc0c9..4ca60ba 100644 --- a/ql/src/test/results/clientpositive/llap/dp_counter_mm.q.out +++ b/ql/src/test/results/clientpositive/llap/dp_counter_mm.q.out @@ -24,16 +24,16 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_1_default.src2_n5: 84 RECORDS_OUT_INTERMEDIATE_Map_1: 57 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 - RECORDS_OUT_OPERATOR_FIL_5: 84 + RECORDS_OUT_OPERATOR_FIL_12: 84 + RECORDS_OUT_OPERATOR_FS_11: 57 RECORDS_OUT_OPERATOR_FS_4: 84 - RECORDS_OUT_OPERATOR_FS_6: 57 - RECORDS_OUT_OPERATOR_GBY_2: 57 - RECORDS_OUT_OPERATOR_GBY_4: 57 + RECORDS_OUT_OPERATOR_GBY_7: 57 + RECORDS_OUT_OPERATOR_GBY_9: 57 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 57 - RECORDS_OUT_OPERATOR_SEL_1: 84 + RECORDS_OUT_OPERATOR_RS_8: 57 + RECORDS_OUT_OPERATOR_SEL_10: 57 RECORDS_OUT_OPERATOR_SEL_2: 84 - RECORDS_OUT_OPERATOR_SEL_5: 57 + RECORDS_OUT_OPERATOR_SEL_6: 84 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 84 Stage-1 INPUT COUNTERS: @@ -55,16 +55,16 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_1_default.src2_n5: 189 RECORDS_OUT_INTERMEDIATE_Map_1: 121 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 - RECORDS_OUT_OPERATOR_FIL_5: 189 + RECORDS_OUT_OPERATOR_FIL_12: 189 + RECORDS_OUT_OPERATOR_FS_11: 121 RECORDS_OUT_OPERATOR_FS_4: 189 - RECORDS_OUT_OPERATOR_FS_6: 121 - RECORDS_OUT_OPERATOR_GBY_2: 121 - RECORDS_OUT_OPERATOR_GBY_4: 121 + RECORDS_OUT_OPERATOR_GBY_7: 121 + RECORDS_OUT_OPERATOR_GBY_9: 121 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 121 - RECORDS_OUT_OPERATOR_SEL_1: 189 + RECORDS_OUT_OPERATOR_RS_8: 121 + RECORDS_OUT_OPERATOR_SEL_10: 121 RECORDS_OUT_OPERATOR_SEL_2: 189 - RECORDS_OUT_OPERATOR_SEL_5: 121 + RECORDS_OUT_OPERATOR_SEL_6: 189 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 189 Stage-1 INPUT COUNTERS: @@ -94,16 +94,16 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_1_default.src2_n5: 189 RECORDS_OUT_INTERMEDIATE_Map_1: 121 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 - RECORDS_OUT_OPERATOR_FIL_5: 189 + RECORDS_OUT_OPERATOR_FIL_12: 189 + RECORDS_OUT_OPERATOR_FS_11: 121 RECORDS_OUT_OPERATOR_FS_4: 189 - RECORDS_OUT_OPERATOR_FS_6: 121 - RECORDS_OUT_OPERATOR_GBY_2: 121 - RECORDS_OUT_OPERATOR_GBY_4: 121 + RECORDS_OUT_OPERATOR_GBY_7: 121 + RECORDS_OUT_OPERATOR_GBY_9: 121 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 121 - RECORDS_OUT_OPERATOR_SEL_1: 189 + RECORDS_OUT_OPERATOR_RS_8: 121 + RECORDS_OUT_OPERATOR_SEL_10: 121 RECORDS_OUT_OPERATOR_SEL_2: 189 - RECORDS_OUT_OPERATOR_SEL_5: 121 + RECORDS_OUT_OPERATOR_SEL_6: 189 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 189 Stage-1 INPUT COUNTERS: @@ -125,16 +125,16 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_1_default.src2_n5: 292 RECORDS_OUT_INTERMEDIATE_Map_1: 184 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 - RECORDS_OUT_OPERATOR_FIL_5: 292 + RECORDS_OUT_OPERATOR_FIL_12: 292 + RECORDS_OUT_OPERATOR_FS_11: 184 RECORDS_OUT_OPERATOR_FS_4: 292 - RECORDS_OUT_OPERATOR_FS_6: 184 - RECORDS_OUT_OPERATOR_GBY_2: 184 - RECORDS_OUT_OPERATOR_GBY_4: 184 + RECORDS_OUT_OPERATOR_GBY_7: 184 + RECORDS_OUT_OPERATOR_GBY_9: 184 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 184 - RECORDS_OUT_OPERATOR_SEL_1: 292 + RECORDS_OUT_OPERATOR_RS_8: 184 + RECORDS_OUT_OPERATOR_SEL_10: 184 RECORDS_OUT_OPERATOR_SEL_2: 292 - RECORDS_OUT_OPERATOR_SEL_5: 184 + RECORDS_OUT_OPERATOR_SEL_6: 292 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 292 Stage-1 INPUT COUNTERS: @@ -175,19 +175,25 @@ Stage-2 HIVE COUNTERS: RECORDS_OUT_INTERMEDIATE_Map_1: 121 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 RECORDS_OUT_INTERMEDIATE_Reducer_3: 0 - RECORDS_OUT_OPERATOR_FIL_10: 105 - RECORDS_OUT_OPERATOR_FIL_9: 84 + RECORDS_OUT_OPERATOR_FIL_23: 84 + RECORDS_OUT_OPERATOR_FIL_24: 105 + RECORDS_OUT_OPERATOR_FS_11: 57 + RECORDS_OUT_OPERATOR_FS_15: 105 + RECORDS_OUT_OPERATOR_FS_22: 64 RECORDS_OUT_OPERATOR_FS_4: 84 - RECORDS_OUT_OPERATOR_FS_6: 121 - RECORDS_OUT_OPERATOR_FS_8: 105 - RECORDS_OUT_OPERATOR_GBY_2: 121 - RECORDS_OUT_OPERATOR_GBY_4: 121 + RECORDS_OUT_OPERATOR_GBY_18: 64 + RECORDS_OUT_OPERATOR_GBY_20: 64 + RECORDS_OUT_OPERATOR_GBY_7: 57 + RECORDS_OUT_OPERATOR_GBY_9: 57 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 121 - RECORDS_OUT_OPERATOR_SEL_1: 189 + RECORDS_OUT_OPERATOR_RS_19: 64 + RECORDS_OUT_OPERATOR_RS_8: 57 + RECORDS_OUT_OPERATOR_SEL_10: 57 + RECORDS_OUT_OPERATOR_SEL_13: 105 + RECORDS_OUT_OPERATOR_SEL_17: 105 RECORDS_OUT_OPERATOR_SEL_2: 84 - RECORDS_OUT_OPERATOR_SEL_5: 121 - RECORDS_OUT_OPERATOR_SEL_6: 105 + RECORDS_OUT_OPERATOR_SEL_21: 64 + RECORDS_OUT_OPERATOR_SEL_6: 84 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 189 Stage-2 INPUT COUNTERS: @@ -214,19 +220,25 @@ Stage-2 HIVE COUNTERS: RECORDS_OUT_INTERMEDIATE_Map_1: 184 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 RECORDS_OUT_INTERMEDIATE_Reducer_3: 0 - RECORDS_OUT_OPERATOR_FIL_10: 208 - RECORDS_OUT_OPERATOR_FIL_9: 84 + RECORDS_OUT_OPERATOR_FIL_23: 84 + RECORDS_OUT_OPERATOR_FIL_24: 208 + RECORDS_OUT_OPERATOR_FS_11: 57 + RECORDS_OUT_OPERATOR_FS_15: 208 + RECORDS_OUT_OPERATOR_FS_22: 127 RECORDS_OUT_OPERATOR_FS_4: 84 - RECORDS_OUT_OPERATOR_FS_6: 184 - RECORDS_OUT_OPERATOR_FS_8: 208 - RECORDS_OUT_OPERATOR_GBY_2: 184 - RECORDS_OUT_OPERATOR_GBY_4: 184 + RECORDS_OUT_OPERATOR_GBY_18: 127 + RECORDS_OUT_OPERATOR_GBY_20: 127 + RECORDS_OUT_OPERATOR_GBY_7: 57 + RECORDS_OUT_OPERATOR_GBY_9: 57 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 184 - RECORDS_OUT_OPERATOR_SEL_1: 292 + RECORDS_OUT_OPERATOR_RS_19: 127 + RECORDS_OUT_OPERATOR_RS_8: 57 + RECORDS_OUT_OPERATOR_SEL_10: 57 + RECORDS_OUT_OPERATOR_SEL_13: 208 + RECORDS_OUT_OPERATOR_SEL_17: 208 RECORDS_OUT_OPERATOR_SEL_2: 84 - RECORDS_OUT_OPERATOR_SEL_5: 184 - RECORDS_OUT_OPERATOR_SEL_6: 208 + RECORDS_OUT_OPERATOR_SEL_21: 127 + RECORDS_OUT_OPERATOR_SEL_6: 84 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 292 Stage-2 INPUT COUNTERS: @@ -262,20 +274,26 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_INTERMEDIATE_Map_1: 57 RECORDS_OUT_INTERMEDIATE_Map_4: 64 RECORDS_OUT_INTERMEDIATE_Reducer_3: 0 - RECORDS_OUT_OPERATOR_FIL_10: 84 - RECORDS_OUT_OPERATOR_FIL_11: 105 - RECORDS_OUT_OPERATOR_FS_6: 121 - RECORDS_OUT_OPERATOR_FS_9: 189 - RECORDS_OUT_OPERATOR_GBY_2: 121 - RECORDS_OUT_OPERATOR_GBY_4: 121 + RECORDS_OUT_OPERATOR_FIL_20: 84 + RECORDS_OUT_OPERATOR_FIL_29: 105 + RECORDS_OUT_OPERATOR_FS_16: 121 + RECORDS_OUT_OPERATOR_FS_24: 84 + RECORDS_OUT_OPERATOR_FS_33: 105 + RECORDS_OUT_OPERATOR_GBY_14: 121 + RECORDS_OUT_OPERATOR_GBY_26: 57 + RECORDS_OUT_OPERATOR_GBY_35: 64 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 121 - RECORDS_OUT_OPERATOR_SEL_1: 189 - RECORDS_OUT_OPERATOR_SEL_2: 84 - RECORDS_OUT_OPERATOR_SEL_5: 226 - RECORDS_OUT_OPERATOR_SEL_7: 189 - RECORDS_OUT_OPERATOR_TS_0: 500 - RECORDS_OUT_OPERATOR_TS_3: 500 + RECORDS_OUT_OPERATOR_RS_27: 57 + RECORDS_OUT_OPERATOR_RS_36: 64 + RECORDS_OUT_OPERATOR_SEL_15: 121 + RECORDS_OUT_OPERATOR_SEL_21: 84 + RECORDS_OUT_OPERATOR_SEL_23: 84 + RECORDS_OUT_OPERATOR_SEL_25: 84 + RECORDS_OUT_OPERATOR_SEL_30: 105 + RECORDS_OUT_OPERATOR_SEL_32: 105 + RECORDS_OUT_OPERATOR_SEL_34: 105 + RECORDS_OUT_OPERATOR_TS_19: 500 + RECORDS_OUT_OPERATOR_TS_28: 500 TOTAL_TABLE_ROWS_WRITTEN: 189 Stage-1 INPUT COUNTERS: GROUPED_INPUT_SPLITS_Map_1: 1 @@ -306,20 +324,26 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_INTERMEDIATE_Map_1: 57 RECORDS_OUT_INTERMEDIATE_Map_4: 127 RECORDS_OUT_INTERMEDIATE_Reducer_3: 0 - RECORDS_OUT_OPERATOR_FIL_10: 84 - RECORDS_OUT_OPERATOR_FIL_11: 208 - RECORDS_OUT_OPERATOR_FS_6: 184 - RECORDS_OUT_OPERATOR_FS_9: 292 - RECORDS_OUT_OPERATOR_GBY_2: 184 - RECORDS_OUT_OPERATOR_GBY_4: 184 + RECORDS_OUT_OPERATOR_FIL_20: 84 + RECORDS_OUT_OPERATOR_FIL_29: 208 + RECORDS_OUT_OPERATOR_FS_16: 184 + RECORDS_OUT_OPERATOR_FS_24: 84 + RECORDS_OUT_OPERATOR_FS_33: 208 + RECORDS_OUT_OPERATOR_GBY_14: 184 + RECORDS_OUT_OPERATOR_GBY_26: 57 + RECORDS_OUT_OPERATOR_GBY_35: 127 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 184 - RECORDS_OUT_OPERATOR_SEL_1: 292 - RECORDS_OUT_OPERATOR_SEL_2: 84 - RECORDS_OUT_OPERATOR_SEL_5: 392 - RECORDS_OUT_OPERATOR_SEL_7: 292 - RECORDS_OUT_OPERATOR_TS_0: 500 - RECORDS_OUT_OPERATOR_TS_3: 500 + RECORDS_OUT_OPERATOR_RS_27: 57 + RECORDS_OUT_OPERATOR_RS_36: 127 + RECORDS_OUT_OPERATOR_SEL_15: 184 + RECORDS_OUT_OPERATOR_SEL_21: 84 + RECORDS_OUT_OPERATOR_SEL_23: 84 + RECORDS_OUT_OPERATOR_SEL_25: 84 + RECORDS_OUT_OPERATOR_SEL_30: 208 + RECORDS_OUT_OPERATOR_SEL_32: 208 + RECORDS_OUT_OPERATOR_SEL_34: 208 + RECORDS_OUT_OPERATOR_TS_19: 500 + RECORDS_OUT_OPERATOR_TS_28: 500 TOTAL_TABLE_ROWS_WRITTEN: 292 Stage-1 INPUT COUNTERS: GROUPED_INPUT_SPLITS_Map_1: 1 http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/test/results/clientpositive/llap/dp_counter_non_mm.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/llap/dp_counter_non_mm.q.out b/ql/src/test/results/clientpositive/llap/dp_counter_non_mm.q.out index bbe4044..101b343 100644 --- a/ql/src/test/results/clientpositive/llap/dp_counter_non_mm.q.out +++ b/ql/src/test/results/clientpositive/llap/dp_counter_non_mm.q.out @@ -24,16 +24,16 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_1_default.src2_n3: 84 RECORDS_OUT_INTERMEDIATE_Map_1: 57 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 - RECORDS_OUT_OPERATOR_FIL_5: 84 + RECORDS_OUT_OPERATOR_FIL_12: 84 + RECORDS_OUT_OPERATOR_FS_11: 57 RECORDS_OUT_OPERATOR_FS_4: 84 - RECORDS_OUT_OPERATOR_FS_6: 57 - RECORDS_OUT_OPERATOR_GBY_2: 57 - RECORDS_OUT_OPERATOR_GBY_4: 57 + RECORDS_OUT_OPERATOR_GBY_7: 57 + RECORDS_OUT_OPERATOR_GBY_9: 57 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 57 - RECORDS_OUT_OPERATOR_SEL_1: 84 + RECORDS_OUT_OPERATOR_RS_8: 57 + RECORDS_OUT_OPERATOR_SEL_10: 57 RECORDS_OUT_OPERATOR_SEL_2: 84 - RECORDS_OUT_OPERATOR_SEL_5: 57 + RECORDS_OUT_OPERATOR_SEL_6: 84 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 84 Stage-1 INPUT COUNTERS: @@ -55,16 +55,16 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_1_default.src2_n3: 189 RECORDS_OUT_INTERMEDIATE_Map_1: 121 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 - RECORDS_OUT_OPERATOR_FIL_5: 189 + RECORDS_OUT_OPERATOR_FIL_12: 189 + RECORDS_OUT_OPERATOR_FS_11: 121 RECORDS_OUT_OPERATOR_FS_4: 189 - RECORDS_OUT_OPERATOR_FS_6: 121 - RECORDS_OUT_OPERATOR_GBY_2: 121 - RECORDS_OUT_OPERATOR_GBY_4: 121 + RECORDS_OUT_OPERATOR_GBY_7: 121 + RECORDS_OUT_OPERATOR_GBY_9: 121 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 121 - RECORDS_OUT_OPERATOR_SEL_1: 189 + RECORDS_OUT_OPERATOR_RS_8: 121 + RECORDS_OUT_OPERATOR_SEL_10: 121 RECORDS_OUT_OPERATOR_SEL_2: 189 - RECORDS_OUT_OPERATOR_SEL_5: 121 + RECORDS_OUT_OPERATOR_SEL_6: 189 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 189 Stage-1 INPUT COUNTERS: @@ -94,16 +94,16 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_1_default.src2_n3: 189 RECORDS_OUT_INTERMEDIATE_Map_1: 121 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 - RECORDS_OUT_OPERATOR_FIL_5: 189 + RECORDS_OUT_OPERATOR_FIL_12: 189 + RECORDS_OUT_OPERATOR_FS_11: 121 RECORDS_OUT_OPERATOR_FS_4: 189 - RECORDS_OUT_OPERATOR_FS_6: 121 - RECORDS_OUT_OPERATOR_GBY_2: 121 - RECORDS_OUT_OPERATOR_GBY_4: 121 + RECORDS_OUT_OPERATOR_GBY_7: 121 + RECORDS_OUT_OPERATOR_GBY_9: 121 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 121 - RECORDS_OUT_OPERATOR_SEL_1: 189 + RECORDS_OUT_OPERATOR_RS_8: 121 + RECORDS_OUT_OPERATOR_SEL_10: 121 RECORDS_OUT_OPERATOR_SEL_2: 189 - RECORDS_OUT_OPERATOR_SEL_5: 121 + RECORDS_OUT_OPERATOR_SEL_6: 189 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 189 Stage-1 INPUT COUNTERS: @@ -125,16 +125,16 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_1_default.src2_n3: 292 RECORDS_OUT_INTERMEDIATE_Map_1: 184 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 - RECORDS_OUT_OPERATOR_FIL_5: 292 + RECORDS_OUT_OPERATOR_FIL_12: 292 + RECORDS_OUT_OPERATOR_FS_11: 184 RECORDS_OUT_OPERATOR_FS_4: 292 - RECORDS_OUT_OPERATOR_FS_6: 184 - RECORDS_OUT_OPERATOR_GBY_2: 184 - RECORDS_OUT_OPERATOR_GBY_4: 184 + RECORDS_OUT_OPERATOR_GBY_7: 184 + RECORDS_OUT_OPERATOR_GBY_9: 184 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 184 - RECORDS_OUT_OPERATOR_SEL_1: 292 + RECORDS_OUT_OPERATOR_RS_8: 184 + RECORDS_OUT_OPERATOR_SEL_10: 184 RECORDS_OUT_OPERATOR_SEL_2: 292 - RECORDS_OUT_OPERATOR_SEL_5: 184 + RECORDS_OUT_OPERATOR_SEL_6: 292 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 292 Stage-1 INPUT COUNTERS: @@ -175,19 +175,25 @@ Stage-2 HIVE COUNTERS: RECORDS_OUT_INTERMEDIATE_Map_1: 121 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 RECORDS_OUT_INTERMEDIATE_Reducer_3: 0 - RECORDS_OUT_OPERATOR_FIL_10: 105 - RECORDS_OUT_OPERATOR_FIL_9: 84 + RECORDS_OUT_OPERATOR_FIL_23: 84 + RECORDS_OUT_OPERATOR_FIL_24: 105 + RECORDS_OUT_OPERATOR_FS_11: 57 + RECORDS_OUT_OPERATOR_FS_15: 105 + RECORDS_OUT_OPERATOR_FS_22: 64 RECORDS_OUT_OPERATOR_FS_4: 84 - RECORDS_OUT_OPERATOR_FS_6: 121 - RECORDS_OUT_OPERATOR_FS_8: 105 - RECORDS_OUT_OPERATOR_GBY_2: 121 - RECORDS_OUT_OPERATOR_GBY_4: 121 + RECORDS_OUT_OPERATOR_GBY_18: 64 + RECORDS_OUT_OPERATOR_GBY_20: 64 + RECORDS_OUT_OPERATOR_GBY_7: 57 + RECORDS_OUT_OPERATOR_GBY_9: 57 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 121 - RECORDS_OUT_OPERATOR_SEL_1: 189 + RECORDS_OUT_OPERATOR_RS_19: 64 + RECORDS_OUT_OPERATOR_RS_8: 57 + RECORDS_OUT_OPERATOR_SEL_10: 57 + RECORDS_OUT_OPERATOR_SEL_13: 105 + RECORDS_OUT_OPERATOR_SEL_17: 105 RECORDS_OUT_OPERATOR_SEL_2: 84 - RECORDS_OUT_OPERATOR_SEL_5: 121 - RECORDS_OUT_OPERATOR_SEL_6: 105 + RECORDS_OUT_OPERATOR_SEL_21: 64 + RECORDS_OUT_OPERATOR_SEL_6: 84 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 189 Stage-2 INPUT COUNTERS: @@ -214,19 +220,25 @@ Stage-2 HIVE COUNTERS: RECORDS_OUT_INTERMEDIATE_Map_1: 184 RECORDS_OUT_INTERMEDIATE_Reducer_2: 0 RECORDS_OUT_INTERMEDIATE_Reducer_3: 0 - RECORDS_OUT_OPERATOR_FIL_10: 208 - RECORDS_OUT_OPERATOR_FIL_9: 84 + RECORDS_OUT_OPERATOR_FIL_23: 84 + RECORDS_OUT_OPERATOR_FIL_24: 208 + RECORDS_OUT_OPERATOR_FS_11: 57 + RECORDS_OUT_OPERATOR_FS_15: 208 + RECORDS_OUT_OPERATOR_FS_22: 127 RECORDS_OUT_OPERATOR_FS_4: 84 - RECORDS_OUT_OPERATOR_FS_6: 184 - RECORDS_OUT_OPERATOR_FS_8: 208 - RECORDS_OUT_OPERATOR_GBY_2: 184 - RECORDS_OUT_OPERATOR_GBY_4: 184 + RECORDS_OUT_OPERATOR_GBY_18: 127 + RECORDS_OUT_OPERATOR_GBY_20: 127 + RECORDS_OUT_OPERATOR_GBY_7: 57 + RECORDS_OUT_OPERATOR_GBY_9: 57 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 184 - RECORDS_OUT_OPERATOR_SEL_1: 292 + RECORDS_OUT_OPERATOR_RS_19: 127 + RECORDS_OUT_OPERATOR_RS_8: 57 + RECORDS_OUT_OPERATOR_SEL_10: 57 + RECORDS_OUT_OPERATOR_SEL_13: 208 + RECORDS_OUT_OPERATOR_SEL_17: 208 RECORDS_OUT_OPERATOR_SEL_2: 84 - RECORDS_OUT_OPERATOR_SEL_5: 184 - RECORDS_OUT_OPERATOR_SEL_6: 208 + RECORDS_OUT_OPERATOR_SEL_21: 127 + RECORDS_OUT_OPERATOR_SEL_6: 84 RECORDS_OUT_OPERATOR_TS_0: 500 TOTAL_TABLE_ROWS_WRITTEN: 292 Stage-2 INPUT COUNTERS: @@ -262,20 +274,26 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_INTERMEDIATE_Map_1: 57 RECORDS_OUT_INTERMEDIATE_Map_4: 64 RECORDS_OUT_INTERMEDIATE_Reducer_3: 0 - RECORDS_OUT_OPERATOR_FIL_10: 84 - RECORDS_OUT_OPERATOR_FIL_11: 105 - RECORDS_OUT_OPERATOR_FS_6: 121 - RECORDS_OUT_OPERATOR_FS_9: 189 - RECORDS_OUT_OPERATOR_GBY_2: 121 - RECORDS_OUT_OPERATOR_GBY_4: 121 + RECORDS_OUT_OPERATOR_FIL_20: 84 + RECORDS_OUT_OPERATOR_FIL_29: 105 + RECORDS_OUT_OPERATOR_FS_16: 121 + RECORDS_OUT_OPERATOR_FS_24: 84 + RECORDS_OUT_OPERATOR_FS_33: 105 + RECORDS_OUT_OPERATOR_GBY_14: 121 + RECORDS_OUT_OPERATOR_GBY_26: 57 + RECORDS_OUT_OPERATOR_GBY_35: 64 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 121 - RECORDS_OUT_OPERATOR_SEL_1: 189 - RECORDS_OUT_OPERATOR_SEL_2: 84 - RECORDS_OUT_OPERATOR_SEL_5: 226 - RECORDS_OUT_OPERATOR_SEL_7: 189 - RECORDS_OUT_OPERATOR_TS_0: 500 - RECORDS_OUT_OPERATOR_TS_3: 500 + RECORDS_OUT_OPERATOR_RS_27: 57 + RECORDS_OUT_OPERATOR_RS_36: 64 + RECORDS_OUT_OPERATOR_SEL_15: 121 + RECORDS_OUT_OPERATOR_SEL_21: 84 + RECORDS_OUT_OPERATOR_SEL_23: 84 + RECORDS_OUT_OPERATOR_SEL_25: 84 + RECORDS_OUT_OPERATOR_SEL_30: 105 + RECORDS_OUT_OPERATOR_SEL_32: 105 + RECORDS_OUT_OPERATOR_SEL_34: 105 + RECORDS_OUT_OPERATOR_TS_19: 500 + RECORDS_OUT_OPERATOR_TS_28: 500 TOTAL_TABLE_ROWS_WRITTEN: 189 Stage-1 INPUT COUNTERS: GROUPED_INPUT_SPLITS_Map_1: 1 @@ -306,20 +324,26 @@ Stage-1 HIVE COUNTERS: RECORDS_OUT_INTERMEDIATE_Map_1: 57 RECORDS_OUT_INTERMEDIATE_Map_4: 127 RECORDS_OUT_INTERMEDIATE_Reducer_3: 0 - RECORDS_OUT_OPERATOR_FIL_10: 84 - RECORDS_OUT_OPERATOR_FIL_11: 208 - RECORDS_OUT_OPERATOR_FS_6: 184 - RECORDS_OUT_OPERATOR_FS_9: 292 - RECORDS_OUT_OPERATOR_GBY_2: 184 - RECORDS_OUT_OPERATOR_GBY_4: 184 + RECORDS_OUT_OPERATOR_FIL_20: 84 + RECORDS_OUT_OPERATOR_FIL_29: 208 + RECORDS_OUT_OPERATOR_FS_16: 184 + RECORDS_OUT_OPERATOR_FS_24: 84 + RECORDS_OUT_OPERATOR_FS_33: 208 + RECORDS_OUT_OPERATOR_GBY_14: 184 + RECORDS_OUT_OPERATOR_GBY_26: 57 + RECORDS_OUT_OPERATOR_GBY_35: 127 RECORDS_OUT_OPERATOR_MAP_0: 0 - RECORDS_OUT_OPERATOR_RS_3: 184 - RECORDS_OUT_OPERATOR_SEL_1: 292 - RECORDS_OUT_OPERATOR_SEL_2: 84 - RECORDS_OUT_OPERATOR_SEL_5: 392 - RECORDS_OUT_OPERATOR_SEL_7: 292 - RECORDS_OUT_OPERATOR_TS_0: 500 - RECORDS_OUT_OPERATOR_TS_3: 500 + RECORDS_OUT_OPERATOR_RS_27: 57 + RECORDS_OUT_OPERATOR_RS_36: 127 + RECORDS_OUT_OPERATOR_SEL_15: 184 + RECORDS_OUT_OPERATOR_SEL_21: 84 + RECORDS_OUT_OPERATOR_SEL_23: 84 + RECORDS_OUT_OPERATOR_SEL_25: 84 + RECORDS_OUT_OPERATOR_SEL_30: 208 + RECORDS_OUT_OPERATOR_SEL_32: 208 + RECORDS_OUT_OPERATOR_SEL_34: 208 + RECORDS_OUT_OPERATOR_TS_19: 500 + RECORDS_OUT_OPERATOR_TS_28: 500 TOTAL_TABLE_ROWS_WRITTEN: 292 Stage-1 INPUT COUNTERS: GROUPED_INPUT_SPLITS_Map_1: 1 http://git-wip-us.apache.org/repos/asf/hive/blob/2842f88e/ql/src/test/results/clientpositive/llap/dynamic_semijoin_user_level.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/llap/dynamic_semijoin_user_level.q.out b/ql/src/test/results/clientpositive/llap/dynamic_semijoin_user_level.q.out index c3ef505..aa65613 100644 --- a/ql/src/test/results/clientpositive/llap/dynamic_semijoin_user_level.q.out +++ b/ql/src/test/results/clientpositive/llap/dynamic_semijoin_user_level.q.out @@ -1450,22 +1450,22 @@ Stage-0 Conds:SEL_2._col1=Union 3._col0(Inner),Output:["_col0","_col1","_col2"] <-Union 3 [BROADCAST_EDGE] <-Map 2 [CONTAINS] llap - Reduce Output Operator [RS_12] + Reduce Output Operator [RS_39] PartitionCols:_col0 - Select Operator [SEL_5] (rows=2000 width=87) + Select Operator [SEL_37] (rows=2000 width=87) Output:["_col0"] - Filter Operator [FIL_20] (rows=2000 width=87) + Filter Operator [FIL_36] (rows=2000 width=87) predicate:key is not null - TableScan [TS_3] (rows=2000 width=87) + TableScan [TS_35] (rows=2000 width=87) Output:["key"] <-Map 4 [CONTAINS] llap - Reduce Output Operator [RS_12] + Reduce Output Operator [RS_44] PartitionCols:_col0 - Select Operator [SEL_8] (rows=20 width=87) + Select Operator [SEL_42] (rows=20 width=87) Output:["_col0"] - Filter Operator [FIL_21] (rows=20 width=87) + Filter Operator [FIL_41] (rows=20 width=87) predicate:key1 is not null - TableScan [TS_6] (rows=20 width=87) + TableScan [TS_40] (rows=20 width=87) Output:["key1"] <-Select Operator [SEL_2] (rows=9174 width=73) Output:["_col0","_col1"]