Repository: hive Updated Branches: refs/heads/branch-2 4c451694b -> 33dc63bb3
http://git-wip-us.apache.org/repos/asf/hive/blob/33dc63bb/ql/src/test/results/clientpositive/vectorization_div0.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/vectorization_div0.q.out b/ql/src/test/results/clientpositive/vectorization_div0.q.out index 83dff79..4f46629 100644 --- a/ql/src/test/results/clientpositive/vectorization_div0.q.out +++ b/ql/src/test/results/clientpositive/vectorization_div0.q.out @@ -1,8 +1,8 @@ PREHOOK: query: explain vectorization expression -select cdouble / 0.0 from alltypesorc limit 100 +select cint / 0, ctinyint / 0, cbigint / 0, cdouble / 0.0 from alltypesorc limit 100 PREHOOK: type: QUERY POSTHOOK: query: explain vectorization expression -select cdouble / 0.0 from alltypesorc limit 100 +select cint / 0, ctinyint / 0, cbigint / 0, cdouble / 0.0 from alltypesorc limit 100 POSTHOOK: type: QUERY PLAN VECTORIZATION: enabled: true @@ -23,13 +23,13 @@ STAGE PLANS: native: true projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] Select Operator - expressions: (cdouble / 0.0) (type: double) - outputColumnNames: _col0 + expressions: (UDFToDouble(cint) / 0.0) (type: double), (UDFToDouble(ctinyint) / 0.0) (type: double), (UDFToDouble(cbigint) / 0.0) (type: double), (cdouble / 0.0) (type: double) + outputColumnNames: _col0, _col1, _col2, _col3 Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumns: [12] - selectExpressions: DoubleColDivideDoubleScalar(col 5, val 0.0) -> 12:double + projectedOutputColumns: [13, 14, 15, 12] + selectExpressions: DoubleColDivideDoubleScalar(col 12, val 0.0)(children: CastLongToDouble(col 2) -> 12:double) -> 13:double, DoubleColDivideDoubleScalar(col 12, val 0.0)(children: CastLongToDouble(col 0) -> 12:double) -> 14:double, DoubleColDivideDoubleScalar(col 12, val 0.0)(children: CastLongToDouble(col 3) -> 12:double) -> 15:double, DoubleColDivideDoubleScalar(col 5, val 0.0) -> 12:double Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE Limit Number of rows: 100 @@ -63,114 +63,114 @@ STAGE PLANS: Processor Tree: ListSink -PREHOOK: query: select cdouble / 0.0 from alltypesorc limit 100 +PREHOOK: query: select cint / 0, ctinyint / 0, cbigint / 0, cdouble / 0.0 from alltypesorc limit 100 PREHOOK: type: QUERY PREHOOK: Input: default@alltypesorc #### A masked pattern was here #### -POSTHOOK: query: select cdouble / 0.0 from alltypesorc limit 100 +POSTHOOK: query: select cint / 0, ctinyint / 0, cbigint / 0, cdouble / 0.0 from alltypesorc limit 100 POSTHOOK: type: QUERY POSTHOOK: Input: default@alltypesorc #### A masked pattern was here #### -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL -NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL +NULL NULL NULL NULL PREHOOK: query: explain vectorization expression select (cbigint - 988888L) as s1, cdouble / (cbigint - 988888L) as s2, 1.2 / (cbigint - 988888L) from alltypesorc where cbigint > 0 and cbigint < 100000000 order by s1, s2 limit 100 @@ -567,3 +567,201 @@ POSTHOOK: Input: default@alltypesorc 0.0 NULL NULL NULL NULL NULL 0.0 NULL NULL NULL NULL NULL 0.0 NULL NULL NULL NULL NULL +PREHOOK: query: explain vectorization expression +select cint, cbigint, ctinyint, (cint / (cint - 528534767)) as c1, (cbigint / (cbigint - 1018195815)) as c2, (ctinyint / ctinyint) as c3, (cint % (cint - 528534767)) as c4, (cbigint % (cbigint - 1018195815)), (ctinyint % ctinyint) as c3 +from alltypesorc where cint > 500000000 or cdouble > 1000000000 or ctinyint = 0 order by c1, c2 limit 100 +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization expression +select cint, cbigint, ctinyint, (cint / (cint - 528534767)) as c1, (cbigint / (cbigint - 1018195815)) as c2, (ctinyint / ctinyint) as c3, (cint % (cint - 528534767)) as c4, (cbigint % (cbigint - 1018195815)), (ctinyint % ctinyint) as c3 +from alltypesorc where cint > 500000000 or cdouble > 1000000000 or ctinyint = 0 order by c1, c2 limit 100 +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 + Map Reduce + Map Operator Tree: + TableScan + alias: alltypesorc + Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + Filter Operator + Filter Vectorization: + className: VectorFilterOperator + native: true + predicateExpression: FilterExprOrExpr(children: FilterLongColGreaterLongScalar(col 2, val 500000000) -> boolean, FilterDoubleColGreaterDoubleScalar(col 5, val 1.0E9) -> boolean, FilterLongColEqualLongScalar(col 0, val 0) -> boolean) -> boolean + predicate: ((cint > 500000000) or (cdouble > 1.0E9) or (ctinyint = 0)) (type: boolean) + Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: cint (type: int), cbigint (type: bigint), ctinyint (type: tinyint), (cint / (cint - 528534767)) (type: double), (cbigint / (cbigint - 1018195815)) (type: double), (ctinyint / ctinyint) (type: double), (cint % (cint - 528534767)) (type: int), (cbigint % (cbigint - 1018195815)) (type: bigint), (ctinyint % ctinyint) (type: tinyint) + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [2, 3, 0, 13, 14, 15, 16, 17, 12] + selectExpressions: LongColDivideLongColumn(col 2, col 12)(children: LongColSubtractLongScalar(col 2, val 528534767) -> 12:long) -> 13:double, LongColDivideLongColumn(col 3, col 12)(children: LongColSubtractLongScalar(col 3, val 1018195815) -> 12:long) -> 14:double, LongColDivideLongColumn(col 0, col 0) -> 15:double, LongColModuloLongColumn(col 2, col 12)(children: LongColSubtractLongScalar(col 2, val 528534767) -> 12:long) -> 16:long, LongColModuloLongColumn(col 3, col 12)(children: LongColSubtractLongScalar(col 3, val 1018195815) -> 12:long) -> 17:long, LongColModuloLongColumn(col 0, col 0) -> 12:long + Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col3 (type: double), _col4 (type: double) + sort order: ++ + Reduce Sink Vectorization: + className: VectorReduceSinkOperator + native: false + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, No TopN IS false + Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE + TopN Hash Memory Usage: 0.1 + value expressions: _col0 (type: int), _col1 (type: bigint), _col2 (type: tinyint), _col5 (type: double), _col6 (type: int), _col7 (type: bigint), _col8 (type: tinyint) + Execution mode: vectorized + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + Reduce Vectorization: + enabled: false + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true + enableConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: int), VALUE._col1 (type: bigint), VALUE._col2 (type: tinyint), KEY.reducesinkkey0 (type: double), KEY.reducesinkkey1 (type: double), VALUE._col3 (type: double), VALUE._col4 (type: int), VALUE._col5 (type: bigint), VALUE._col6 (type: tinyint) + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 + Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE + Limit + Number of rows: 100 + Statistics: Num rows: 100 Data size: 21500 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 100 Data size: 21500 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: 100 + Processor Tree: + ListSink + +PREHOOK: query: select cint, cbigint, ctinyint, (cint / (cint - 528534767)) as c1, (cbigint / (cbigint - 1018195815)) as c2, (ctinyint / ctinyint) as c3, (cint % (cint - 528534767)) as c4, (cbigint % (cbigint - 1018195815)), (ctinyint % ctinyint) as c3 +from alltypesorc where cint > 500000000 or cdouble > 1000000000 or ctinyint = 0 order by c1, c2 limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +POSTHOOK: query: select cint, cbigint, ctinyint, (cint / (cint - 528534767)) as c1, (cbigint / (cbigint - 1018195815)) as c2, (ctinyint / ctinyint) as c3, (cint % (cint - 528534767)) as c4, (cbigint % (cbigint - 1018195815)), (ctinyint % ctinyint) as c3 +from alltypesorc where cint > 500000000 or cdouble > 1000000000 or ctinyint = 0 order by c1, c2 limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +528534767 NULL -47 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -4 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 38 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -13 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 9 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -22 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 26 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 0 NULL NULL NULL NULL NULL NULL +528534767 NULL -12 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -1 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 36 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -43 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -37 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 2 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -48 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 38 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -22 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 10 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -45 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 13 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -5 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -28 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 41 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 43 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -21 NULL NULL 1.0 NULL NULL 0 +528534767 NULL NULL NULL NULL NULL NULL NULL NULL +528534767 NULL 27 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -5 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 34 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -53 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -5 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -30 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -33 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -21 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 0 NULL NULL NULL NULL NULL NULL +528534767 NULL -59 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 61 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 21 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -40 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -55 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 34 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -36 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 30 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 18 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 53 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -33 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 19 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 61 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -4 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 51 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 5 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -34 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 53 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 40 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -19 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -23 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -54 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 38 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -16 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -56 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 29 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 46 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -16 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 28 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -22 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -57 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 4 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 24 NULL NULL 1.0 NULL NULL 0 +NULL 1018195815 0 NULL NULL NULL NULL NULL NULL +528534767 NULL -44 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -24 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 51 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -11 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -55 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -23 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 36 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 24 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -7 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -56 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -32 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 39 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 40 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -45 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -62 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -48 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -11 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -51 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -23 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 62 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 16 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 61 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -11 NULL NULL 1.0 NULL NULL 0 +528534767 NULL NULL NULL NULL NULL NULL NULL NULL +528534767 NULL 31 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 29 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -34 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 31 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -28 NULL NULL 1.0 NULL NULL 0 +528534767 NULL 33 NULL NULL 1.0 NULL NULL 0 +528534767 NULL -50 NULL NULL 1.0 NULL NULL 0 http://git-wip-us.apache.org/repos/asf/hive/blob/33dc63bb/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java ---------------------------------------------------------------------- diff --git a/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java b/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java index 926321e..5772012 100644 --- a/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java +++ b/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java @@ -227,7 +227,6 @@ public class GenVectorCode extends Task { {"ScalarDivideColumn", "Modulo", "long", "double", "%"}, {"ScalarDivideColumn", "Modulo", "double", "long", "%"}, {"ScalarDivideColumn", "Modulo", "double", "double", "%"}, - {"ColumnDivideColumn", "Modulo", "long", "long", "%"}, {"ColumnDivideColumn", "Modulo", "long", "double", "%"}, {"ColumnDivideColumn", "Modulo", "double", "long", "%"}, {"ColumnDivideColumn", "Modulo", "double", "double", "%"},