You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by mm...@apache.org on 2016/07/07 07:05:28 UTC
[2/7] hive git commit: Revert "HIVE-13924: (Vectorization) Error
evaluating ((bool0 and (not bool1)) or (bool1 and (not bool0))) (Matt McCline,
reviewed by Gopal Vijayaraghavan)"
Revert "HIVE-13924: (Vectorization) Error evaluating ((bool0 and (not bool1)) or (bool1 and (not bool0))) (Matt McCline, reviewed by Gopal Vijayaraghavan)"
This reverts commit c9d7ea5f5e9c45c9a49605b00aa532aac064725a.
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/22335089
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/22335089
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/22335089
Branch: refs/heads/master
Commit: 223350894fe5aa653668e9f39e43218e514f2b24
Parents: 22df7a8
Author: Matt McCline <mm...@hortonworks.com>
Authored: Wed Jul 6 23:24:37 2016 -0700
Committer: Matt McCline <mm...@hortonworks.com>
Committed: Wed Jul 6 23:24:37 2016 -0700
----------------------------------------------------------------------
.../ql/exec/vector/VectorizationContext.java | 6 +-
.../ql/exec/vector/expressions/ColAndCol.java | 28 +-
.../ql/exec/vector/expressions/ColOrCol.java | 30 +-
.../vector_multi_and_or_projection.q | 81 ----
.../vector_multi_and_or_projection.q.out | 424 -------------------
5 files changed, 25 insertions(+), 544 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/22335089/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
index 9de1833..75c41b6 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
@@ -1126,10 +1126,8 @@ public class VectorizationContext {
} catch (Exception ex) {
throw new HiveException(ex);
} finally {
- if (childrenMode != VectorExpressionDescriptor.Mode.PROJECTION){
- for (VectorExpression ve : children) {
- ocm.freeOutputColumn(ve.getOutputColumn());
- }
+ for (VectorExpression ve : children) {
+ ocm.freeOutputColumn(ve.getOutputColumn());
}
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/22335089/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColAndCol.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColAndCol.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColAndCol.java
index 560de6f..48e3070 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColAndCol.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColAndCol.java
@@ -66,24 +66,18 @@ public class ColAndCol extends VectorExpression {
* We construct a simple index map to the child expression in mapToChildExpression.
*/
if (childExpressions != null && mapToChildExpression == null) {
- // Some vector child expressions can be omitted (e.g. if they are existing boolean columns).
+ //
mapToChildExpression = new int [colNums.length];
- Arrays.fill(mapToChildExpression, -1);
- for (int c = 0; c < childExpressions.length; c++) {
- VectorExpression ve = childExpressions[c];
+ int childIndex = 0;
+ for (int i = 0; i < childExpressions.length; i++) {
+ VectorExpression ve = childExpressions[i];
int outputColumn = ve.getOutputColumn();
- int i = 0;
- while (true) {
- if (i >= colNums.length) {
- throw new RuntimeException("Vectorized child expression output not found");
- }
- if (colNums[i] == outputColumn) {
- mapToChildExpression[i] = c;
- break;
- }
- i++;
+ while (outputColumn != colNums[childIndex]) {
+ mapToChildExpression[childIndex++] = -1;
}
+ mapToChildExpression[childIndex++] = i;
}
+ Preconditions.checkState(childIndex == colNums.length);
}
final int n = batch.size;
@@ -301,9 +295,9 @@ public class ColAndCol extends VectorExpression {
Preconditions.checkState(andSel == 0);
andRepeating = false;
-
+
if (andRepeatingIsNull) {
-
+
/*
* Since andRepeatingIsNull is true, we always set intermediateNulls when building
* andSel/andSelected when the next row is true.
@@ -326,7 +320,7 @@ public class ColAndCol extends VectorExpression {
}
andRepeatingIsNull = false;
} else {
-
+
/*
* Previous rounds were all true with no null child columns. Just build
* andSel/andSelected when the next row is true.
http://git-wip-us.apache.org/repos/asf/hive/blob/22335089/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColOrCol.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColOrCol.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColOrCol.java
index 2c84edb..db33281 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColOrCol.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColOrCol.java
@@ -69,22 +69,16 @@ public class ColOrCol extends VectorExpression {
if (childExpressions != null && mapToChildExpression == null) {
// Some vector child expressions can be omitted (e.g. if they are existing boolean columns).
mapToChildExpression = new int [colNums.length];
- Arrays.fill(mapToChildExpression, -1);
- for (int c = 0; c < childExpressions.length; c++) {
- VectorExpression ve = childExpressions[c];
+ int childIndex = 0;
+ for (int i = 0; i < childExpressions.length; i++) {
+ VectorExpression ve = childExpressions[i];
int outputColumn = ve.getOutputColumn();
- int i = 0;
- while (true) {
- if (i >= colNums.length) {
- throw new RuntimeException("Vectorized child expression output not found");
- }
- if (colNums[i] == outputColumn) {
- mapToChildExpression[i] = c;
- break;
- }
- i++;
+ while (outputColumn != colNums[childIndex]) {
+ mapToChildExpression[childIndex++] = -1;
}
+ mapToChildExpression[childIndex++] = i;
}
+ Preconditions.checkState(childIndex == colNums.length);
}
final int n = batch.size;
@@ -322,7 +316,7 @@ public class ColOrCol extends VectorExpression {
Preconditions.checkState(orSel == 0);
orRepeating = false;
-
+
if (orRepeatingHasNulls) {
/*
@@ -352,7 +346,7 @@ public class ColOrCol extends VectorExpression {
}
orRepeatingHasNulls = false;
} else {
-
+
/*
* Previous rounds were all false with no null child columns. Build
* orSel/orSelected when the next row is false. Otherwise, when the row is true, mark
@@ -385,9 +379,9 @@ public class ColOrCol extends VectorExpression {
Preconditions.checkState(orSel == 0);
orRepeating = false;
-
+
if (orRepeatingHasNulls) {
-
+
/*
* Since orRepeatingIsNull is true, we always set intermediateNulls when building
* orSel/orSelected when the next row is null or false. Otherwise, when the row
@@ -415,7 +409,7 @@ public class ColOrCol extends VectorExpression {
}
orRepeatingHasNulls = false;
} else {
-
+
/*
* Previous rounds were all true with no null child columns. Build
* andSel/andSelected when the next row is true; also build when next is null
http://git-wip-us.apache.org/repos/asf/hive/blob/22335089/ql/src/test/queries/clientpositive/vector_multi_and_or_projection.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/vector_multi_and_or_projection.q b/ql/src/test/queries/clientpositive/vector_multi_and_or_projection.q
deleted file mode 100644
index 5619fc4..0000000
--- a/ql/src/test/queries/clientpositive/vector_multi_and_or_projection.q
+++ /dev/null
@@ -1,81 +0,0 @@
-set hive.cli.print.header=true;
-set hive.explain.user=false;
-SET hive.auto.convert.join=true;
-set hive.fetch.task.conversion=none;
-set hive.mapred.mode=nonstrict;
-
--- SORT_QUERY_RESULTS
-
-create table vectortab2k(
- t tinyint,
- si smallint,
- i int,
- b bigint,
- f float,
- d double,
- dc decimal(38,18),
- bo boolean,
- s string,
- s2 string,
- ts timestamp,
- ts2 timestamp,
- dt date)
-ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE;
-
-LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k;
-
-CREATE TABLE scratch AS SELECT t, si, i, b, bo FROM vectortab2k;
-INSERT INTO TABLE scratch VALUES (NULL, NULL, NULL, NULL, NULL);
-
-CREATE TABLE vectortab2k_orc STORED AS ORC AS SELECT * FROM scratch;
-
-SET hive.vectorized.execution.enabled=true;
-
-EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT IF(((t < 0) OR (si > 0)),t,IF(((b > 0) OR (bo)),t*2,t*3)) AS `if_expr` FROM vectortab2k_orc
- order by if_expr) as q;
-
-SELECT sum(hash(*)) FROM
- (SELECT IF(((t < 0) OR (si > 0)),t,IF(((b > 0) OR (bo)),t*2,t*3)) AS `if_expr` FROM vectortab2k_orc
- order by if_expr) as q;
-
-
-SET hive.vectorized.execution.enabled=false;
-
-CREATE TABLE scratch_bool AS SELECT t % 4 = 0 as bool0, si % 2 = 1 as bool1, i % 5 = 3 as bool2, b % 3 = 2 as bool3, bo as bool4, true as bool5 FROM vectortab2k;
-INSERT INTO TABLE scratch_bool VALUES (NULL, NULL, NULL, NULL, NULL, NULL);
-
-CREATE TABLE bool_orc STORED AS ORC AS SELECT * FROM scratch_bool;
-
-SET hive.vectorized.execution.enabled=true;
-
-EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool0 as not_bool0, bool1, not bool1 as not_bool1, ((bool0 and (not bool1)) or (bool1 and (not bool0))) as multi_and_or_col from bool_orc
- order by bool0, bool1) as q;
-
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool0 as not_bool0, bool1, not bool1 as not_bool1, ((bool0 and (not bool1)) or (bool1 and (not bool0))) as multi_and_or_col from bool_orc
- order by bool0, bool1) as q;
-
-
-EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q;
-
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q;
-
-
-EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3)) or (bool2 and (not bool5))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q;
-
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3)) or (bool2 and (not bool5))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q;
http://git-wip-us.apache.org/repos/asf/hive/blob/22335089/ql/src/test/results/clientpositive/vector_multi_and_or_projection.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_multi_and_or_projection.q.out b/ql/src/test/results/clientpositive/vector_multi_and_or_projection.q.out
deleted file mode 100644
index d6aef91..0000000
--- a/ql/src/test/results/clientpositive/vector_multi_and_or_projection.q.out
+++ /dev/null
@@ -1,424 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
-
-create table vectortab2k(
- t tinyint,
- si smallint,
- i int,
- b bigint,
- f float,
- d double,
- dc decimal(38,18),
- bo boolean,
- s string,
- s2 string,
- ts timestamp,
- ts2 timestamp,
- dt date)
-ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@vectortab2k
-POSTHOOK: query: -- SORT_QUERY_RESULTS
-
-create table vectortab2k(
- t tinyint,
- si smallint,
- i int,
- b bigint,
- f float,
- d double,
- dc decimal(38,18),
- bo boolean,
- s string,
- s2 string,
- ts timestamp,
- ts2 timestamp,
- dt date)
-ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@vectortab2k
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@vectortab2k
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@vectortab2k
-PREHOOK: query: CREATE TABLE scratch AS SELECT t, si, i, b, bo FROM vectortab2k
-PREHOOK: type: CREATETABLE_AS_SELECT
-PREHOOK: Input: default@vectortab2k
-PREHOOK: Output: database:default
-PREHOOK: Output: default@scratch
-POSTHOOK: query: CREATE TABLE scratch AS SELECT t, si, i, b, bo FROM vectortab2k
-POSTHOOK: type: CREATETABLE_AS_SELECT
-POSTHOOK: Input: default@vectortab2k
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@scratch
-POSTHOOK: Lineage: scratch.b SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:b, type:bigint, comment:null), ]
-POSTHOOK: Lineage: scratch.bo SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:bo, type:boolean, comment:null), ]
-POSTHOOK: Lineage: scratch.i SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:i, type:int, comment:null), ]
-POSTHOOK: Lineage: scratch.si SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:si, type:smallint, comment:null), ]
-POSTHOOK: Lineage: scratch.t SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:t, type:tinyint, comment:null), ]
-t si i b bo
-PREHOOK: query: INSERT INTO TABLE scratch VALUES (NULL, NULL, NULL, NULL, NULL)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@scratch
-POSTHOOK: query: INSERT INTO TABLE scratch VALUES (NULL, NULL, NULL, NULL, NULL)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@scratch
-POSTHOOK: Lineage: scratch.b EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-POSTHOOK: Lineage: scratch.bo EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
-POSTHOOK: Lineage: scratch.i EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: scratch.si EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: scratch.t EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-_col0 _col1 _col2 _col3 _col4
-PREHOOK: query: CREATE TABLE vectortab2k_orc STORED AS ORC AS SELECT * FROM scratch
-PREHOOK: type: CREATETABLE_AS_SELECT
-PREHOOK: Input: default@scratch
-PREHOOK: Output: database:default
-PREHOOK: Output: default@vectortab2k_orc
-POSTHOOK: query: CREATE TABLE vectortab2k_orc STORED AS ORC AS SELECT * FROM scratch
-POSTHOOK: type: CREATETABLE_AS_SELECT
-POSTHOOK: Input: default@scratch
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@vectortab2k_orc
-POSTHOOK: Lineage: vectortab2k_orc.b SIMPLE [(scratch)scratch.FieldSchema(name:b, type:bigint, comment:null), ]
-POSTHOOK: Lineage: vectortab2k_orc.bo SIMPLE [(scratch)scratch.FieldSchema(name:bo, type:boolean, comment:null), ]
-POSTHOOK: Lineage: vectortab2k_orc.i SIMPLE [(scratch)scratch.FieldSchema(name:i, type:int, comment:null), ]
-POSTHOOK: Lineage: vectortab2k_orc.si SIMPLE [(scratch)scratch.FieldSchema(name:si, type:smallint, comment:null), ]
-POSTHOOK: Lineage: vectortab2k_orc.t SIMPLE [(scratch)scratch.FieldSchema(name:t, type:tinyint, comment:null), ]
-scratch.t scratch.si scratch.i scratch.b scratch.bo
-PREHOOK: query: EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT IF(((t < 0) OR (si > 0)),t,IF(((b > 0) OR (bo)),t*2,t*3)) AS `if_expr` FROM vectortab2k_orc
- order by if_expr) as q
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT IF(((t < 0) OR (si > 0)),t,IF(((b > 0) OR (bo)),t*2,t*3)) AS `if_expr` FROM vectortab2k_orc
- order by if_expr) as q
-POSTHOOK: type: QUERY
-Explain
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: vectortab2k_orc
- Statistics: Num rows: 2001 Data size: 45620 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: if(((t < 0) or (si > 0)), t, if(((b > 0) or bo), (UDFToInteger(t) * 2), (UDFToInteger(t) * 3))) (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2001 Data size: 45620 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Statistics: Num rows: 2001 Data size: 45620 Basic stats: COMPLETE Column stats: NONE
- Execution mode: vectorized
- Reduce Operator Tree:
- Select Operator
- expressions: hash(KEY.reducesinkkey0) (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2001 Data size: 45620 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- aggregations: sum(_col0)
- mode: complete
- 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.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT sum(hash(*)) FROM
- (SELECT IF(((t < 0) OR (si > 0)),t,IF(((b > 0) OR (bo)),t*2,t*3)) AS `if_expr` FROM vectortab2k_orc
- order by if_expr) as q
-PREHOOK: type: QUERY
-PREHOOK: Input: default@vectortab2k_orc
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT sum(hash(*)) FROM
- (SELECT IF(((t < 0) OR (si > 0)),t,IF(((b > 0) OR (bo)),t*2,t*3)) AS `if_expr` FROM vectortab2k_orc
- order by if_expr) as q
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@vectortab2k_orc
-#### A masked pattern was here ####
-c0
-40782
-PREHOOK: query: CREATE TABLE scratch_bool AS SELECT t % 4 = 0 as bool0, si % 2 = 1 as bool1, i % 5 = 3 as bool2, b % 3 = 2 as bool3, bo as bool4, true as bool5 FROM vectortab2k
-PREHOOK: type: CREATETABLE_AS_SELECT
-PREHOOK: Input: default@vectortab2k
-PREHOOK: Output: database:default
-PREHOOK: Output: default@scratch_bool
-POSTHOOK: query: CREATE TABLE scratch_bool AS SELECT t % 4 = 0 as bool0, si % 2 = 1 as bool1, i % 5 = 3 as bool2, b % 3 = 2 as bool3, bo as bool4, true as bool5 FROM vectortab2k
-POSTHOOK: type: CREATETABLE_AS_SELECT
-POSTHOOK: Input: default@vectortab2k
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@scratch_bool
-POSTHOOK: Lineage: scratch_bool.bool0 EXPRESSION [(vectortab2k)vectortab2k.FieldSchema(name:t, type:tinyint, comment:null), ]
-POSTHOOK: Lineage: scratch_bool.bool1 EXPRESSION [(vectortab2k)vectortab2k.FieldSchema(name:si, type:smallint, comment:null), ]
-POSTHOOK: Lineage: scratch_bool.bool2 EXPRESSION [(vectortab2k)vectortab2k.FieldSchema(name:i, type:int, comment:null), ]
-POSTHOOK: Lineage: scratch_bool.bool3 EXPRESSION [(vectortab2k)vectortab2k.FieldSchema(name:b, type:bigint, comment:null), ]
-POSTHOOK: Lineage: scratch_bool.bool4 SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:bo, type:boolean, comment:null), ]
-POSTHOOK: Lineage: scratch_bool.bool5 SIMPLE []
-bool0 bool1 bool2 bool3 bool4 bool5
-PREHOOK: query: INSERT INTO TABLE scratch_bool VALUES (NULL, NULL, NULL, NULL, NULL, NULL)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@scratch_bool
-POSTHOOK: query: INSERT INTO TABLE scratch_bool VALUES (NULL, NULL, NULL, NULL, NULL, NULL)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@scratch_bool
-POSTHOOK: Lineage: scratch_bool.bool0 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: scratch_bool.bool1 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: scratch_bool.bool2 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: scratch_bool.bool3 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-POSTHOOK: Lineage: scratch_bool.bool4 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
-POSTHOOK: Lineage: scratch_bool.bool5 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
-_col0 _col1 _col2 _col3 _col4 _col5
-PREHOOK: query: CREATE TABLE bool_orc STORED AS ORC AS SELECT * FROM scratch_bool
-PREHOOK: type: CREATETABLE_AS_SELECT
-PREHOOK: Input: default@scratch_bool
-PREHOOK: Output: database:default
-PREHOOK: Output: default@bool_orc
-POSTHOOK: query: CREATE TABLE bool_orc STORED AS ORC AS SELECT * FROM scratch_bool
-POSTHOOK: type: CREATETABLE_AS_SELECT
-POSTHOOK: Input: default@scratch_bool
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@bool_orc
-POSTHOOK: Lineage: bool_orc.bool0 SIMPLE [(scratch_bool)scratch_bool.FieldSchema(name:bool0, type:boolean, comment:null), ]
-POSTHOOK: Lineage: bool_orc.bool1 SIMPLE [(scratch_bool)scratch_bool.FieldSchema(name:bool1, type:boolean, comment:null), ]
-POSTHOOK: Lineage: bool_orc.bool2 SIMPLE [(scratch_bool)scratch_bool.FieldSchema(name:bool2, type:boolean, comment:null), ]
-POSTHOOK: Lineage: bool_orc.bool3 SIMPLE [(scratch_bool)scratch_bool.FieldSchema(name:bool3, type:boolean, comment:null), ]
-POSTHOOK: Lineage: bool_orc.bool4 SIMPLE [(scratch_bool)scratch_bool.FieldSchema(name:bool4, type:boolean, comment:null), ]
-POSTHOOK: Lineage: bool_orc.bool5 SIMPLE [(scratch_bool)scratch_bool.FieldSchema(name:bool5, type:boolean, comment:null), ]
-scratch_bool.bool0 scratch_bool.bool1 scratch_bool.bool2 scratch_bool.bool3 scratch_bool.bool4 scratch_bool.bool5
-PREHOOK: query: EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool0 as not_bool0, bool1, not bool1 as not_bool1, ((bool0 and (not bool1)) or (bool1 and (not bool0))) as multi_and_or_col from bool_orc
- order by bool0, bool1) as q
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool0 as not_bool0, bool1, not bool1 as not_bool1, ((bool0 and (not bool1)) or (bool1 and (not bool0))) as multi_and_or_col from bool_orc
- order by bool0, bool1) as q
-POSTHOOK: type: QUERY
-Explain
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: bool_orc
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: bool0 (type: boolean), (not bool0) (type: boolean), bool1 (type: boolean), (not bool1) (type: boolean), ((bool0 and (not bool1)) or (bool1 and (not bool0))) (type: boolean)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: boolean), _col2 (type: boolean)
- sort order: ++
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: boolean), _col3 (type: boolean), _col4 (type: boolean)
- Execution mode: vectorized
- Reduce Operator Tree:
- Select Operator
- expressions: hash(KEY.reducesinkkey0,VALUE._col0,KEY.reducesinkkey1,VALUE._col1,VALUE._col2) (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- aggregations: sum(_col0)
- mode: complete
- 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.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool0 as not_bool0, bool1, not bool1 as not_bool1, ((bool0 and (not bool1)) or (bool1 and (not bool0))) as multi_and_or_col from bool_orc
- order by bool0, bool1) as q
-PREHOOK: type: QUERY
-PREHOOK: Input: default@bool_orc
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool0 as not_bool0, bool1, not bool1 as not_bool1, ((bool0 and (not bool1)) or (bool1 and (not bool0))) as multi_and_or_col from bool_orc
- order by bool0, bool1) as q
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@bool_orc
-#### A masked pattern was here ####
-c0
-483512482
-PREHOOK: query: EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q
-POSTHOOK: type: QUERY
-Explain
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: bool_orc
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: bool0 (type: boolean), (not bool1) (type: boolean), bool2 (type: boolean), (not bool3) (type: boolean), ((bool0 and (not bool1)) or (bool2 and (not bool3))) (type: boolean)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: boolean), _col1 (type: boolean), _col2 (type: boolean), _col3 (type: boolean)
- sort order: ++++
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col4 (type: boolean)
- Execution mode: vectorized
- Reduce Operator Tree:
- Select Operator
- expressions: hash(KEY.reducesinkkey0,KEY.reducesinkkey1,KEY.reducesinkkey2,KEY.reducesinkkey3,VALUE._col0) (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- aggregations: sum(_col0)
- mode: complete
- 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.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q
-PREHOOK: type: QUERY
-PREHOOK: Input: default@bool_orc
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@bool_orc
-#### A masked pattern was here ####
-c0
-483274719
-PREHOOK: query: EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3)) or (bool2 and (not bool5))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3)) or (bool2 and (not bool5))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q
-POSTHOOK: type: QUERY
-Explain
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: bool_orc
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: bool0 (type: boolean), (not bool1) (type: boolean), bool2 (type: boolean), (not bool3) (type: boolean), ((bool0 and (not bool1)) or (bool2 and (not bool3)) or (bool2 and (not bool5))) (type: boolean)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: boolean), _col1 (type: boolean), _col2 (type: boolean), _col3 (type: boolean)
- sort order: ++++
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col4 (type: boolean)
- Execution mode: vectorized
- Reduce Operator Tree:
- Select Operator
- expressions: hash(KEY.reducesinkkey0,KEY.reducesinkkey1,KEY.reducesinkkey2,KEY.reducesinkkey3,VALUE._col0) (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2001 Data size: 45952 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- aggregations: sum(_col0)
- mode: complete
- 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.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3)) or (bool2 and (not bool5))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q
-PREHOOK: type: QUERY
-PREHOOK: Input: default@bool_orc
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT sum(hash(*)) FROM
- (SELECT bool0, not bool1 as not_bool1, bool2, not bool3 as not_bool3, ((bool0 and (not bool1)) or (bool2 and (not bool3)) or (bool2 and (not bool5))) as multi_and_or_col from bool_orc
- order by bool0, not_bool1, bool2, not_bool3) as q
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@bool_orc
-#### A masked pattern was here ####
-c0
-483274719