diff --git itests/src/test/resources/testconfiguration.properties itests/src/test/resources/testconfiguration.properties index 5d07fba..68e9b7d 100644 --- itests/src/test/resources/testconfiguration.properties +++ itests/src/test/resources/testconfiguration.properties @@ -178,6 +178,7 @@ minitez.query.files.shared=alter_merge_2_orc.q,\ vector_bucket.q,\ vector_cast_constant.q,\ vector_char_4.q,\ + vector_char_mapjoin1.q,\ vector_char_simple.q,\ vector_coalesce.q,\ vector_coalesce_2.q,\ @@ -212,6 +213,7 @@ minitez.query.files.shared=alter_merge_2_orc.q,\ vector_reduce_groupby_decimal.q,\ vector_string_concat.q,\ vector_varchar_4.q,\ + vector_varchar_mapjoin1.q,\ vector_varchar_simple.q,\ vectorization_0.q,\ vectorization_1.q,\ diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java index 24b34b1..c915f72 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java @@ -30,7 +30,9 @@ import org.apache.hadoop.hive.serde2.io.ByteWritable; import org.apache.hadoop.hive.serde2.io.DateWritable; import org.apache.hadoop.hive.serde2.io.DoubleWritable; +import org.apache.hadoop.hive.serde2.io.HiveCharWritable; import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable; +import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable; import org.apache.hadoop.hive.serde2.io.ShortWritable; import org.apache.hadoop.hive.serde2.io.TimestampWritable; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; @@ -414,7 +416,13 @@ public void assignObjectValue(Object val, int destIndex) throws HiveException { if (val == null) { assignNull(destIndex); } else { - HiveVarchar hiveVarchar = (HiveVarchar) val; + // We store VARCHAR type stripped of pads. + HiveVarchar hiveVarchar; + if (val instanceof HiveVarchar) { + hiveVarchar = (HiveVarchar) val; + } else { + hiveVarchar = ((HiveVarcharWritable) val).getHiveVarchar(); + } byte[] bytes = hiveVarchar.getValue().getBytes(); assignBytes(bytes, 0, bytes.length, destIndex); } @@ -429,7 +437,12 @@ public void assignObjectValue(Object val, int destIndex) throws HiveException { assignNull(destIndex); } else { // We store CHAR type stripped of pads. - HiveChar hiveChar = (HiveChar) val; + HiveChar hiveChar; + if (val instanceof HiveChar) { + hiveChar = (HiveChar) val; + } else { + hiveChar = ((HiveCharWritable) val).getHiveChar(); + } byte[] bytes = hiveChar.getStrippedValue().getBytes(); assignBytes(bytes, 0, bytes.length, destIndex); } diff --git ql/src/test/queries/clientpositive/vector_char_mapjoin1.q ql/src/test/queries/clientpositive/vector_char_mapjoin1.q new file mode 100644 index 0000000..cb66674 --- /dev/null +++ ql/src/test/queries/clientpositive/vector_char_mapjoin1.q @@ -0,0 +1,54 @@ +SET hive.vectorized.execution.enabled=true; +set hive.fetch.task.conversion=none; +SET hive.auto.convert.join=true; +SET hive.auto.convert.join.noconditionaltask=true; +SET hive.auto.convert.join.noconditionaltask.size=1000000000; + +drop table if exists char_join1_vc1; +drop table if exists char_join1_vc2; +drop table if exists char_join1_str; +drop table if exists char_join1_vc1_orc; +drop table if exists char_join1_vc2_orc; +drop table if exists char_join1_str_orc; + +create table char_join1_vc1 ( + c1 int, + c2 char(10) +); + +create table char_join1_vc2 ( + c1 int, + c2 char(20) +); + +create table char_join1_str ( + c1 int, + c2 string +); + +load data local inpath '../../data/files/vc1.txt' into table char_join1_vc1; +load data local inpath '../../data/files/vc1.txt' into table char_join1_vc2; +load data local inpath '../../data/files/vc1.txt' into table char_join1_str; + +create table char_join1_vc1_orc stored as orc as select * from char_join1_vc1; +create table char_join1_vc2_orc stored as orc as select * from char_join1_vc2; +create table char_join1_str_orc stored as orc as select * from char_join1_str; + +-- Join char with same length char +explain select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1; +select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1; + +-- Join char with different length char +explain select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1; +select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1; + +-- Join char with string +explain select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1; +select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1; + +drop table char_join1_vc1; +drop table char_join1_vc2; +drop table char_join1_str; +drop table char_join1_vc1_orc; +drop table char_join1_vc2_orc; +drop table char_join1_str_orc; diff --git ql/src/test/queries/clientpositive/vector_varchar_mapjoin1.q ql/src/test/queries/clientpositive/vector_varchar_mapjoin1.q new file mode 100644 index 0000000..2aade4e --- /dev/null +++ ql/src/test/queries/clientpositive/vector_varchar_mapjoin1.q @@ -0,0 +1,54 @@ +SET hive.vectorized.execution.enabled=true; +set hive.fetch.task.conversion=none; +SET hive.auto.convert.join=true; +SET hive.auto.convert.join.noconditionaltask=true; +SET hive.auto.convert.join.noconditionaltask.size=1000000000; + +drop table if exists varchar_join1_vc1; +drop table if exists varchar_join1_vc2; +drop table if exists varchar_join1_str; +drop table if exists varchar_join1_vc1_orc; +drop table if exists varchar_join1_vc2_orc; +drop table if exists varchar_join1_str_orc; + +create table varchar_join1_vc1 ( + c1 int, + c2 varchar(10) +); + +create table varchar_join1_vc2 ( + c1 int, + c2 varchar(20) +); + +create table varchar_join1_str ( + c1 int, + c2 string +); + +load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc1; +load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc2; +load data local inpath '../../data/files/vc1.txt' into table varchar_join1_str; + +create table varchar_join1_vc1_orc stored as orc as select * from varchar_join1_vc1; +create table varchar_join1_vc2_orc stored as orc as select * from varchar_join1_vc2; +create table varchar_join1_str_orc stored as orc as select * from varchar_join1_str; + +-- Join varchar with same length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1; +select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1; + +-- Join varchar with different length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1; +select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1; + +-- Join varchar with string +explain select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1; +select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1; + +drop table varchar_join1_vc1; +drop table varchar_join1_vc2; +drop table varchar_join1_str; +drop table varchar_join1_vc1_orc; +drop table varchar_join1_vc2_orc; +drop table varchar_join1_str_orc; diff --git ql/src/test/results/clientpositive/tez/vector_char_mapjoin1.q.out ql/src/test/results/clientpositive/tez/vector_char_mapjoin1.q.out new file mode 100644 index 0000000..702d450 --- /dev/null +++ ql/src/test/results/clientpositive/tez/vector_char_mapjoin1.q.out @@ -0,0 +1,454 @@ +PREHOOK: query: drop table if exists char_join1_vc1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_str +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_str +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc1_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc1_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc2_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc2_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_str_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_str_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table char_join1_vc1 ( + c1 int, + c2 char(10) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: create table char_join1_vc1 ( + c1 int, + c2 char(10) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: create table char_join1_vc2 ( + c1 int, + c2 char(20) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: create table char_join1_vc2 ( + c1 int, + c2 char(20) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: create table char_join1_str ( + c1 int, + c2 string +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: create table char_join1_str ( + c1 int, + c2 string +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc2 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc2 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_str +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_str +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: create table char_join1_vc1_orc stored as orc as select * from char_join1_vc1 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_vc1 +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc1_orc +POSTHOOK: query: create table char_join1_vc1_orc stored as orc as select * from char_join1_vc1 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_vc1 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc1_orc +PREHOOK: query: create table char_join1_vc2_orc stored as orc as select * from char_join1_vc2 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_vc2 +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc2_orc +POSTHOOK: query: create table char_join1_vc2_orc stored as orc as select * from char_join1_vc2 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_vc2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc2_orc +PREHOOK: query: create table char_join1_str_orc stored as orc as select * from char_join1_str +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_str +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_str_orc +POSTHOOK: query: create table char_join1_str_orc stored as orc as select * from char_join1_str +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_str +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_str_orc +PREHOOK: query: -- Join char with same length char +explain select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with same length char +explain select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 1 <- Map 3 (BROADCAST_EDGE) + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(10)) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 1 Map 3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: char(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: char(10)) + Execution mode: vectorized + Map 3 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: char(10)) + sort order: + + Map-reduce partition columns: c2 (type: char(10)) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Reducer 2 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: char(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +1 abc 2 abc +1 abc 1 abc +2 abc 2 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: -- Join char with different length char +explain select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with different length char +explain select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 2 <- Map 1 (BROADCAST_EDGE) + Reducer 3 <- Map 2 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: char(10)) + sort order: + + Map-reduce partition columns: c2 (type: char(10)) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Map 2 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 324 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(20)) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 0 Map 1 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: char(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: char(20)) + Execution mode: vectorized + Reducer 3 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: char(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_vc1_orc +PREHOOK: Input: default@char_join1_vc2_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_vc1_orc +POSTHOOK: Input: default@char_join1_vc2_orc +#### A masked pattern was here #### +1 abc 2 abc +1 abc 1 abc +2 abc 2 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: -- Join char with string +explain select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with string +explain select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 1 <- Map 3 (BROADCAST_EDGE) + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: UDFToString(c2) is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 1 Map 3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: string) + Map 3 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: string) + sort order: + + Map-reduce partition columns: c2 (type: string) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Reducer 2 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_str_orc +PREHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_str_orc +POSTHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: drop table char_join1_vc1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc1 +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: drop table char_join1_vc1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc1 +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: drop table char_join1_vc2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc2 +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: drop table char_join1_vc2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc2 +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: drop table char_join1_str +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_str +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: drop table char_join1_str +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_str +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: drop table char_join1_vc1_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc1_orc +PREHOOK: Output: default@char_join1_vc1_orc +POSTHOOK: query: drop table char_join1_vc1_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc1_orc +POSTHOOK: Output: default@char_join1_vc1_orc +PREHOOK: query: drop table char_join1_vc2_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc2_orc +PREHOOK: Output: default@char_join1_vc2_orc +POSTHOOK: query: drop table char_join1_vc2_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc2_orc +POSTHOOK: Output: default@char_join1_vc2_orc +PREHOOK: query: drop table char_join1_str_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_str_orc +PREHOOK: Output: default@char_join1_str_orc +POSTHOOK: query: drop table char_join1_str_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_str_orc +POSTHOOK: Output: default@char_join1_str_orc diff --git ql/src/test/results/clientpositive/tez/vector_varchar_mapjoin1.q.out ql/src/test/results/clientpositive/tez/vector_varchar_mapjoin1.q.out new file mode 100644 index 0000000..207c9d4 --- /dev/null +++ ql/src/test/results/clientpositive/tez/vector_varchar_mapjoin1.q.out @@ -0,0 +1,450 @@ +PREHOOK: query: drop table if exists varchar_join1_vc1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_str +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_str +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc1_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc1_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc2_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc2_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_str_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_str_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table varchar_join1_vc1 ( + c1 int, + c2 varchar(10) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: create table varchar_join1_vc1 ( + c1 int, + c2 varchar(10) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: create table varchar_join1_vc2 ( + c1 int, + c2 varchar(20) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: create table varchar_join1_vc2 ( + c1 int, + c2 varchar(20) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: create table varchar_join1_str ( + c1 int, + c2 string +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: create table varchar_join1_str ( + c1 int, + c2 string +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc2 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc2 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_str +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_str +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: create table varchar_join1_vc1_orc stored as orc as select * from varchar_join1_vc1 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_vc1 +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc1_orc +POSTHOOK: query: create table varchar_join1_vc1_orc stored as orc as select * from varchar_join1_vc1 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_vc1 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc1_orc +PREHOOK: query: create table varchar_join1_vc2_orc stored as orc as select * from varchar_join1_vc2 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_vc2 +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc2_orc +POSTHOOK: query: create table varchar_join1_vc2_orc stored as orc as select * from varchar_join1_vc2 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_vc2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc2_orc +PREHOOK: query: create table varchar_join1_str_orc stored as orc as select * from varchar_join1_str +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_str +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_str_orc +POSTHOOK: query: create table varchar_join1_str_orc stored as orc as select * from varchar_join1_str +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_str +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_str_orc +PREHOOK: query: -- Join varchar with same length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with same length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 1 <- Map 3 (BROADCAST_EDGE) + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 1 Map 3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: varchar(10)) + Execution mode: vectorized + Map 3 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: varchar(10)) + sort order: + + Map-reduce partition columns: c2 (type: varchar(10)) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Reducer 2 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: -- Join varchar with different length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with different length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 1 <- Map 3 (BROADCAST_EDGE) + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 1 Map 3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: varchar(20)) + Execution mode: vectorized + Map 3 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: varchar(20)) + sort order: + + Map-reduce partition columns: c2 (type: varchar(20)) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Reducer 2 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_vc1_orc +PREHOOK: Input: default@varchar_join1_vc2_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_vc1_orc +POSTHOOK: Input: default@varchar_join1_vc2_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: -- Join varchar with string +explain select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with string +explain select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 1 <- Map 3 (BROADCAST_EDGE) + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: UDFToString(c2) is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 1 Map 3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: string) + Map 3 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: string) + sort order: + + Map-reduce partition columns: c2 (type: string) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Reducer 2 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_str_orc +PREHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_str_orc +POSTHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: drop table varchar_join1_vc1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc1 +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: drop table varchar_join1_vc1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc1 +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: drop table varchar_join1_vc2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc2 +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: drop table varchar_join1_vc2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc2 +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: drop table varchar_join1_str +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_str +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: drop table varchar_join1_str +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_str +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: drop table varchar_join1_vc1_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc1_orc +PREHOOK: Output: default@varchar_join1_vc1_orc +POSTHOOK: query: drop table varchar_join1_vc1_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc1_orc +POSTHOOK: Output: default@varchar_join1_vc1_orc +PREHOOK: query: drop table varchar_join1_vc2_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc2_orc +PREHOOK: Output: default@varchar_join1_vc2_orc +POSTHOOK: query: drop table varchar_join1_vc2_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc2_orc +POSTHOOK: Output: default@varchar_join1_vc2_orc +PREHOOK: query: drop table varchar_join1_str_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_str_orc +PREHOOK: Output: default@varchar_join1_str_orc +POSTHOOK: query: drop table varchar_join1_str_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_str_orc +POSTHOOK: Output: default@varchar_join1_str_orc diff --git ql/src/test/results/clientpositive/vector_char_mapjoin1.q.out ql/src/test/results/clientpositive/vector_char_mapjoin1.q.out new file mode 100644 index 0000000..2ed5797 --- /dev/null +++ ql/src/test/results/clientpositive/vector_char_mapjoin1.q.out @@ -0,0 +1,445 @@ +PREHOOK: query: drop table if exists char_join1_vc1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_str +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_str +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc1_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc1_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc2_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc2_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_str_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_str_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table char_join1_vc1 ( + c1 int, + c2 char(10) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: create table char_join1_vc1 ( + c1 int, + c2 char(10) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: create table char_join1_vc2 ( + c1 int, + c2 char(20) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: create table char_join1_vc2 ( + c1 int, + c2 char(20) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: create table char_join1_str ( + c1 int, + c2 string +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: create table char_join1_str ( + c1 int, + c2 string +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc2 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc2 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_str +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_str +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: create table char_join1_vc1_orc stored as orc as select * from char_join1_vc1 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_vc1 +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc1_orc +POSTHOOK: query: create table char_join1_vc1_orc stored as orc as select * from char_join1_vc1 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_vc1 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc1_orc +PREHOOK: query: create table char_join1_vc2_orc stored as orc as select * from char_join1_vc2 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_vc2 +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc2_orc +POSTHOOK: query: create table char_join1_vc2_orc stored as orc as select * from char_join1_vc2 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_vc2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc2_orc +PREHOOK: query: create table char_join1_str_orc stored as orc as select * from char_join1_str +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_str +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_str_orc +POSTHOOK: query: create table char_join1_str_orc stored as orc as select * from char_join1_str +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_str +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_str_orc +PREHOOK: query: -- Join char with same length char +explain select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with same length char +explain select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + a + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + a + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(10)) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(10)) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: char(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: char(10)) + Local Work: + Map Reduce Local Work + Execution mode: vectorized + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: char(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +1 abc 2 abc +1 abc 1 abc +2 abc 2 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: -- Join char with different length char +explain select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with different length char +explain select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + a + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + a + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(20)) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 324 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(20)) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: char(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: char(20)) + Local Work: + Map Reduce Local Work + Execution mode: vectorized + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: char(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_vc1_orc +PREHOOK: Input: default@char_join1_vc2_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_vc1_orc +POSTHOOK: Input: default@char_join1_vc2_orc +#### A masked pattern was here #### +1 abc 2 abc +1 abc 1 abc +2 abc 2 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: -- Join char with string +explain select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with string +explain select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + b + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + b + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: UDFToString(c2) is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: string) + Local Work: + Map Reduce Local Work + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_str_orc +PREHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_str_orc +POSTHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: drop table char_join1_vc1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc1 +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: drop table char_join1_vc1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc1 +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: drop table char_join1_vc2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc2 +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: drop table char_join1_vc2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc2 +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: drop table char_join1_str +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_str +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: drop table char_join1_str +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_str +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: drop table char_join1_vc1_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc1_orc +PREHOOK: Output: default@char_join1_vc1_orc +POSTHOOK: query: drop table char_join1_vc1_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc1_orc +POSTHOOK: Output: default@char_join1_vc1_orc +PREHOOK: query: drop table char_join1_vc2_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc2_orc +PREHOOK: Output: default@char_join1_vc2_orc +POSTHOOK: query: drop table char_join1_vc2_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc2_orc +POSTHOOK: Output: default@char_join1_vc2_orc +PREHOOK: query: drop table char_join1_str_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_str_orc +PREHOOK: Output: default@char_join1_str_orc +POSTHOOK: query: drop table char_join1_str_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_str_orc +POSTHOOK: Output: default@char_join1_str_orc diff --git ql/src/test/results/clientpositive/vector_varchar_mapjoin1.q.out ql/src/test/results/clientpositive/vector_varchar_mapjoin1.q.out new file mode 100644 index 0000000..5427c35 --- /dev/null +++ ql/src/test/results/clientpositive/vector_varchar_mapjoin1.q.out @@ -0,0 +1,441 @@ +PREHOOK: query: drop table if exists varchar_join1_vc1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_str +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_str +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc1_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc1_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc2_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc2_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_str_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_str_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table varchar_join1_vc1 ( + c1 int, + c2 varchar(10) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: create table varchar_join1_vc1 ( + c1 int, + c2 varchar(10) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: create table varchar_join1_vc2 ( + c1 int, + c2 varchar(20) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: create table varchar_join1_vc2 ( + c1 int, + c2 varchar(20) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: create table varchar_join1_str ( + c1 int, + c2 string +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: create table varchar_join1_str ( + c1 int, + c2 string +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc2 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc2 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_str +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_str +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: create table varchar_join1_vc1_orc stored as orc as select * from varchar_join1_vc1 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_vc1 +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc1_orc +POSTHOOK: query: create table varchar_join1_vc1_orc stored as orc as select * from varchar_join1_vc1 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_vc1 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc1_orc +PREHOOK: query: create table varchar_join1_vc2_orc stored as orc as select * from varchar_join1_vc2 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_vc2 +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc2_orc +POSTHOOK: query: create table varchar_join1_vc2_orc stored as orc as select * from varchar_join1_vc2 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_vc2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc2_orc +PREHOOK: query: create table varchar_join1_str_orc stored as orc as select * from varchar_join1_str +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_str +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_str_orc +POSTHOOK: query: create table varchar_join1_str_orc stored as orc as select * from varchar_join1_str +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_str +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_str_orc +PREHOOK: query: -- Join varchar with same length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with same length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + a + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + a + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(10)) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: varchar(10)) + Local Work: + Map Reduce Local Work + Execution mode: vectorized + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: -- Join varchar with different length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with different length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + a + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + a + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(20)) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: varchar(20)) + Local Work: + Map Reduce Local Work + Execution mode: vectorized + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_vc1_orc +PREHOOK: Input: default@varchar_join1_vc2_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_vc1_orc +POSTHOOK: Input: default@varchar_join1_vc2_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: -- Join varchar with string +explain select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with string +explain select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + b + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + b + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: UDFToString(c2) is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: string) + Local Work: + Map Reduce Local Work + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_str_orc +PREHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_str_orc +POSTHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: drop table varchar_join1_vc1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc1 +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: drop table varchar_join1_vc1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc1 +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: drop table varchar_join1_vc2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc2 +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: drop table varchar_join1_vc2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc2 +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: drop table varchar_join1_str +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_str +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: drop table varchar_join1_str +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_str +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: drop table varchar_join1_vc1_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc1_orc +PREHOOK: Output: default@varchar_join1_vc1_orc +POSTHOOK: query: drop table varchar_join1_vc1_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc1_orc +POSTHOOK: Output: default@varchar_join1_vc1_orc +PREHOOK: query: drop table varchar_join1_vc2_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc2_orc +PREHOOK: Output: default@varchar_join1_vc2_orc +POSTHOOK: query: drop table varchar_join1_vc2_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc2_orc +POSTHOOK: Output: default@varchar_join1_vc2_orc +PREHOOK: query: drop table varchar_join1_str_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_str_orc +PREHOOK: Output: default@varchar_join1_str_orc +POSTHOOK: query: drop table varchar_join1_str_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_str_orc +POSTHOOK: Output: default@varchar_join1_str_orc