http://git-wip-us.apache.org/repos/asf/hive/blob/029e48b7/ql/src/test/results/clientpositive/spark/parquet_vectorization_13.q.out
----------------------------------------------------------------------
diff --git
a/ql/src/test/results/clientpositive/spark/parquet_vectorization_13.q.out
b/ql/src/test/results/clientpositive/spark/parquet_vectorization_13.q.out
new file mode 100644
index 0000000..292b644
--- /dev/null
+++ b/ql/src/test/results/clientpositive/spark/parquet_vectorization_13.q.out
@@ -0,0 +1,679 @@
+PREHOOK: query: EXPLAIN VECTORIZATION DETAIL
+SELECT cboolean1,
+ ctinyint,
+ ctimestamp1,
+ cfloat,
+ cstring1,
+ (-(ctinyint)) as c1,
+ MAX(ctinyint) as c2,
+ ((-(ctinyint)) + MAX(ctinyint)) as c3,
+ SUM(cfloat) as c4,
+ (SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) as c5,
+ (-(SUM(cfloat))) as c6,
+ (79.553 * cfloat) as c7,
+ STDDEV_POP(cfloat) as c8,
+ (-(SUM(cfloat))) as c9,
+ STDDEV_POP(ctinyint) as c10,
+ (((-(ctinyint)) + MAX(ctinyint)) - 10.175) as c11,
+ (-((-(SUM(cfloat))))) as c12,
+ (-26.28 / (-((-(SUM(cfloat)))))) as c13,
+ MAX(cfloat) as c14,
+ ((SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) / ctinyint) as c15,
+ MIN(ctinyint) as c16
+FROM alltypesparquet
+WHERE (((cfloat < 3569)
+ AND ((10.175 >= cdouble)
+ AND (cboolean1 != 1)))
+ OR ((ctimestamp1 > 11)
+ AND ((ctimestamp2 != 12)
+ AND (ctinyint < 9763215.5639))))
+GROUP BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1
+ORDER BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1, c1, c2, c3, c4,
c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16
+LIMIT 40
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN VECTORIZATION DETAIL
+SELECT cboolean1,
+ ctinyint,
+ ctimestamp1,
+ cfloat,
+ cstring1,
+ (-(ctinyint)) as c1,
+ MAX(ctinyint) as c2,
+ ((-(ctinyint)) + MAX(ctinyint)) as c3,
+ SUM(cfloat) as c4,
+ (SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) as c5,
+ (-(SUM(cfloat))) as c6,
+ (79.553 * cfloat) as c7,
+ STDDEV_POP(cfloat) as c8,
+ (-(SUM(cfloat))) as c9,
+ STDDEV_POP(ctinyint) as c10,
+ (((-(ctinyint)) + MAX(ctinyint)) - 10.175) as c11,
+ (-((-(SUM(cfloat))))) as c12,
+ (-26.28 / (-((-(SUM(cfloat)))))) as c13,
+ MAX(cfloat) as c14,
+ ((SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) / ctinyint) as c15,
+ MIN(ctinyint) as c16
+FROM alltypesparquet
+WHERE (((cfloat < 3569)
+ AND ((10.175 >= cdouble)
+ AND (cboolean1 != 1)))
+ OR ((ctimestamp1 > 11)
+ AND ((ctimestamp2 != 12)
+ AND (ctinyint < 9763215.5639))))
+GROUP BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1
+ORDER BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1, c1, c2, c3, c4,
c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16
+LIMIT 40
+POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+ enabled: true
+ enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Spark
+ Edges:
+ Reducer 2 <- Map 1 (GROUP, 2)
+ Reducer 3 <- Reducer 2 (SORT, 1)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: alltypesparquet
+ Statistics: Num rows: 12288 Data size: 147456 Basic stats:
COMPLETE Column stats: NONE
+ TableScan Vectorization:
+ native: true
+ vectorizationSchemaColumns: [0:ctinyint:tinyint,
1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float,
5:cdouble:double, 6:cstring1:string, 7:cstring2:string,
8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean,
11:cboolean2:boolean,
12:ROW__ID:struct<transactionid:bigint,bucketid:int,rowid:bigint>]
+ Filter Operator
+ Filter Vectorization:
+ className: VectorFilterOperator
+ native: true
+ predicateExpression: FilterExprOrExpr(children:
FilterExprAndExpr(children: FilterDoubleColLessDoubleScalar(col 4:float, val
3569.0), FilterDoubleScalarGreaterEqualDoubleColumn(val 10.175, col 5:double),
FilterLongColNotEqualLongScalar(col 10:boolean, val 1)),
FilterExprAndExpr(children: FilterDoubleColGreaterDoubleScalar(col 13:double,
val 11.0)(children: CastTimestampToDouble(col 8:timestamp) -> 13:double),
FilterDoubleColNotEqualDoubleScalar(col 13:double, val 12.0)(children:
CastTimestampToDouble(col 9:timestamp) -> 13:double),
FilterDecimalColLessDecimalScalar(col 14:decimal(11,4), val
9763215.5639)(children: CastLongToDecimal(col 0:tinyint) -> 14:decimal(11,4))))
+ predicate: (((UDFToDouble(ctimestamp1) > 11.0) and
(UDFToDouble(ctimestamp2) <> 12.0) and (CAST( ctinyint AS decimal(11,4)) <
9763215.5639)) or ((cfloat < 3569) and (10.175 >= cdouble) and (cboolean1 <>
1))) (type: boolean)
+ Statistics: Num rows: 2730 Data size: 32760 Basic stats:
COMPLETE Column stats: NONE
+ Select Operator
+ expressions: ctinyint (type: tinyint), cfloat (type:
float), cstring1 (type: string), ctimestamp1 (type: timestamp), cboolean1
(type: boolean)
+ outputColumnNames: ctinyint, cfloat, cstring1,
ctimestamp1, cboolean1
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [0, 4, 6, 8, 10]
+ Statistics: Num rows: 2730 Data size: 32760 Basic stats:
COMPLETE Column stats: NONE
+ Group By Operator
+ aggregations: max(ctinyint), sum(cfloat),
stddev_pop(cfloat), stddev_pop(ctinyint), max(cfloat), min(ctinyint)
+ Group By Vectorization:
+ aggregators: VectorUDAFMaxLong(col 0:tinyint) ->
tinyint, VectorUDAFSumDouble(col 4:float) -> double, VectorUDAFVarDouble(col
4:float) -> struct<count:bigint,sum:double,variance:double> aggregation:
stddev_pop, VectorUDAFVarLong(col 0:tinyint) ->
struct<count:bigint,sum:double,variance:double> aggregation: stddev_pop,
VectorUDAFMaxDouble(col 4:float) -> float, VectorUDAFMinLong(col 0:tinyint) ->
tinyint
+ className: VectorGroupByOperator
+ groupByMode: HASH
+ keyExpressions: col 10:boolean, col 0:tinyint, col
8:timestamp, col 4:float, col 6:string
+ native: false
+ vectorProcessingMode: HASH
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 5]
+ keys: cboolean1 (type: boolean), ctinyint (type:
tinyint), ctimestamp1 (type: timestamp), cfloat (type: float), cstring1 (type:
string)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4,
_col5, _col6, _col7, _col8, _col9, _col10
+ Statistics: Num rows: 2730 Data size: 32760 Basic
stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: boolean), _col1 (type:
tinyint), _col2 (type: timestamp), _col3 (type: float), _col4 (type: string)
+ sort order: +++++
+ Map-reduce partition columns: _col0 (type: boolean),
_col1 (type: tinyint), _col2 (type: timestamp), _col3 (type: float), _col4
(type: string)
+ Reduce Sink Vectorization:
+ className: VectorReduceSinkMultiKeyOperator
+ keyColumnNums: [0, 1, 2, 3, 4]
+ native: true
+ nativeConditionsMet:
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine
spark IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS
true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+ valueColumnNums: [5, 6, 7, 8, 9, 10]
+ Statistics: Num rows: 2730 Data size: 32760 Basic
stats: COMPLETE Column stats: NONE
+ value expressions: _col5 (type: tinyint), _col6
(type: double), _col7 (type: struct<count:bigint,sum:double,variance:double>),
_col8 (type: struct<count:bigint,sum:double,variance:double>), _col9 (type:
float), _col10 (type: tinyint)
+ Execution mode: vectorized
+ Map Vectorization:
+ enabled: true
+ enabledConditionsMet:
hive.vectorized.use.vectorized.input.format IS true
+ inputFormatFeatureSupport: []
+ featureSupportInUse: []
+ inputFileFormats:
org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 12
+ includeColumns: [0, 4, 5, 6, 8, 9, 10]
+ dataColumns: ctinyint:tinyint, csmallint:smallint,
cint:int, cbigint:bigint, cfloat:float, cdouble:double, cstring1:string,
cstring2:string, ctimestamp1:timestamp, ctimestamp2:timestamp,
cboolean1:boolean, cboolean2:boolean
+ partitionColumnCount: 0
+ scratchColumnTypeNames: [double, decimal(11,4)]
+ Reducer 2
+ Execution mode: vectorized
+ Reduce Vectorization:
+ enabled: true
+ enableConditionsMet: hive.vectorized.execution.reduce.enabled
IS true, hive.execution.engine spark IN [tez, spark] IS true
+ reduceColumnNullOrder: aaaaa
+ reduceColumnSortOrder: +++++
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 11
+ dataColumns: KEY._col0:boolean, KEY._col1:tinyint,
KEY._col2:timestamp, KEY._col3:float, KEY._col4:string, VALUE._col0:tinyint,
VALUE._col1:double,
VALUE._col2:struct<count:bigint,sum:double,variance:double>,
VALUE._col3:struct<count:bigint,sum:double,variance:double>, VALUE._col4:float,
VALUE._col5:tinyint
+ partitionColumnCount: 0
+ scratchColumnTypeNames: []
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: max(VALUE._col0), sum(VALUE._col1),
stddev_pop(VALUE._col2), stddev_pop(VALUE._col3), max(VALUE._col4),
min(VALUE._col5)
+ Group By Vectorization:
+ aggregators: VectorUDAFMaxLong(col 5:tinyint) -> tinyint,
VectorUDAFSumDouble(col 6:double) -> double, VectorUDAFVarFinal(col
7:struct<count:bigint,sum:double,variance:double>) -> double aggregation:
stddev_pop, VectorUDAFVarFinal(col
8:struct<count:bigint,sum:double,variance:double>) -> double aggregation:
stddev_pop, VectorUDAFMaxDouble(col 9:float) -> float, VectorUDAFMinLong(col
10:tinyint) -> tinyint
+ className: VectorGroupByOperator
+ groupByMode: MERGEPARTIAL
+ keyExpressions: col 0:boolean, col 1:tinyint, col
2:timestamp, col 3:float, col 4:string
+ native: false
+ vectorProcessingMode: MERGE_PARTIAL
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 5]
+ keys: KEY._col0 (type: boolean), KEY._col1 (type: tinyint),
KEY._col2 (type: timestamp), KEY._col3 (type: float), KEY._col4 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5,
_col6, _col7, _col8, _col9, _col10
+ Statistics: Num rows: 1365 Data size: 16380 Basic stats:
COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: boolean), _col1 (type: tinyint),
_col2 (type: timestamp), _col3 (type: float), _col4 (type: string), (- _col1)
(type: tinyint), _col5 (type: tinyint), ((- _col1) + _col5) (type: tinyint),
_col6 (type: double), (_col6 * UDFToDouble(((- _col1) + _col5))) (type:
double), (- _col6) (type: double), (79.553 * _col3) (type: float), _col7 (type:
double), (- _col6) (type: double), _col8 (type: double), (CAST( ((- _col1) +
_col5) AS decimal(3,0)) - 10.175) (type: decimal(7,3)), (- (- _col6)) (type:
double), (-26.28 / (- (- _col6))) (type: double), _col9 (type: float), ((_col6
* UDFToDouble(((- _col1) + _col5))) / UDFToDouble(_col1)) (type: double),
_col10 (type: tinyint)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5,
_col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15,
_col16, _col17, _col18, _col19, _col20
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 11, 5, 13, 6,
16, 15, 17, 7, 18, 8, 20, 22, 21, 9, 25, 10]
+ selectExpressions: LongColUnaryMinus(col 1:tinyint) ->
11:tinyint, LongColAddLongColumn(col 12:tinyint, col 5:tinyint)(children:
LongColUnaryMinus(col 1:tinyint) -> 12:tinyint) -> 13:tinyint,
DoubleColMultiplyDoubleColumn(col 6:double, col 15:double)(children:
CastLongToDouble(col 14:tinyint)(children: LongColAddLongColumn(col 12:tinyint,
col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 12:tinyint) ->
14:tinyint) -> 15:double) -> 16:double, DoubleColUnaryMinus(col 6:double) ->
15:double, DoubleScalarMultiplyDoubleColumn(val 79.5530014038086, col 3:float)
-> 17:float, DoubleColUnaryMinus(col 6:double) -> 18:double,
DecimalColSubtractDecimalScalar(col 19:decimal(3,0), val 10.175)(children:
CastLongToDecimal(col 14:tinyint)(children: LongColAddLongColumn(col
12:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) ->
12:tinyint) -> 14:tinyint) -> 19:decimal(3,0)) -> 20:decimal(7,3),
DoubleColUnaryMinus(col 21:double)(children: DoubleColUna
ryMinus(col 6:double) -> 21:double) -> 22:double,
DoubleScalarDivideDoubleColumn(val -26.28, col 23:double)(children:
DoubleColUnaryMinus(col 21:double)(children: DoubleColUnaryMinus(col 6:double)
-> 21:double) -> 23:double) -> 21:double, DoubleColDivideDoubleColumn(col
24:double, col 23:double)(children: DoubleColMultiplyDoubleColumn(col 6:double,
col 23:double)(children: CastLongToDouble(col 14:tinyint)(children:
LongColAddLongColumn(col 12:tinyint, col 5:tinyint)(children:
LongColUnaryMinus(col 1:tinyint) -> 12:tinyint) -> 14:tinyint) -> 23:double) ->
24:double, CastLongToDouble(col 1:tinyint) -> 23:double) -> 25:double
+ Statistics: Num rows: 1365 Data size: 16380 Basic stats:
COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: boolean), _col1 (type:
tinyint), _col2 (type: timestamp), _col3 (type: float), _col4 (type: string),
_col5 (type: tinyint), _col6 (type: tinyint), _col7 (type: tinyint), _col8
(type: double), _col9 (type: double), _col10 (type: double), _col11 (type:
float), _col12 (type: double), _col13 (type: double), _col14 (type: double),
_col15 (type: decimal(7,3)), _col16 (type: double), _col17 (type: double),
_col18 (type: float), _col19 (type: double), _col20 (type: tinyint)
+ sort order: +++++++++++++++++++++
+ Reduce Sink Vectorization:
+ className: VectorReduceSinkObjectHashOperator
+ keyColumnNums: [0, 1, 2, 3, 4, 11, 5, 13, 6, 16, 15,
17, 7, 18, 8, 20, 22, 21, 9, 25, 10]
+ native: true
+ nativeConditionsMet:
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine
spark IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS
true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+ valueColumnNums: []
+ Statistics: Num rows: 1365 Data size: 16380 Basic stats:
COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.1
+ Reducer 3
+ Execution mode: vectorized
+ Reduce Vectorization:
+ enabled: true
+ enableConditionsMet: hive.vectorized.execution.reduce.enabled
IS true, hive.execution.engine spark IN [tez, spark] IS true
+ reduceColumnNullOrder: aaaaaaaaaaaaaaaaaaaaa
+ reduceColumnSortOrder: +++++++++++++++++++++
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 21
+ dataColumns: KEY.reducesinkkey0:boolean,
KEY.reducesinkkey1:tinyint, KEY.reducesinkkey2:timestamp,
KEY.reducesinkkey3:float, KEY.reducesinkkey4:string,
KEY.reducesinkkey5:tinyint, KEY.reducesinkkey6:tinyint,
KEY.reducesinkkey7:tinyint, KEY.reducesinkkey8:double,
KEY.reducesinkkey9:double, KEY.reducesinkkey10:double,
KEY.reducesinkkey11:float, KEY.reducesinkkey12:double,
KEY.reducesinkkey13:double, KEY.reducesinkkey14:double,
KEY.reducesinkkey15:decimal(7,3), KEY.reducesinkkey16:double,
KEY.reducesinkkey17:double, KEY.reducesinkkey18:float,
KEY.reducesinkkey19:double, KEY.reducesinkkey20:tinyint
+ partitionColumnCount: 0
+ scratchColumnTypeNames: []
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: boolean),
KEY.reducesinkkey1 (type: tinyint), KEY.reducesinkkey2 (type: timestamp),
KEY.reducesinkkey3 (type: float), KEY.reducesinkkey4 (type: string),
KEY.reducesinkkey5 (type: tinyint), KEY.reducesinkkey6 (type: tinyint),
KEY.reducesinkkey7 (type: tinyint), KEY.reducesinkkey8 (type: double),
KEY.reducesinkkey9 (type: double), KEY.reducesinkkey10 (type: double),
KEY.reducesinkkey11 (type: float), KEY.reducesinkkey12 (type: double),
KEY.reducesinkkey10 (type: double), KEY.reducesinkkey14 (type: double),
KEY.reducesinkkey15 (type: decimal(7,3)), KEY.reducesinkkey16 (type: double),
KEY.reducesinkkey17 (type: double), KEY.reducesinkkey18 (type: float),
KEY.reducesinkkey19 (type: double), KEY.reducesinkkey20 (type: tinyint)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5,
_col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15,
_col16, _col17, _col18, _col19, _col20
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 10, 14, 15, 16, 17, 18, 19, 20]
+ Statistics: Num rows: 1365 Data size: 16380 Basic stats:
COMPLETE Column stats: NONE
+ Limit
+ Number of rows: 40
+ Limit Vectorization:
+ className: VectorLimitOperator
+ native: true
+ Statistics: Num rows: 40 Data size: 480 Basic stats:
COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ File Sink Vectorization:
+ className: VectorFileSinkOperator
+ native: false
+ Statistics: Num rows: 40 Data size: 480 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: 40
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: SELECT cboolean1,
+ ctinyint,
+ ctimestamp1,
+ cfloat,
+ cstring1,
+ (-(ctinyint)) as c1,
+ MAX(ctinyint) as c2,
+ ((-(ctinyint)) + MAX(ctinyint)) as c3,
+ SUM(cfloat) as c4,
+ (SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) as c5,
+ (-(SUM(cfloat))) as c6,
+ (79.553 * cfloat) as c7,
+ STDDEV_POP(cfloat) as c8,
+ (-(SUM(cfloat))) as c9,
+ STDDEV_POP(ctinyint) as c10,
+ (((-(ctinyint)) + MAX(ctinyint)) - 10.175) as c11,
+ (-((-(SUM(cfloat))))) as c12,
+ (-26.28 / (-((-(SUM(cfloat)))))) as c13,
+ MAX(cfloat) as c14,
+ ((SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) / ctinyint) as c15,
+ MIN(ctinyint) as c16
+FROM alltypesparquet
+WHERE (((cfloat < 3569)
+ AND ((10.175 >= cdouble)
+ AND (cboolean1 != 1)))
+ OR ((ctimestamp1 > 11)
+ AND ((ctimestamp2 != 12)
+ AND (ctinyint < 9763215.5639))))
+GROUP BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1
+ORDER BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1, c1, c2, c3, c4,
c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16
+LIMIT 40
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesparquet
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cboolean1,
+ ctinyint,
+ ctimestamp1,
+ cfloat,
+ cstring1,
+ (-(ctinyint)) as c1,
+ MAX(ctinyint) as c2,
+ ((-(ctinyint)) + MAX(ctinyint)) as c3,
+ SUM(cfloat) as c4,
+ (SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) as c5,
+ (-(SUM(cfloat))) as c6,
+ (79.553 * cfloat) as c7,
+ STDDEV_POP(cfloat) as c8,
+ (-(SUM(cfloat))) as c9,
+ STDDEV_POP(ctinyint) as c10,
+ (((-(ctinyint)) + MAX(ctinyint)) - 10.175) as c11,
+ (-((-(SUM(cfloat))))) as c12,
+ (-26.28 / (-((-(SUM(cfloat)))))) as c13,
+ MAX(cfloat) as c14,
+ ((SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) / ctinyint) as c15,
+ MIN(ctinyint) as c16
+FROM alltypesparquet
+WHERE (((cfloat < 3569)
+ AND ((10.175 >= cdouble)
+ AND (cboolean1 != 1)))
+ OR ((ctimestamp1 > 11)
+ AND ((ctimestamp2 != 12)
+ AND (ctinyint < 9763215.5639))))
+GROUP BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1
+ORDER BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1, c1, c2, c3, c4,
c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16
+LIMIT 40
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesparquet
+#### A masked pattern was here ####
+NULL -55 1969-12-31 16:00:11.38 -55.0 NULL 55 -55 0
-55.0 -0.0 55.0 -4375.415 0.0 55.0 0.0 -10.175 -55.0
0.47781818181818186 -55.0 0.0 -55
+NULL -55 1969-12-31 16:00:11.751 -55.0 NULL 55 -55 0
-55.0 -0.0 55.0 -4375.415 0.0 55.0 0.0 -10.175 -55.0
0.47781818181818186 -55.0 0.0 -55
+NULL -56 1969-12-31 16:00:13.602 -56.0 NULL 56 -56 0
-56.0 -0.0 56.0 -4454.9683 0.0 56.0 0.0 -10.175 -56.0
0.4692857142857143 -56.0 0.0 -56
+NULL -56 1969-12-31 16:00:13.958 -56.0 NULL 56 -56 0
-56.0 -0.0 56.0 -4454.9683 0.0 56.0 0.0 -10.175 -56.0
0.4692857142857143 -56.0 0.0 -56
+NULL -56 1969-12-31 16:00:15.038 -56.0 NULL 56 -56 0
-56.0 -0.0 56.0 -4454.9683 0.0 56.0 0.0 -10.175 -56.0
0.4692857142857143 -56.0 0.0 -56
+NULL -57 1969-12-31 16:00:11.451 -57.0 NULL 57 -57 0
-57.0 -0.0 57.0 -4534.521 0.0 57.0 0.0 -10.175 -57.0
0.4610526315789474 -57.0 0.0 -57
+NULL -57 1969-12-31 16:00:11.883 -57.0 NULL 57 -57 0
-57.0 -0.0 57.0 -4534.521 0.0 57.0 0.0 -10.175 -57.0
0.4610526315789474 -57.0 0.0 -57
+NULL -57 1969-12-31 16:00:12.626 -57.0 NULL 57 -57 0
-57.0 -0.0 57.0 -4534.521 0.0 57.0 0.0 -10.175 -57.0
0.4610526315789474 -57.0 0.0 -57
+NULL -57 1969-12-31 16:00:13.578 -57.0 NULL 57 -57 0
-57.0 -0.0 57.0 -4534.521 0.0 57.0 0.0 -10.175 -57.0
0.4610526315789474 -57.0 0.0 -57
+NULL -57 1969-12-31 16:00:15.39 -57.0 NULL 57 -57 0
-57.0 -0.0 57.0 -4534.521 0.0 57.0 0.0 -10.175 -57.0
0.4610526315789474 -57.0 0.0 -57
+NULL -58 1969-12-31 16:00:12.065 -58.0 NULL 58 -58 0
-58.0 -0.0 58.0 -4614.074 0.0 58.0 0.0 -10.175 -58.0
0.4531034482758621 -58.0 0.0 -58
+NULL -58 1969-12-31 16:00:12.683 -58.0 NULL 58 -58 0
-58.0 -0.0 58.0 -4614.074 0.0 58.0 0.0 -10.175 -58.0
0.4531034482758621 -58.0 0.0 -58
+NULL -58 1969-12-31 16:00:12.948 -58.0 NULL 58 -58 0
-58.0 -0.0 58.0 -4614.074 0.0 58.0 0.0 -10.175 -58.0
0.4531034482758621 -58.0 0.0 -58
+NULL -58 1969-12-31 16:00:14.066 -58.0 NULL 58 -58 0
-58.0 -0.0 58.0 -4614.074 0.0 58.0 0.0 -10.175 -58.0
0.4531034482758621 -58.0 0.0 -58
+NULL -58 1969-12-31 16:00:15.658 -58.0 NULL 58 -58 0
-58.0 -0.0 58.0 -4614.074 0.0 58.0 0.0 -10.175 -58.0
0.4531034482758621 -58.0 0.0 -58
+NULL -59 1969-12-31 16:00:12.008 -59.0 NULL 59 -59 0
-59.0 -0.0 59.0 -4693.627 0.0 59.0 0.0 -10.175 -59.0
0.44542372881355935 -59.0 0.0 -59
+NULL -59 1969-12-31 16:00:13.15 -59.0 NULL 59 -59 0
-59.0 -0.0 59.0 -4693.627 0.0 59.0 0.0 -10.175 -59.0
0.44542372881355935 -59.0 0.0 -59
+NULL -59 1969-12-31 16:00:13.625 -59.0 NULL 59 -59 0
-59.0 -0.0 59.0 -4693.627 0.0 59.0 0.0 -10.175 -59.0
0.44542372881355935 -59.0 0.0 -59
+NULL -59 1969-12-31 16:00:15.296 -59.0 NULL 59 -59 0
-59.0 -0.0 59.0 -4693.627 0.0 59.0 0.0 -10.175 -59.0
0.44542372881355935 -59.0 0.0 -59
+NULL -59 1969-12-31 16:00:15.861 -59.0 NULL 59 -59 0
-59.0 -0.0 59.0 -4693.627 0.0 59.0 0.0 -10.175 -59.0
0.44542372881355935 -59.0 0.0 -59
+NULL -60 1969-12-31 16:00:11.504 -60.0 NULL 60 -60 0
-60.0 -0.0 60.0 -4773.18 0.0 60.0 0.0 -10.175 -60.0
0.438 -60.0 0.0 -60
+NULL -60 1969-12-31 16:00:11.641 -60.0 NULL 60 -60 0
-60.0 -0.0 60.0 -4773.18 0.0 60.0 0.0 -10.175 -60.0
0.438 -60.0 0.0 -60
+NULL -60 1969-12-31 16:00:11.996 -60.0 NULL 60 -60 0
-60.0 -0.0 60.0 -4773.18 0.0 60.0 0.0 -10.175 -60.0
0.438 -60.0 0.0 -60
+NULL -60 1969-12-31 16:00:12.779 -60.0 NULL 60 -60 0
-60.0 -0.0 60.0 -4773.18 0.0 60.0 0.0 -10.175 -60.0
0.438 -60.0 0.0 -60
+NULL -61 1969-12-31 16:00:11.842 -61.0 NULL 61 -61 0
-61.0 -0.0 61.0 -4852.733 0.0 61.0 0.0 -10.175 -61.0
0.4308196721311476 -61.0 0.0 -61
+NULL -61 1969-12-31 16:00:12.454 -61.0 NULL 61 -61 0
-61.0 -0.0 61.0 -4852.733 0.0 61.0 0.0 -10.175 -61.0
0.4308196721311476 -61.0 0.0 -61
+NULL -61 1969-12-31 16:00:14.192 -61.0 NULL 61 -61 0
-61.0 -0.0 61.0 -4852.733 0.0 61.0 0.0 -10.175 -61.0
0.4308196721311476 -61.0 0.0 -61
+NULL -61 1969-12-31 16:00:16.558 -61.0 NULL 61 -61 0
-61.0 -0.0 61.0 -4852.733 0.0 61.0 0.0 -10.175 -61.0
0.4308196721311476 -61.0 0.0 -61
+NULL -62 1969-12-31 16:00:12.388 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:12.591 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:14.154 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:14.247 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:14.517 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:14.965 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -63 1969-12-31 16:00:11.946 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -63 1969-12-31 16:00:12.188 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -63 1969-12-31 16:00:15.436 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -64 1969-12-31 16:00:11.912 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+NULL -64 1969-12-31 16:00:12.339 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+NULL -64 1969-12-31 16:00:13.274 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+PREHOOK: query: EXPLAIN VECTORIZATION EXPRESSION
+SELECT cboolean1,
+ ctinyint,
+ ctimestamp1,
+ cfloat,
+ cstring1,
+ (-(ctinyint)) as c1,
+ MAX(ctinyint) as c2,
+ ((-(ctinyint)) + MAX(ctinyint)) as c3,
+ SUM(cfloat) as c4,
+ (SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) as c5,
+ (-(SUM(cfloat))) as c6,
+ (79.553 * cfloat) as c7,
+ STDDEV_POP(cfloat) as c8,
+ (-(SUM(cfloat))) as c9,
+ STDDEV_POP(ctinyint) as c10,
+ (((-(ctinyint)) + MAX(ctinyint)) - 10.175) as c11,
+ (-((-(SUM(cfloat))))) as c12,
+ (-26.28 / (-((-(SUM(cfloat)))))) as c13,
+ MAX(cfloat) as c14,
+ ((SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) / ctinyint) as c15,
+ MIN(ctinyint) as c16
+FROM alltypesparquet
+WHERE (((cfloat < 3569)
+ AND ((10.175 >= cdouble)
+ AND (cboolean1 != 1)))
+ OR ((ctimestamp1 > -1.388)
+ AND ((ctimestamp2 != -1.3359999999999999)
+ AND (ctinyint < 9763215.5639))))
+GROUP BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1
+ORDER BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1, c1, c2, c3, c4,
c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16
+LIMIT 40
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN VECTORIZATION EXPRESSION
+SELECT cboolean1,
+ ctinyint,
+ ctimestamp1,
+ cfloat,
+ cstring1,
+ (-(ctinyint)) as c1,
+ MAX(ctinyint) as c2,
+ ((-(ctinyint)) + MAX(ctinyint)) as c3,
+ SUM(cfloat) as c4,
+ (SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) as c5,
+ (-(SUM(cfloat))) as c6,
+ (79.553 * cfloat) as c7,
+ STDDEV_POP(cfloat) as c8,
+ (-(SUM(cfloat))) as c9,
+ STDDEV_POP(ctinyint) as c10,
+ (((-(ctinyint)) + MAX(ctinyint)) - 10.175) as c11,
+ (-((-(SUM(cfloat))))) as c12,
+ (-26.28 / (-((-(SUM(cfloat)))))) as c13,
+ MAX(cfloat) as c14,
+ ((SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) / ctinyint) as c15,
+ MIN(ctinyint) as c16
+FROM alltypesparquet
+WHERE (((cfloat < 3569)
+ AND ((10.175 >= cdouble)
+ AND (cboolean1 != 1)))
+ OR ((ctimestamp1 > -1.388)
+ AND ((ctimestamp2 != -1.3359999999999999)
+ AND (ctinyint < 9763215.5639))))
+GROUP BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1
+ORDER BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1, c1, c2, c3, c4,
c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16
+LIMIT 40
+POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+ enabled: true
+ enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Spark
+ Edges:
+ Reducer 2 <- Map 1 (GROUP, 2)
+ Reducer 3 <- Reducer 2 (SORT, 1)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: alltypesparquet
+ Statistics: Num rows: 12288 Data size: 147456 Basic stats:
COMPLETE Column stats: NONE
+ TableScan Vectorization:
+ native: true
+ Filter Operator
+ Filter Vectorization:
+ className: VectorFilterOperator
+ native: true
+ predicateExpression: FilterExprOrExpr(children:
FilterExprAndExpr(children: FilterDoubleColLessDoubleScalar(col 4:float, val
3569.0), FilterDoubleScalarGreaterEqualDoubleColumn(val 10.175, col 5:double),
FilterLongColNotEqualLongScalar(col 10:boolean, val 1)),
FilterExprAndExpr(children: FilterDoubleColGreaterDoubleScalar(col 13:double,
val -1.388)(children: CastTimestampToDouble(col 8:timestamp) -> 13:double),
FilterDoubleColNotEqualDoubleScalar(col 13:double, val
-1.3359999999999999)(children: CastTimestampToDouble(col 9:timestamp) ->
13:double), FilterDecimalColLessDecimalScalar(col 14:decimal(11,4), val
9763215.5639)(children: CastLongToDecimal(col 0:tinyint) -> 14:decimal(11,4))))
+ predicate: (((UDFToDouble(ctimestamp1) > -1.388) and
(UDFToDouble(ctimestamp2) <> -1.3359999999999999) and (CAST( ctinyint AS
decimal(11,4)) < 9763215.5639)) or ((cfloat < 3569) and (10.175 >= cdouble) and
(cboolean1 <> 1))) (type: boolean)
+ Statistics: Num rows: 2730 Data size: 32760 Basic stats:
COMPLETE Column stats: NONE
+ Select Operator
+ expressions: ctinyint (type: tinyint), cfloat (type:
float), cstring1 (type: string), ctimestamp1 (type: timestamp), cboolean1
(type: boolean)
+ outputColumnNames: ctinyint, cfloat, cstring1,
ctimestamp1, cboolean1
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [0, 4, 6, 8, 10]
+ Statistics: Num rows: 2730 Data size: 32760 Basic stats:
COMPLETE Column stats: NONE
+ Group By Operator
+ aggregations: max(ctinyint), sum(cfloat),
stddev_pop(cfloat), stddev_pop(ctinyint), max(cfloat), min(ctinyint)
+ Group By Vectorization:
+ aggregators: VectorUDAFMaxLong(col 0:tinyint) ->
tinyint, VectorUDAFSumDouble(col 4:float) -> double, VectorUDAFVarDouble(col
4:float) -> struct<count:bigint,sum:double,variance:double> aggregation:
stddev_pop, VectorUDAFVarLong(col 0:tinyint) ->
struct<count:bigint,sum:double,variance:double> aggregation: stddev_pop,
VectorUDAFMaxDouble(col 4:float) -> float, VectorUDAFMinLong(col 0:tinyint) ->
tinyint
+ className: VectorGroupByOperator
+ groupByMode: HASH
+ keyExpressions: col 10:boolean, col 0:tinyint, col
8:timestamp, col 4:float, col 6:string
+ native: false
+ vectorProcessingMode: HASH
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 5]
+ keys: cboolean1 (type: boolean), ctinyint (type:
tinyint), ctimestamp1 (type: timestamp), cfloat (type: float), cstring1 (type:
string)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4,
_col5, _col6, _col7, _col8, _col9, _col10
+ Statistics: Num rows: 2730 Data size: 32760 Basic
stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: boolean), _col1 (type:
tinyint), _col2 (type: timestamp), _col3 (type: float), _col4 (type: string)
+ sort order: +++++
+ Map-reduce partition columns: _col0 (type: boolean),
_col1 (type: tinyint), _col2 (type: timestamp), _col3 (type: float), _col4
(type: string)
+ Reduce Sink Vectorization:
+ className: VectorReduceSinkMultiKeyOperator
+ native: true
+ nativeConditionsMet:
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine
spark IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS
true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+ Statistics: Num rows: 2730 Data size: 32760 Basic
stats: COMPLETE Column stats: NONE
+ value expressions: _col5 (type: tinyint), _col6
(type: double), _col7 (type: struct<count:bigint,sum:double,variance:double>),
_col8 (type: struct<count:bigint,sum:double,variance:double>), _col9 (type:
float), _col10 (type: tinyint)
+ Execution mode: vectorized
+ Map Vectorization:
+ enabled: true
+ enabledConditionsMet:
hive.vectorized.use.vectorized.input.format IS true
+ inputFormatFeatureSupport: []
+ featureSupportInUse: []
+ inputFileFormats:
org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ Reducer 2
+ Execution mode: vectorized
+ Reduce Vectorization:
+ enabled: true
+ enableConditionsMet: hive.vectorized.execution.reduce.enabled
IS true, hive.execution.engine spark IN [tez, spark] IS true
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: max(VALUE._col0), sum(VALUE._col1),
stddev_pop(VALUE._col2), stddev_pop(VALUE._col3), max(VALUE._col4),
min(VALUE._col5)
+ Group By Vectorization:
+ aggregators: VectorUDAFMaxLong(col 5:tinyint) -> tinyint,
VectorUDAFSumDouble(col 6:double) -> double, VectorUDAFVarFinal(col
7:struct<count:bigint,sum:double,variance:double>) -> double aggregation:
stddev_pop, VectorUDAFVarFinal(col
8:struct<count:bigint,sum:double,variance:double>) -> double aggregation:
stddev_pop, VectorUDAFMaxDouble(col 9:float) -> float, VectorUDAFMinLong(col
10:tinyint) -> tinyint
+ className: VectorGroupByOperator
+ groupByMode: MERGEPARTIAL
+ keyExpressions: col 0:boolean, col 1:tinyint, col
2:timestamp, col 3:float, col 4:string
+ native: false
+ vectorProcessingMode: MERGE_PARTIAL
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 5]
+ keys: KEY._col0 (type: boolean), KEY._col1 (type: tinyint),
KEY._col2 (type: timestamp), KEY._col3 (type: float), KEY._col4 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5,
_col6, _col7, _col8, _col9, _col10
+ Statistics: Num rows: 1365 Data size: 16380 Basic stats:
COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: boolean), _col1 (type: tinyint),
_col2 (type: timestamp), _col3 (type: float), _col4 (type: string), (- _col1)
(type: tinyint), _col5 (type: tinyint), ((- _col1) + _col5) (type: tinyint),
_col6 (type: double), (_col6 * UDFToDouble(((- _col1) + _col5))) (type:
double), (- _col6) (type: double), (79.553 * _col3) (type: float), _col7 (type:
double), (- _col6) (type: double), _col8 (type: double), (CAST( ((- _col1) +
_col5) AS decimal(3,0)) - 10.175) (type: decimal(7,3)), (- (- _col6)) (type:
double), (-26.28 / (- (- _col6))) (type: double), _col9 (type: float), ((_col6
* UDFToDouble(((- _col1) + _col5))) / UDFToDouble(_col1)) (type: double),
_col10 (type: tinyint)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5,
_col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15,
_col16, _col17, _col18, _col19, _col20
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 11, 5, 13, 6,
16, 15, 17, 7, 18, 8, 20, 22, 21, 9, 25, 10]
+ selectExpressions: LongColUnaryMinus(col 1:tinyint) ->
11:tinyint, LongColAddLongColumn(col 12:tinyint, col 5:tinyint)(children:
LongColUnaryMinus(col 1:tinyint) -> 12:tinyint) -> 13:tinyint,
DoubleColMultiplyDoubleColumn(col 6:double, col 15:double)(children:
CastLongToDouble(col 14:tinyint)(children: LongColAddLongColumn(col 12:tinyint,
col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 12:tinyint) ->
14:tinyint) -> 15:double) -> 16:double, DoubleColUnaryMinus(col 6:double) ->
15:double, DoubleScalarMultiplyDoubleColumn(val 79.5530014038086, col 3:float)
-> 17:float, DoubleColUnaryMinus(col 6:double) -> 18:double,
DecimalColSubtractDecimalScalar(col 19:decimal(3,0), val 10.175)(children:
CastLongToDecimal(col 14:tinyint)(children: LongColAddLongColumn(col
12:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) ->
12:tinyint) -> 14:tinyint) -> 19:decimal(3,0)) -> 20:decimal(7,3),
DoubleColUnaryMinus(col 21:double)(children: DoubleColUna
ryMinus(col 6:double) -> 21:double) -> 22:double,
DoubleScalarDivideDoubleColumn(val -26.28, col 23:double)(children:
DoubleColUnaryMinus(col 21:double)(children: DoubleColUnaryMinus(col 6:double)
-> 21:double) -> 23:double) -> 21:double, DoubleColDivideDoubleColumn(col
24:double, col 23:double)(children: DoubleColMultiplyDoubleColumn(col 6:double,
col 23:double)(children: CastLongToDouble(col 14:tinyint)(children:
LongColAddLongColumn(col 12:tinyint, col 5:tinyint)(children:
LongColUnaryMinus(col 1:tinyint) -> 12:tinyint) -> 14:tinyint) -> 23:double) ->
24:double, CastLongToDouble(col 1:tinyint) -> 23:double) -> 25:double
+ Statistics: Num rows: 1365 Data size: 16380 Basic stats:
COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: boolean), _col1 (type:
tinyint), _col2 (type: timestamp), _col3 (type: float), _col4 (type: string),
_col5 (type: tinyint), _col6 (type: tinyint), _col7 (type: tinyint), _col8
(type: double), _col9 (type: double), _col10 (type: double), _col11 (type:
float), _col12 (type: double), _col13 (type: double), _col14 (type: double),
_col15 (type: decimal(7,3)), _col16 (type: double), _col17 (type: double),
_col18 (type: float), _col19 (type: double), _col20 (type: tinyint)
+ sort order: +++++++++++++++++++++
+ Reduce Sink Vectorization:
+ className: VectorReduceSinkObjectHashOperator
+ native: true
+ nativeConditionsMet:
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine
spark IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS
true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+ Statistics: Num rows: 1365 Data size: 16380 Basic stats:
COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.1
+ Reducer 3
+ Execution mode: vectorized
+ Reduce Vectorization:
+ enabled: true
+ enableConditionsMet: hive.vectorized.execution.reduce.enabled
IS true, hive.execution.engine spark IN [tez, spark] IS true
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: boolean),
KEY.reducesinkkey1 (type: tinyint), KEY.reducesinkkey2 (type: timestamp),
KEY.reducesinkkey3 (type: float), KEY.reducesinkkey4 (type: string),
KEY.reducesinkkey5 (type: tinyint), KEY.reducesinkkey6 (type: tinyint),
KEY.reducesinkkey7 (type: tinyint), KEY.reducesinkkey8 (type: double),
KEY.reducesinkkey9 (type: double), KEY.reducesinkkey10 (type: double),
KEY.reducesinkkey11 (type: float), KEY.reducesinkkey12 (type: double),
KEY.reducesinkkey10 (type: double), KEY.reducesinkkey14 (type: double),
KEY.reducesinkkey15 (type: decimal(7,3)), KEY.reducesinkkey16 (type: double),
KEY.reducesinkkey17 (type: double), KEY.reducesinkkey18 (type: float),
KEY.reducesinkkey19 (type: double), KEY.reducesinkkey20 (type: tinyint)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5,
_col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15,
_col16, _col17, _col18, _col19, _col20
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 10, 14, 15, 16, 17, 18, 19, 20]
+ Statistics: Num rows: 1365 Data size: 16380 Basic stats:
COMPLETE Column stats: NONE
+ Limit
+ Number of rows: 40
+ Limit Vectorization:
+ className: VectorLimitOperator
+ native: true
+ Statistics: Num rows: 40 Data size: 480 Basic stats:
COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ File Sink Vectorization:
+ className: VectorFileSinkOperator
+ native: false
+ Statistics: Num rows: 40 Data size: 480 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: 40
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: SELECT cboolean1,
+ ctinyint,
+ ctimestamp1,
+ cfloat,
+ cstring1,
+ (-(ctinyint)) as c1,
+ MAX(ctinyint) as c2,
+ ((-(ctinyint)) + MAX(ctinyint)) as c3,
+ SUM(cfloat) as c4,
+ (SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) as c5,
+ (-(SUM(cfloat))) as c6,
+ (79.553 * cfloat) as c7,
+ STDDEV_POP(cfloat) as c8,
+ (-(SUM(cfloat))) as c9,
+ STDDEV_POP(ctinyint) as c10,
+ (((-(ctinyint)) + MAX(ctinyint)) - 10.175) as c11,
+ (-((-(SUM(cfloat))))) as c12,
+ (-26.28 / (-((-(SUM(cfloat)))))) as c13,
+ MAX(cfloat) as c14,
+ ((SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) / ctinyint) as c15,
+ MIN(ctinyint) as c16
+FROM alltypesparquet
+WHERE (((cfloat < 3569)
+ AND ((10.175 >= cdouble)
+ AND (cboolean1 != 1)))
+ OR ((ctimestamp1 > -1.388)
+ AND ((ctimestamp2 != -1.3359999999999999)
+ AND (ctinyint < 9763215.5639))))
+GROUP BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1
+ORDER BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1, c1, c2, c3, c4,
c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16
+LIMIT 40
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesparquet
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cboolean1,
+ ctinyint,
+ ctimestamp1,
+ cfloat,
+ cstring1,
+ (-(ctinyint)) as c1,
+ MAX(ctinyint) as c2,
+ ((-(ctinyint)) + MAX(ctinyint)) as c3,
+ SUM(cfloat) as c4,
+ (SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) as c5,
+ (-(SUM(cfloat))) as c6,
+ (79.553 * cfloat) as c7,
+ STDDEV_POP(cfloat) as c8,
+ (-(SUM(cfloat))) as c9,
+ STDDEV_POP(ctinyint) as c10,
+ (((-(ctinyint)) + MAX(ctinyint)) - 10.175) as c11,
+ (-((-(SUM(cfloat))))) as c12,
+ (-26.28 / (-((-(SUM(cfloat)))))) as c13,
+ MAX(cfloat) as c14,
+ ((SUM(cfloat) * ((-(ctinyint)) + MAX(ctinyint))) / ctinyint) as c15,
+ MIN(ctinyint) as c16
+FROM alltypesparquet
+WHERE (((cfloat < 3569)
+ AND ((10.175 >= cdouble)
+ AND (cboolean1 != 1)))
+ OR ((ctimestamp1 > -1.388)
+ AND ((ctimestamp2 != -1.3359999999999999)
+ AND (ctinyint < 9763215.5639))))
+GROUP BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1
+ORDER BY cboolean1, ctinyint, ctimestamp1, cfloat, cstring1, c1, c2, c3, c4,
c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16
+LIMIT 40
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesparquet
+#### A masked pattern was here ####
+NULL -61 1969-12-31 16:00:00.142 -61.0 NULL 61 -61 0
-61.0 -0.0 61.0 -4852.733 0.0 61.0 0.0 -10.175 -61.0
0.4308196721311476 -61.0 0.0 -61
+NULL -61 1969-12-31 16:00:02.698 -61.0 NULL 61 -61 0
-61.0 -0.0 61.0 -4852.733 0.0 61.0 0.0 -10.175 -61.0
0.4308196721311476 -61.0 0.0 -61
+NULL -61 1969-12-31 16:00:03.049 -61.0 NULL 61 -61 0
-61.0 -0.0 61.0 -4852.733 0.0 61.0 0.0 -10.175 -61.0
0.4308196721311476 -61.0 0.0 -61
+NULL -61 1969-12-31 16:00:04.165 -61.0 NULL 61 -61 0
-61.0 -0.0 61.0 -4852.733 0.0 61.0 0.0 -10.175 -61.0
0.4308196721311476 -61.0 0.0 -61
+NULL -61 1969-12-31 16:00:04.977 -61.0 NULL 61 -61 0
-61.0 -0.0 61.0 -4852.733 0.0 61.0 0.0 -10.175 -61.0
0.4308196721311476 -61.0 0.0 -61
+NULL -62 1969-12-31 16:00:00.037 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:01.22 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:01.515 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:01.734 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:02.373 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:03.85 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:08.198 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:09.025 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:09.889 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:10.069 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:10.225 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:10.485 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:12.388 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:12.591 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:14.154 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:14.247 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:14.517 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -62 1969-12-31 16:00:14.965 -62.0 NULL 62 -62 0
-62.0 -0.0 62.0 -4932.286 0.0 62.0 0.0 -10.175 -62.0
0.4238709677419355 -62.0 0.0 -62
+NULL -63 1969-12-31 16:00:01.843 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -63 1969-12-31 16:00:03.552 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -63 1969-12-31 16:00:06.852 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -63 1969-12-31 16:00:07.375 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -63 1969-12-31 16:00:10.205 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -63 1969-12-31 16:00:11.946 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -63 1969-12-31 16:00:12.188 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -63 1969-12-31 16:00:15.436 -63.0 NULL 63 -63 0
-63.0 -0.0 63.0 -5011.839 0.0 63.0 0.0 -10.175 -63.0
0.41714285714285715 -63.0 0.0 -63
+NULL -64 1969-12-31 16:00:00.199 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+NULL -64 1969-12-31 16:00:00.29 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+NULL -64 1969-12-31 16:00:01.785 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+NULL -64 1969-12-31 16:00:03.944 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+NULL -64 1969-12-31 16:00:05.997 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+NULL -64 1969-12-31 16:00:10.858 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+NULL -64 1969-12-31 16:00:11.912 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+NULL -64 1969-12-31 16:00:12.339 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64
+NULL -64 1969-12-31 16:00:13.274 -64.0 NULL 64 -64 0
-64.0 -0.0 64.0 -5091.392 0.0 64.0 0.0 -10.175 -64.0
0.410625 -64.0 0.0 -64