You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by vg...@apache.org on 2017/03/31 20:53:56 UTC
[3/3] hive git commit: Revert "HIVE-11356: SMB join on tez fails when
one of the tables is empty (Vikram Dixit K, reviewed by Gunther Hagleitner)"
Revert "HIVE-11356: SMB join on tez fails when one of the tables is empty (Vikram Dixit K, reviewed by Gunther Hagleitner)"
This reverts commit 05cfaa05de8cf8d30cc8afcad33c872040eeb7ef.
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/6ebefdea
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/6ebefdea
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/6ebefdea
Branch: refs/heads/branch-1.2
Commit: 6ebefdea6ba4c09f36d5c4d3372dbe272bce20e1
Parents: abc8af0
Author: Vaibhav Gumashta <vg...@hortonworks.com>
Authored: Fri Mar 31 13:49:36 2017 -0700
Committer: Vaibhav Gumashta <vg...@hortonworks.com>
Committed: Fri Mar 31 13:49:36 2017 -0700
----------------------------------------------------------------------
.../test/resources/testconfiguration.properties | 1 -
pom.xml | 2 +-
.../hive/ql/exec/CommonMergeJoinOperator.java | 8 +-
.../apache/hadoop/hive/ql/exec/MapOperator.java | 27 -
.../hive/ql/exec/TezDummyStoreOperator.java | 9 -
.../hive/ql/exec/tez/CustomPartitionVertex.java | 1 -
.../hive/ql/exec/tez/MapRecordProcessor.java | 26 +-
.../test/queries/clientpositive/tez_smb_empty.q | 55 --
.../clientpositive/tez/tez_smb_empty.q.out | 676 -------------------
9 files changed, 5 insertions(+), 800 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/6ebefdea/itests/src/test/resources/testconfiguration.properties
----------------------------------------------------------------------
diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties
index 0b44c97..5f0e7ff 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -344,7 +344,6 @@ minitez.query.files=bucket_map_join_tez1.q,\
tez_union_group_by.q,\
tez_smb_main.q,\
tez_smb_1.q,\
- tez_smb_empty.q,\
vectorized_dynamic_partition_pruning.q,\
tez_multi_union.q,\
tez_join.q,\
http://git-wip-us.apache.org/repos/asf/hive/blob/6ebefdea/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 06d0b77..e8811ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -156,7 +156,7 @@
<stax.version>1.0.1</stax.version>
<slf4j.version>1.7.5</slf4j.version>
<ST4.version>4.0.4</ST4.version>
- <tez.version>0.5.4</tez.version>
+ <tez.version>0.5.2</tez.version>
<super-csv.version>2.2.0</super-csv.version>
<spark.version>1.3.1</spark.version>
<scala.binary.version>2.10</scala.binary.version>
http://git-wip-us.apache.org/repos/asf/hive/blob/6ebefdea/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
index 296a92d..24af765 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
@@ -143,13 +143,7 @@ public class CommonMergeJoinOperator extends AbstractMapJoinOperator<CommonMerge
for (byte pos = 0; pos < order.length; pos++) {
if (pos != posBigTable) {
- if ((parentOperators != null) && (parentOperators.isEmpty() == false)
- && (parentOperators.get(pos) instanceof TezDummyStoreOperator)) {
- TezDummyStoreOperator dummyStoreOp = (TezDummyStoreOperator) parentOperators.get(pos);
- fetchDone[pos] = dummyStoreOp.getFetchDone();
- } else {
- fetchDone[pos] = false;
- }
+ fetchDone[pos] = false;
}
foundNextKeyGroup[pos] = false;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/6ebefdea/ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java
index f8717ae..d5ea96a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java
@@ -36,7 +36,6 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.hive_metastoreConstants;
-import org.apache.hadoop.hive.ql.exec.MapOperator.MapOpCtx;
import org.apache.hadoop.hive.ql.exec.mr.ExecMapperContext;
import org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor;
import org.apache.hadoop.hive.ql.io.RecordIdentifier;
@@ -56,7 +55,6 @@ import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters.Converter;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
@@ -332,31 +330,6 @@ public class MapOperator extends Operator<MapWork> implements Serializable, Clon
return tableDescOI;
}
- /*
- * This is the same as the setChildren method below but for empty tables.
- * It takes care of the following:
- * 1. Create the right object inspector.
- * 2. Set up the childrenOpToOI with the object inspector.
- * So as to ensure that the initialization happens correctly.
- */
- public void initEmptyInputChildren(List<Operator<?>> children, Configuration hconf)
- throws SerDeException, Exception {
- setChildOperators(children);
- for (Operator<?> child : children) {
- TableScanOperator tsOp = (TableScanOperator) child;
- StructObjectInspector soi = null;
- PartitionDesc partDesc = conf.getAliasToPartnInfo().get(tsOp.getConf().getAlias());
- Deserializer serde = partDesc.getTableDesc().getDeserializer();
- partDesc.setProperties(partDesc.getProperties());
- MapOpCtx opCtx = new MapOpCtx(tsOp.getConf().getAlias(), child, partDesc);
- StructObjectInspector tableRowOI = (StructObjectInspector) serde.getObjectInspector();
- initObjectInspector(hconf, opCtx, tableRowOI);
- soi = opCtx.rowObjectInspector;
- child.getParentOperators().add(this);
- childrenOpToOI.put(child, soi);
- }
- }
-
public void setChildren(Configuration hconf) throws Exception {
List<Operator<? extends OperatorDesc>> children =
http://git-wip-us.apache.org/repos/asf/hive/blob/6ebefdea/ql/src/java/org/apache/hadoop/hive/ql/exec/TezDummyStoreOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/TezDummyStoreOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/TezDummyStoreOperator.java
index e9f65be..6bd156b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/TezDummyStoreOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/TezDummyStoreOperator.java
@@ -27,7 +27,6 @@ import org.apache.hadoop.hive.ql.metadata.HiveException;
*
*/
public class TezDummyStoreOperator extends DummyStoreOperator {
- private boolean fetchDone = false;
/**
* Unlike the MR counterpoint, on Tez we want processOp to forward
@@ -38,12 +37,4 @@ public class TezDummyStoreOperator extends DummyStoreOperator {
super.process(row, tag);
forward(result.o, outputObjInspector);
}
-
- public boolean getFetchDone() {
- return fetchDone;
- }
-
- public void setFetchDone(boolean fetchDone) {
- this.fetchDone = fetchDone;
- }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/6ebefdea/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/CustomPartitionVertex.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/CustomPartitionVertex.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/CustomPartitionVertex.java
index cbea27c..446916c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/CustomPartitionVertex.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/CustomPartitionVertex.java
@@ -336,7 +336,6 @@ public class CustomPartitionVertex extends VertexManagerPlugin {
+ " multi mr inputs. " + bucketToTaskMap);
Integer[] numSplitsForTask = new Integer[taskCount];
- Arrays.fill(numSplitsForTask, 0);
Multimap<Integer, ByteBuffer> bucketToSerializedSplitMap = LinkedListMultimap.create();
http://git-wip-us.apache.org/repos/asf/hive/blob/6ebefdea/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
index dd9b8d2..f606ec0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
@@ -42,7 +42,6 @@ import org.apache.hadoop.hive.ql.exec.ObjectCache;
import org.apache.hadoop.hive.ql.exec.ObjectCacheFactory;
import org.apache.hadoop.hive.ql.exec.Operator;
import org.apache.hadoop.hive.ql.exec.OperatorUtils;
-import org.apache.hadoop.hive.ql.exec.TezDummyStoreOperator;
import org.apache.hadoop.hive.ql.exec.Utilities;
import org.apache.hadoop.hive.ql.exec.mr.ExecMapper.ReportStats;
import org.apache.hadoop.hive.ql.exec.mr.ExecMapperContext;
@@ -171,26 +170,9 @@ public class MapRecordProcessor extends RecordProcessor {
l4j.info("Input name is " + mergeMapWork.getName());
jconf.set(Utilities.INPUT_NAME, mergeMapWork.getName());
mergeMapOp.initialize(jconf, null);
- // if there are no files/partitions to read, we need to skip trying to read
- boolean skipRead = mergeMapOp.getConf().getPathToAliases().isEmpty();
- if (skipRead) {
- List<Operator<?>> children = new ArrayList<Operator<?>>();
- children.addAll(mergeMapOp.getConf().getAliasToWork().values());
- // do the same thing as setChildren when there is nothing to read.
- // the setChildren method initializes the object inspector needed by the operators
- // based on path and partition information which we don't have in this case.
- mergeMapOp.initEmptyInputChildren(children, jconf);
- } else {
- // the setChildren method initializes the object inspector needed by the operators
- // based on path and partition information.
- mergeMapOp.setChildren(jconf);
- }
+ mergeMapOp.setChildren(jconf);
DummyStoreOperator dummyOp = getJoinParentOp(mergeMapOp);
- if (dummyOp instanceof TezDummyStoreOperator) {
- // we ensure that we don't try to read any data for this table.
- ((TezDummyStoreOperator) dummyOp).setFetchDone(skipRead);
- }
connectOps.put(mergeMapWork.getTag(), dummyOp);
mergeMapOp.passExecContext(new ExecMapperContext(jconf));
@@ -270,10 +252,8 @@ public class MapRecordProcessor extends RecordProcessor {
MultiMRInput multiMRInput = multiMRInputMap.get(inputName);
Collection<KeyValueReader> kvReaders = multiMRInput.getKeyValueReaders();
l4j.debug("There are " + kvReaders.size() + " key-value readers for input " + inputName);
- if (kvReaders.size() > 0) {
- reader = getKeyValueReader(kvReaders, mapOp);
- sources[tag].init(jconf, mapOp, reader);
- }
+ reader = getKeyValueReader(kvReaders, mapOp);
+ sources[tag].init(jconf, mapOp, reader);
}
((TezContext) MapredContext.get()).setRecordSources(sources);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/6ebefdea/ql/src/test/queries/clientpositive/tez_smb_empty.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/tez_smb_empty.q b/ql/src/test/queries/clientpositive/tez_smb_empty.q
deleted file mode 100644
index 35ee71f..0000000
--- a/ql/src/test/queries/clientpositive/tez_smb_empty.q
+++ /dev/null
@@ -1,55 +0,0 @@
-set hive.explain.user=false;
-set hive.join.emit.interval=2;
-set hive.auto.convert.join.noconditionaltask=true;
-set hive.auto.convert.join.noconditionaltask.size=10000;
-set hive.auto.convert.sortmerge.join.bigtable.selection.policy = org.apache.hadoop.hive.ql.optimizer.TableSizeBasedBigTableSelectorForAutoSMJ;
-
--- SORT_QUERY_RESULTS
-
-CREATE TABLE srcbucket_mapjoin(key int, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE;
-CREATE TABLE tab_part (key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) SORTED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE;
-CREATE TABLE srcbucket_mapjoin_part (key int, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE;
-
-load data local inpath '../../data/files/srcbucket20.txt' INTO TABLE srcbucket_mapjoin partition(ds='2008-04-08');
-load data local inpath '../../data/files/srcbucket22.txt' INTO TABLE srcbucket_mapjoin partition(ds='2008-04-08');
-
-load data local inpath '../../data/files/srcbucket20.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08');
-load data local inpath '../../data/files/srcbucket21.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08');
-load data local inpath '../../data/files/srcbucket22.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08');
-load data local inpath '../../data/files/srcbucket23.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08');
-
-set hive.enforce.bucketing=true;
-set hive.enforce.sorting = true;
-set hive.optimize.bucketingsorting=false;
-insert overwrite table tab_part partition (ds='2008-04-08')
-select key,value from srcbucket_mapjoin_part;
-
-CREATE TABLE tab(key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) SORTED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE;
-insert overwrite table tab partition (ds='2008-04-08')
-select key,value from srcbucket_mapjoin;
-
-set hive.auto.convert.sortmerge.join = true;
-set hive.auto.convert.join = true;
-
-set hive.auto.convert.join.noconditionaltask.size=500;
-CREATE TABLE empty(key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) SORTED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE;
-
-explain
-select count(*) from tab s1 join empty s3 on s1.key=s3.key;
-
-select count(*) from tab s1 join empty s3 on s1.key=s3.key;
-
-explain
-select * from tab s1 left outer join empty s3 on s1.key=s3.key;
-
-select * from tab s1 left outer join empty s3 on s1.key=s3.key;
-
-explain
-select count(*) from tab s1 left outer join tab s2 on s1.key=s2.key join empty s3 on s1.key = s3.key;
-
-select count(*) from tab s1 left outer join tab s2 on s1.key=s2.key join empty s3 on s1.key = s3.key;
-
-explain
-select count(*) from tab s1 left outer join empty s2 on s1.key=s2.key join tab s3 on s1.key = s3.key;
-
-select count(*) from tab s1 left outer join empty s2 on s1.key=s2.key join tab s3 on s1.key = s3.key;
http://git-wip-us.apache.org/repos/asf/hive/blob/6ebefdea/ql/src/test/results/clientpositive/tez/tez_smb_empty.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/tez_smb_empty.q.out b/ql/src/test/results/clientpositive/tez/tez_smb_empty.q.out
deleted file mode 100644
index 82ec31d..0000000
--- a/ql/src/test/results/clientpositive/tez/tez_smb_empty.q.out
+++ /dev/null
@@ -1,676 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
-
-CREATE TABLE srcbucket_mapjoin(key int, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@srcbucket_mapjoin
-POSTHOOK: query: -- SORT_QUERY_RESULTS
-
-CREATE TABLE srcbucket_mapjoin(key int, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@srcbucket_mapjoin
-PREHOOK: query: CREATE TABLE tab_part (key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) SORTED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@tab_part
-POSTHOOK: query: CREATE TABLE tab_part (key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) SORTED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@tab_part
-PREHOOK: query: CREATE TABLE srcbucket_mapjoin_part (key int, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@srcbucket_mapjoin_part
-POSTHOOK: query: CREATE TABLE srcbucket_mapjoin_part (key int, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@srcbucket_mapjoin_part
-PREHOOK: query: load data local inpath '../../data/files/srcbucket20.txt' INTO TABLE srcbucket_mapjoin partition(ds='2008-04-08')
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@srcbucket_mapjoin
-POSTHOOK: query: load data local inpath '../../data/files/srcbucket20.txt' INTO TABLE srcbucket_mapjoin partition(ds='2008-04-08')
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@srcbucket_mapjoin
-POSTHOOK: Output: default@srcbucket_mapjoin@ds=2008-04-08
-PREHOOK: query: load data local inpath '../../data/files/srcbucket22.txt' INTO TABLE srcbucket_mapjoin partition(ds='2008-04-08')
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@srcbucket_mapjoin@ds=2008-04-08
-POSTHOOK: query: load data local inpath '../../data/files/srcbucket22.txt' INTO TABLE srcbucket_mapjoin partition(ds='2008-04-08')
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@srcbucket_mapjoin@ds=2008-04-08
-PREHOOK: query: load data local inpath '../../data/files/srcbucket20.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@srcbucket_mapjoin_part
-POSTHOOK: query: load data local inpath '../../data/files/srcbucket20.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@srcbucket_mapjoin_part
-POSTHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
-PREHOOK: query: load data local inpath '../../data/files/srcbucket21.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
-POSTHOOK: query: load data local inpath '../../data/files/srcbucket21.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
-PREHOOK: query: load data local inpath '../../data/files/srcbucket22.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
-POSTHOOK: query: load data local inpath '../../data/files/srcbucket22.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
-PREHOOK: query: load data local inpath '../../data/files/srcbucket23.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
-POSTHOOK: query: load data local inpath '../../data/files/srcbucket23.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
-PREHOOK: query: insert overwrite table tab_part partition (ds='2008-04-08')
-select key,value from srcbucket_mapjoin_part
-PREHOOK: type: QUERY
-PREHOOK: Input: default@srcbucket_mapjoin_part
-PREHOOK: Input: default@srcbucket_mapjoin_part@ds=2008-04-08
-PREHOOK: Output: default@tab_part@ds=2008-04-08
-POSTHOOK: query: insert overwrite table tab_part partition (ds='2008-04-08')
-select key,value from srcbucket_mapjoin_part
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@srcbucket_mapjoin_part
-POSTHOOK: Input: default@srcbucket_mapjoin_part@ds=2008-04-08
-POSTHOOK: Output: default@tab_part@ds=2008-04-08
-POSTHOOK: Lineage: tab_part PARTITION(ds=2008-04-08).key SIMPLE [(srcbucket_mapjoin_part)srcbucket_mapjoin_part.FieldSchema(name:key, type:int, comment:null), ]
-POSTHOOK: Lineage: tab_part PARTITION(ds=2008-04-08).value SIMPLE [(srcbucket_mapjoin_part)srcbucket_mapjoin_part.FieldSchema(name:value, type:string, comment:null), ]
-PREHOOK: query: CREATE TABLE tab(key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) SORTED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@tab
-POSTHOOK: query: CREATE TABLE tab(key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) SORTED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@tab
-PREHOOK: query: insert overwrite table tab partition (ds='2008-04-08')
-select key,value from srcbucket_mapjoin
-PREHOOK: type: QUERY
-PREHOOK: Input: default@srcbucket_mapjoin
-PREHOOK: Input: default@srcbucket_mapjoin@ds=2008-04-08
-PREHOOK: Output: default@tab@ds=2008-04-08
-POSTHOOK: query: insert overwrite table tab partition (ds='2008-04-08')
-select key,value from srcbucket_mapjoin
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@srcbucket_mapjoin
-POSTHOOK: Input: default@srcbucket_mapjoin@ds=2008-04-08
-POSTHOOK: Output: default@tab@ds=2008-04-08
-POSTHOOK: Lineage: tab PARTITION(ds=2008-04-08).key SIMPLE [(srcbucket_mapjoin)srcbucket_mapjoin.FieldSchema(name:key, type:int, comment:null), ]
-POSTHOOK: Lineage: tab PARTITION(ds=2008-04-08).value SIMPLE [(srcbucket_mapjoin)srcbucket_mapjoin.FieldSchema(name:value, type:string, comment:null), ]
-PREHOOK: query: CREATE TABLE empty(key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) SORTED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@empty
-POSTHOOK: query: CREATE TABLE empty(key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) SORTED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@empty
-PREHOOK: query: explain
-select count(*) from tab s1 join empty s3 on s1.key=s3.key
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select count(*) from tab s1 join empty s3 on s1.key=s3.key
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Tez
- Edges:
- Reducer 2 <- Map 1 (SIMPLE_EDGE)
-#### A masked pattern was here ####
- Vertices:
- Map 1
- Map Operator Tree:
- TableScan
- alias: s3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: key is not null (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Map Operator Tree:
- TableScan
- alias: s1
- Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: key is not null (type: boolean)
- Statistics: Num rows: 121 Data size: 1283 Basic stats: COMPLETE Column stats: NONE
- Merge Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 key (type: int)
- 1 key (type: int)
- Statistics: Num rows: 133 Data size: 1411 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- aggregations: count()
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: bigint)
- Reducer 2
- Reduce Operator Tree:
- Group By Operator
- aggregations: count(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.TextInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select count(*) from tab s1 join empty s3 on s1.key=s3.key
-PREHOOK: type: QUERY
-PREHOOK: Input: default@empty
-PREHOOK: Input: default@tab
-PREHOOK: Input: default@tab@ds=2008-04-08
-#### A masked pattern was here ####
-POSTHOOK: query: select count(*) from tab s1 join empty s3 on s1.key=s3.key
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@empty
-POSTHOOK: Input: default@tab
-POSTHOOK: Input: default@tab@ds=2008-04-08
-#### A masked pattern was here ####
-0
-PREHOOK: query: explain
-select * from tab s1 left outer join empty s3 on s1.key=s3.key
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select * from tab s1 left outer join empty s3 on s1.key=s3.key
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Tez
-#### A masked pattern was here ####
- Vertices:
- Map 1
- Map Operator Tree:
- TableScan
- alias: s3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: key (type: int), value (type: string), ds (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Map Operator Tree:
- TableScan
- alias: s1
- Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: key (type: int), value (type: string), ds (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
- Merge Join Operator
- condition map:
- Left Outer Join0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
- Statistics: Num rows: 266 Data size: 2822 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 266 Data size: 2822 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.TextInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select * from tab s1 left outer join empty s3 on s1.key=s3.key
-PREHOOK: type: QUERY
-PREHOOK: Input: default@empty
-PREHOOK: Input: default@tab
-PREHOOK: Input: default@tab@ds=2008-04-08
-#### A masked pattern was here ####
-POSTHOOK: query: select * from tab s1 left outer join empty s3 on s1.key=s3.key
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@empty
-POSTHOOK: Input: default@tab
-POSTHOOK: Input: default@tab@ds=2008-04-08
-#### A masked pattern was here ####
-0 val_0 2008-04-08 NULL NULL NULL
-0 val_0 2008-04-08 NULL NULL NULL
-0 val_0 2008-04-08 NULL NULL NULL
-103 val_103 2008-04-08 NULL NULL NULL
-103 val_103 2008-04-08 NULL NULL NULL
-105 val_105 2008-04-08 NULL NULL NULL
-11 val_11 2008-04-08 NULL NULL NULL
-114 val_114 2008-04-08 NULL NULL NULL
-116 val_116 2008-04-08 NULL NULL NULL
-118 val_118 2008-04-08 NULL NULL NULL
-118 val_118 2008-04-08 NULL NULL NULL
-125 val_125 2008-04-08 NULL NULL NULL
-125 val_125 2008-04-08 NULL NULL NULL
-129 val_129 2008-04-08 NULL NULL NULL
-129 val_129 2008-04-08 NULL NULL NULL
-134 val_134 2008-04-08 NULL NULL NULL
-134 val_134 2008-04-08 NULL NULL NULL
-136 val_136 2008-04-08 NULL NULL NULL
-138 val_138 2008-04-08 NULL NULL NULL
-138 val_138 2008-04-08 NULL NULL NULL
-138 val_138 2008-04-08 NULL NULL NULL
-138 val_138 2008-04-08 NULL NULL NULL
-143 val_143 2008-04-08 NULL NULL NULL
-145 val_145 2008-04-08 NULL NULL NULL
-149 val_149 2008-04-08 NULL NULL NULL
-149 val_149 2008-04-08 NULL NULL NULL
-15 val_15 2008-04-08 NULL NULL NULL
-15 val_15 2008-04-08 NULL NULL NULL
-150 val_150 2008-04-08 NULL NULL NULL
-152 val_152 2008-04-08 NULL NULL NULL
-152 val_152 2008-04-08 NULL NULL NULL
-156 val_156 2008-04-08 NULL NULL NULL
-158 val_158 2008-04-08 NULL NULL NULL
-163 val_163 2008-04-08 NULL NULL NULL
-165 val_165 2008-04-08 NULL NULL NULL
-165 val_165 2008-04-08 NULL NULL NULL
-167 val_167 2008-04-08 NULL NULL NULL
-167 val_167 2008-04-08 NULL NULL NULL
-167 val_167 2008-04-08 NULL NULL NULL
-169 val_169 2008-04-08 NULL NULL NULL
-169 val_169 2008-04-08 NULL NULL NULL
-169 val_169 2008-04-08 NULL NULL NULL
-169 val_169 2008-04-08 NULL NULL NULL
-17 val_17 2008-04-08 NULL NULL NULL
-170 val_170 2008-04-08 NULL NULL NULL
-172 val_172 2008-04-08 NULL NULL NULL
-172 val_172 2008-04-08 NULL NULL NULL
-174 val_174 2008-04-08 NULL NULL NULL
-174 val_174 2008-04-08 NULL NULL NULL
-176 val_176 2008-04-08 NULL NULL NULL
-176 val_176 2008-04-08 NULL NULL NULL
-178 val_178 2008-04-08 NULL NULL NULL
-181 val_181 2008-04-08 NULL NULL NULL
-183 val_183 2008-04-08 NULL NULL NULL
-187 val_187 2008-04-08 NULL NULL NULL
-187 val_187 2008-04-08 NULL NULL NULL
-187 val_187 2008-04-08 NULL NULL NULL
-189 val_189 2008-04-08 NULL NULL NULL
-19 val_19 2008-04-08 NULL NULL NULL
-190 val_190 2008-04-08 NULL NULL NULL
-192 val_192 2008-04-08 NULL NULL NULL
-194 val_194 2008-04-08 NULL NULL NULL
-196 val_196 2008-04-08 NULL NULL NULL
-2 val_2 2008-04-08 NULL NULL NULL
-20 val_20 2008-04-08 NULL NULL NULL
-200 val_200 2008-04-08 NULL NULL NULL
-200 val_200 2008-04-08 NULL NULL NULL
-202 val_202 2008-04-08 NULL NULL NULL
-208 val_208 2008-04-08 NULL NULL NULL
-208 val_208 2008-04-08 NULL NULL NULL
-208 val_208 2008-04-08 NULL NULL NULL
-213 val_213 2008-04-08 NULL NULL NULL
-213 val_213 2008-04-08 NULL NULL NULL
-217 val_217 2008-04-08 NULL NULL NULL
-217 val_217 2008-04-08 NULL NULL NULL
-219 val_219 2008-04-08 NULL NULL NULL
-219 val_219 2008-04-08 NULL NULL NULL
-222 val_222 2008-04-08 NULL NULL NULL
-224 val_224 2008-04-08 NULL NULL NULL
-224 val_224 2008-04-08 NULL NULL NULL
-226 val_226 2008-04-08 NULL NULL NULL
-228 val_228 2008-04-08 NULL NULL NULL
-233 val_233 2008-04-08 NULL NULL NULL
-233 val_233 2008-04-08 NULL NULL NULL
-235 val_235 2008-04-08 NULL NULL NULL
-237 val_237 2008-04-08 NULL NULL NULL
-237 val_237 2008-04-08 NULL NULL NULL
-239 val_239 2008-04-08 NULL NULL NULL
-239 val_239 2008-04-08 NULL NULL NULL
-24 val_24 2008-04-08 NULL NULL NULL
-24 val_24 2008-04-08 NULL NULL NULL
-242 val_242 2008-04-08 NULL NULL NULL
-242 val_242 2008-04-08 NULL NULL NULL
-244 val_244 2008-04-08 NULL NULL NULL
-248 val_248 2008-04-08 NULL NULL NULL
-255 val_255 2008-04-08 NULL NULL NULL
-255 val_255 2008-04-08 NULL NULL NULL
-257 val_257 2008-04-08 NULL NULL NULL
-26 val_26 2008-04-08 NULL NULL NULL
-26 val_26 2008-04-08 NULL NULL NULL
-260 val_260 2008-04-08 NULL NULL NULL
-262 val_262 2008-04-08 NULL NULL NULL
-266 val_266 2008-04-08 NULL NULL NULL
-273 val_273 2008-04-08 NULL NULL NULL
-273 val_273 2008-04-08 NULL NULL NULL
-273 val_273 2008-04-08 NULL NULL NULL
-275 val_275 2008-04-08 NULL NULL NULL
-277 val_277 2008-04-08 NULL NULL NULL
-277 val_277 2008-04-08 NULL NULL NULL
-277 val_277 2008-04-08 NULL NULL NULL
-277 val_277 2008-04-08 NULL NULL NULL
-28 val_28 2008-04-08 NULL NULL NULL
-280 val_280 2008-04-08 NULL NULL NULL
-280 val_280 2008-04-08 NULL NULL NULL
-282 val_282 2008-04-08 NULL NULL NULL
-282 val_282 2008-04-08 NULL NULL NULL
-284 val_284 2008-04-08 NULL NULL NULL
-286 val_286 2008-04-08 NULL NULL NULL
-288 val_288 2008-04-08 NULL NULL NULL
-288 val_288 2008-04-08 NULL NULL NULL
-291 val_291 2008-04-08 NULL NULL NULL
-305 val_305 2008-04-08 NULL NULL NULL
-307 val_307 2008-04-08 NULL NULL NULL
-307 val_307 2008-04-08 NULL NULL NULL
-309 val_309 2008-04-08 NULL NULL NULL
-309 val_309 2008-04-08 NULL NULL NULL
-310 val_310 2008-04-08 NULL NULL NULL
-316 val_316 2008-04-08 NULL NULL NULL
-316 val_316 2008-04-08 NULL NULL NULL
-316 val_316 2008-04-08 NULL NULL NULL
-318 val_318 2008-04-08 NULL NULL NULL
-318 val_318 2008-04-08 NULL NULL NULL
-318 val_318 2008-04-08 NULL NULL NULL
-321 val_321 2008-04-08 NULL NULL NULL
-321 val_321 2008-04-08 NULL NULL NULL
-323 val_323 2008-04-08 NULL NULL NULL
-325 val_325 2008-04-08 NULL NULL NULL
-325 val_325 2008-04-08 NULL NULL NULL
-327 val_327 2008-04-08 NULL NULL NULL
-327 val_327 2008-04-08 NULL NULL NULL
-327 val_327 2008-04-08 NULL NULL NULL
-33 val_33 2008-04-08 NULL NULL NULL
-332 val_332 2008-04-08 NULL NULL NULL
-336 val_336 2008-04-08 NULL NULL NULL
-338 val_338 2008-04-08 NULL NULL NULL
-341 val_341 2008-04-08 NULL NULL NULL
-345 val_345 2008-04-08 NULL NULL NULL
-35 val_35 2008-04-08 NULL NULL NULL
-35 val_35 2008-04-08 NULL NULL NULL
-35 val_35 2008-04-08 NULL NULL NULL
-356 val_356 2008-04-08 NULL NULL NULL
-365 val_365 2008-04-08 NULL NULL NULL
-367 val_367 2008-04-08 NULL NULL NULL
-367 val_367 2008-04-08 NULL NULL NULL
-369 val_369 2008-04-08 NULL NULL NULL
-369 val_369 2008-04-08 NULL NULL NULL
-369 val_369 2008-04-08 NULL NULL NULL
-37 val_37 2008-04-08 NULL NULL NULL
-37 val_37 2008-04-08 NULL NULL NULL
-374 val_374 2008-04-08 NULL NULL NULL
-378 val_378 2008-04-08 NULL NULL NULL
-389 val_389 2008-04-08 NULL NULL NULL
-392 val_392 2008-04-08 NULL NULL NULL
-394 val_394 2008-04-08 NULL NULL NULL
-396 val_396 2008-04-08 NULL NULL NULL
-396 val_396 2008-04-08 NULL NULL NULL
-396 val_396 2008-04-08 NULL NULL NULL
-4 val_4 2008-04-08 NULL NULL NULL
-400 val_400 2008-04-08 NULL NULL NULL
-402 val_402 2008-04-08 NULL NULL NULL
-404 val_404 2008-04-08 NULL NULL NULL
-404 val_404 2008-04-08 NULL NULL NULL
-406 val_406 2008-04-08 NULL NULL NULL
-406 val_406 2008-04-08 NULL NULL NULL
-406 val_406 2008-04-08 NULL NULL NULL
-406 val_406 2008-04-08 NULL NULL NULL
-411 val_411 2008-04-08 NULL NULL NULL
-413 val_413 2008-04-08 NULL NULL NULL
-413 val_413 2008-04-08 NULL NULL NULL
-417 val_417 2008-04-08 NULL NULL NULL
-417 val_417 2008-04-08 NULL NULL NULL
-417 val_417 2008-04-08 NULL NULL NULL
-419 val_419 2008-04-08 NULL NULL NULL
-42 val_42 2008-04-08 NULL NULL NULL
-42 val_42 2008-04-08 NULL NULL NULL
-424 val_424 2008-04-08 NULL NULL NULL
-424 val_424 2008-04-08 NULL NULL NULL
-431 val_431 2008-04-08 NULL NULL NULL
-431 val_431 2008-04-08 NULL NULL NULL
-431 val_431 2008-04-08 NULL NULL NULL
-435 val_435 2008-04-08 NULL NULL NULL
-437 val_437 2008-04-08 NULL NULL NULL
-439 val_439 2008-04-08 NULL NULL NULL
-439 val_439 2008-04-08 NULL NULL NULL
-44 val_44 2008-04-08 NULL NULL NULL
-444 val_444 2008-04-08 NULL NULL NULL
-446 val_446 2008-04-08 NULL NULL NULL
-448 val_448 2008-04-08 NULL NULL NULL
-453 val_453 2008-04-08 NULL NULL NULL
-455 val_455 2008-04-08 NULL NULL NULL
-457 val_457 2008-04-08 NULL NULL NULL
-459 val_459 2008-04-08 NULL NULL NULL
-459 val_459 2008-04-08 NULL NULL NULL
-460 val_460 2008-04-08 NULL NULL NULL
-462 val_462 2008-04-08 NULL NULL NULL
-462 val_462 2008-04-08 NULL NULL NULL
-466 val_466 2008-04-08 NULL NULL NULL
-466 val_466 2008-04-08 NULL NULL NULL
-466 val_466 2008-04-08 NULL NULL NULL
-468 val_468 2008-04-08 NULL NULL NULL
-468 val_468 2008-04-08 NULL NULL NULL
-468 val_468 2008-04-08 NULL NULL NULL
-468 val_468 2008-04-08 NULL NULL NULL
-475 val_475 2008-04-08 NULL NULL NULL
-477 val_477 2008-04-08 NULL NULL NULL
-479 val_479 2008-04-08 NULL NULL NULL
-480 val_480 2008-04-08 NULL NULL NULL
-480 val_480 2008-04-08 NULL NULL NULL
-480 val_480 2008-04-08 NULL NULL NULL
-482 val_482 2008-04-08 NULL NULL NULL
-484 val_484 2008-04-08 NULL NULL NULL
-491 val_491 2008-04-08 NULL NULL NULL
-493 val_493 2008-04-08 NULL NULL NULL
-495 val_495 2008-04-08 NULL NULL NULL
-497 val_497 2008-04-08 NULL NULL NULL
-51 val_51 2008-04-08 NULL NULL NULL
-51 val_51 2008-04-08 NULL NULL NULL
-53 val_53 2008-04-08 NULL NULL NULL
-57 val_57 2008-04-08 NULL NULL NULL
-64 val_64 2008-04-08 NULL NULL NULL
-66 val_66 2008-04-08 NULL NULL NULL
-77 val_77 2008-04-08 NULL NULL NULL
-8 val_8 2008-04-08 NULL NULL NULL
-80 val_80 2008-04-08 NULL NULL NULL
-82 val_82 2008-04-08 NULL NULL NULL
-84 val_84 2008-04-08 NULL NULL NULL
-84 val_84 2008-04-08 NULL NULL NULL
-86 val_86 2008-04-08 NULL NULL NULL
-95 val_95 2008-04-08 NULL NULL NULL
-95 val_95 2008-04-08 NULL NULL NULL
-97 val_97 2008-04-08 NULL NULL NULL
-97 val_97 2008-04-08 NULL NULL NULL
-PREHOOK: query: explain
-select count(*) from tab s1 left outer join tab s2 on s1.key=s2.key join empty s3 on s1.key = s3.key
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select count(*) from tab s1 left outer join tab s2 on s1.key=s2.key join empty s3 on s1.key = s3.key
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Tez
- Edges:
- Reducer 2 <- Map 1 (SIMPLE_EDGE)
-#### A masked pattern was here ####
- Vertices:
- Map 1
- Map Operator Tree:
- TableScan
- alias: s2
- Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
- Map Operator Tree:
- TableScan
- alias: s3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Map Operator Tree:
- TableScan
- alias: s1
- Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
- Merge Join Operator
- condition map:
- Left Outer Join0 to 1
- Inner Join 0 to 2
- keys:
- 0 key (type: int)
- 1 key (type: int)
- 2 key (type: int)
- Statistics: Num rows: 532 Data size: 5645 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- aggregations: count()
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: bigint)
- Reducer 2
- Reduce Operator Tree:
- Group By Operator
- aggregations: count(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.TextInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select count(*) from tab s1 left outer join tab s2 on s1.key=s2.key join empty s3 on s1.key = s3.key
-PREHOOK: type: QUERY
-PREHOOK: Input: default@empty
-PREHOOK: Input: default@tab
-PREHOOK: Input: default@tab@ds=2008-04-08
-#### A masked pattern was here ####
-POSTHOOK: query: select count(*) from tab s1 left outer join tab s2 on s1.key=s2.key join empty s3 on s1.key = s3.key
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@empty
-POSTHOOK: Input: default@tab
-POSTHOOK: Input: default@tab@ds=2008-04-08
-#### A masked pattern was here ####
-0
-PREHOOK: query: explain
-select count(*) from tab s1 left outer join empty s2 on s1.key=s2.key join tab s3 on s1.key = s3.key
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select count(*) from tab s1 left outer join empty s2 on s1.key=s2.key join tab s3 on s1.key = s3.key
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Tez
- Edges:
- Reducer 2 <- Map 1 (SIMPLE_EDGE)
-#### A masked pattern was here ####
- Vertices:
- Map 1
- Map Operator Tree:
- TableScan
- alias: s2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Map Operator Tree:
- TableScan
- alias: s3
- Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
- Map Operator Tree:
- TableScan
- alias: s1
- Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
- Merge Join Operator
- condition map:
- Left Outer Join0 to 1
- Inner Join 0 to 2
- keys:
- 0 key (type: int)
- 1 key (type: int)
- 2 key (type: int)
- Statistics: Num rows: 532 Data size: 5645 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- aggregations: count()
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: bigint)
- Reducer 2
- Reduce Operator Tree:
- Group By Operator
- aggregations: count(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.TextInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select count(*) from tab s1 left outer join empty s2 on s1.key=s2.key join tab s3 on s1.key = s3.key
-PREHOOK: type: QUERY
-PREHOOK: Input: default@empty
-PREHOOK: Input: default@tab
-PREHOOK: Input: default@tab@ds=2008-04-08
-#### A masked pattern was here ####
-POSTHOOK: query: select count(*) from tab s1 left outer join empty s2 on s1.key=s2.key join tab s3 on s1.key = s3.key
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@empty
-POSTHOOK: Input: default@tab
-POSTHOOK: Input: default@tab@ds=2008-04-08
-#### A masked pattern was here ####
-480