hive git commit: HIVE-10950: Unit test against HBase Metastore (Daniel Dai, Vaibhav Gumashta)
Repository: hive Updated Branches: refs/heads/hbase-metastore cb3702164 - 5acf458c4 HIVE-10950: Unit test against HBase Metastore (Daniel Dai, Vaibhav Gumashta) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/5acf458c Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/5acf458c Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/5acf458c Branch: refs/heads/hbase-metastore Commit: 5acf458c449bd2464076c243150760797ae57092 Parents: cb37021 Author: Vaibhav Gumashta vgumas...@apache.org Authored: Fri Jul 24 09:13:02 2015 -0700 Committer: Vaibhav Gumashta vgumas...@apache.org Committed: Fri Jul 24 09:13:02 2015 -0700 -- data/conf/hbase/hive-site.xml | 263 +++ itests/qtest/pom.xml| 19 ++ .../test/resources/testconfiguration.properties | 46 itests/util/pom.xml | 12 + .../org/apache/hadoop/hive/ql/QTestUtil.java| 72 - .../hive/metastore/hbase/HBaseReadWrite.java| 8 +- 6 files changed, 411 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hive/blob/5acf458c/data/conf/hbase/hive-site.xml -- diff --git a/data/conf/hbase/hive-site.xml b/data/conf/hbase/hive-site.xml new file mode 100644 index 000..2cde40f --- /dev/null +++ b/data/conf/hbase/hive-site.xml @@ -0,0 +1,263 @@ +?xml version=1.0? +?xml-stylesheet type=text/xsl href=configuration.xsl? +!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the License); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an AS IS BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-- + +configuration + +property + namehive.in.test/name + valuetrue/value + descriptionInternal marker for test. Used for masking env-dependent values/description +/property + +!-- Hive Configuration can either be stored in this file or in the hadoop configuration files -- +!-- that are implied by Hadoop setup variables. -- +!-- Aside from Hadoop setup variables - this file is provided as a convenience so that Hive-- +!-- users do not have to edit hadoop configuration files (that may be managed as a centralized -- +!-- resource). -- + +!-- Hive Execution Parameters -- +property + namehadoop.tmp.dir/name + value${test.tmp.dir}/hadoop-tmp/value + descriptionA base for other temporary directories./description +/property + +!-- +property + namehive.exec.reducers.max/name + value1/value + descriptionmaximum number of reducers/description +/property +-- + +property + namehive.exec.scratchdir/name + value${test.tmp.dir}/scratchdir/value + descriptionScratch space for Hive jobs/description +/property + +property + namehive.exec.local.scratchdir/name + value${test.tmp.dir}/localscratchdir//value + descriptionLocal scratch space for Hive jobs/description +/property + +property + namejavax.jdo.option.ConnectionURL/name + valuejdbc:derby:;databaseName=${test.tmp.dir}/junit_metastore_db;create=true/value +/property + +property + namehive.stats.dbconnectionstring/name + valuejdbc:derby:;databaseName=${test.tmp.dir}/TempStatsStore;create=true/value +/property + + +property + namejavax.jdo.option.ConnectionDriverName/name + valueorg.apache.derby.jdbc.EmbeddedDriver/value +/property + +property + namejavax.jdo.option.ConnectionUserName/name + valueAPP/value +/property + +property + namejavax.jdo.option.ConnectionPassword/name + valuemine/value +/property + +property + !-- this should eventually be deprecated since the metastore should supply this -- + namehive.metastore.warehouse.dir/name + value${test.warehouse.dir}/value + description/description +/property + +property + namehive.metastore.metadb.dir/name + valuefile://${test.tmp.dir}/metadb//value + description + Required by metastore server or if the uris argument below is not supplied + /description +/property + +property + nametest.log.dir/name + value${test.tmp.dir}/log//value + description/description +/property + +property +
[2/2] hive git commit: HIVE-11333: ColumnPruner prunes columns of UnionOperator that should be kept (Pengcheng Xiong, via Jesus Camacho Rodriguez)
HIVE-11333: ColumnPruner prunes columns of UnionOperator that should be kept (Pengcheng Xiong, via Jesus Camacho Rodriguez) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/2773b9d9 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/2773b9d9 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/2773b9d9 Branch: refs/heads/master Commit: 2773b9d9fc9a1b16fcf22b4a976348fe591c6168 Parents: 393d690 Author: Pengcheng Xiong pxi...@hortonworks.com Authored: Fri Jul 24 18:03:23 2015 +0200 Committer: Jesus Camacho Rodriguez jcama...@apache.org Committed: Fri Jul 24 18:03:41 2015 +0200 -- .../hadoop/hive/ql/optimizer/ColumnPruner.java | 4 + .../hive/ql/optimizer/ColumnPrunerProcCtx.java | 31 +- .../ql/optimizer/ColumnPrunerProcFactory.java | 40 +++ .../results/clientpositive/spark/union16.q.out | 304 +--- .../results/clientpositive/spark/union2.q.out | 28 +- .../results/clientpositive/spark/union9.q.out | 40 ++- .../clientpositive/spark/union_view.q.out | 24 ++ .../results/clientpositive/tez/union2.q.out | 28 +- .../results/clientpositive/tez/union9.q.out | 40 ++- .../tez/vector_null_projection.q.out| 4 + .../test/results/clientpositive/union16.q.out | 354 +++ ql/src/test/results/clientpositive/union2.q.out | 32 +- ql/src/test/results/clientpositive/union9.q.out | 46 +-- .../results/clientpositive/union_view.q.out | 24 ++ .../clientpositive/vector_null_projection.q.out | 4 + 15 files changed, 631 insertions(+), 372 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hive/blob/2773b9d9/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPruner.java -- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPruner.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPruner.java index b8f5c71..9a45458 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPruner.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPruner.java @@ -35,6 +35,7 @@ import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator; import org.apache.hadoop.hive.ql.exec.ScriptOperator; import org.apache.hadoop.hive.ql.exec.SelectOperator; import org.apache.hadoop.hive.ql.exec.TableScanOperator; +import org.apache.hadoop.hive.ql.exec.UnionOperator; import org.apache.hadoop.hive.ql.lib.DefaultGraphWalker; import org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher; import org.apache.hadoop.hive.ql.lib.Dispatcher; @@ -119,6 +120,9 @@ public class ColumnPruner implements Transform { opRules.put(new RuleRegExp(R12, LimitOperator.getOperatorName() + %), ColumnPrunerProcFactory.getLimitProc()); +opRules.put(new RuleRegExp(R13, +UnionOperator.getOperatorName() + %), +ColumnPrunerProcFactory.getUnionProc()); // The dispatcher fires the processor corresponding to the closest matching // rule and passes the context along Dispatcher disp = new DefaultRuleDispatcher(ColumnPrunerProcFactory http://git-wip-us.apache.org/repos/asf/hive/blob/2773b9d9/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java -- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java index 692319e..c076d4e 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java @@ -28,6 +28,7 @@ import org.apache.hadoop.hive.ql.exec.CommonJoinOperator; import org.apache.hadoop.hive.ql.exec.Operator; import org.apache.hadoop.hive.ql.exec.RowSchema; import org.apache.hadoop.hive.ql.exec.SelectOperator; +import org.apache.hadoop.hive.ql.exec.UnionOperator; import org.apache.hadoop.hive.ql.exec.Utilities; import org.apache.hadoop.hive.ql.lib.NodeProcessorCtx; import org.apache.hadoop.hive.ql.parse.ParseContext; @@ -47,10 +48,13 @@ public class ColumnPrunerProcCtx implements NodeProcessorCtx { private final MapCommonJoinOperator, MapByte, ListString joinPrunedColLists; + private final MapUnionOperator, ListInteger unionPrunedColLists; + public ColumnPrunerProcCtx(ParseContext pctx) { this.pctx = pctx; prunedColLists = new HashMapOperator? extends OperatorDesc, ListString(); joinPrunedColLists = new HashMapCommonJoinOperator, MapByte, ListString(); +unionPrunedColLists = new HashMap(); } public ParseContext getParseContext() { @@ -61,6 +65,10 @@ public class ColumnPrunerProcCtx implements NodeProcessorCtx { return joinPrunedColLists; } + public MapUnionOperator,
hive git commit: HIVE-11290 Cursor attributes %ISOPEN, %FOUND, %NOTFOUND and SYS_REFCURSOR variable (Dmitry Tolpeko via gates)
Repository: hive Updated Branches: refs/heads/master 2773b9d9f - 92e98858e HIVE-11290 Cursor attributes %ISOPEN, %FOUND, %NOTFOUND and SYS_REFCURSOR variable (Dmitry Tolpeko via gates) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/92e98858 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/92e98858 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/92e98858 Branch: refs/heads/master Commit: 92e98858e742bbb669ccbf790a71a618c581df21 Parents: 2773b9d Author: Alan Gates ga...@hortonworks.com Authored: Fri Jul 24 10:43:45 2015 -0700 Committer: Alan Gates ga...@hortonworks.com Committed: Fri Jul 24 10:43:45 2015 -0700 -- .../antlr4/org/apache/hive/hplsql/Hplsql.g4 | 38 ++-- .../main/java/org/apache/hive/hplsql/Conn.java | 6 ++ .../main/java/org/apache/hive/hplsql/Exec.java | 21 ++- .../java/org/apache/hive/hplsql/Expression.java | 28 + .../main/java/org/apache/hive/hplsql/Query.java | 55 + .../main/java/org/apache/hive/hplsql/Stmt.java | 60 -- .../main/java/org/apache/hive/hplsql/Var.java | 20 +- .../src/test/queries/db/cursor_attributes.sql | 60 ++ hplsql/src/test/queries/db/select_into.sql | 17 + .../src/test/queries/db/set_current_schema.sql | 6 ++ hplsql/src/test/queries/db/sys_refcursor.sql| 65 hplsql/src/test/queries/db/use.sql | 2 + .../test/results/db/cursor_attributes.out.txt | 33 ++ hplsql/src/test/results/db/select_into.out.txt | 19 ++ .../test/results/db/set_current_schema.out.txt | 12 .../src/test/results/db/sys_refcursor.out.txt | 36 +++ hplsql/src/test/results/db/use.out.txt | 4 ++ 17 files changed, 453 insertions(+), 29 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hive/blob/92e98858/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4 -- diff --git a/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4 b/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4 index 70312b2..4104d13 100644 --- a/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4 +++ b/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4 @@ -98,7 +98,8 @@ expr_stmt : // Standalone expression ; assignment_stmt : // Assignment statement - T_SET? assignment_stmt_item (T_COMMA assignment_stmt_item)* + T_SET set_session_option + | T_SET? assignment_stmt_item (T_COMMA assignment_stmt_item)* ; assignment_stmt_item : @@ -145,9 +146,9 @@ declare_block : // Declaration block declare_stmt_item : - declare_var_item + declare_cursor_item + | declare_var_item | declare_condition_item - | declare_cursor_item | declare_handler_item | declare_temporary_table_item ; @@ -254,6 +255,7 @@ dtype : // Data types | T_RESULT_SET_LOCATOR T_VARYING | T_SMALLINT | T_STRING + | T_SYS_REFCURSOR | T_TIMESTAMP | T_VARCHAR | T_VARCHAR2 @@ -391,7 +393,7 @@ map_object_stmt : ; open_stmt : // OPEN cursor statement - T_OPEN L_ID (T_FOR (expr | select_stmt))? + T_OPEN L_ID (T_FOR (select_stmt | expr))? ; fetch_stmt :// FETCH cursor statement @@ -460,6 +462,14 @@ rollback_stmt : // ROLLBACK statement T_ROLLBACK T_WORK? ; +set_session_option : + set_current_schema_option + ; + +set_current_schema_option : + ((T_CURRENT? T_SCHEMA) | T_CURRENT_SCHEMA) T_EQUAL? expr + ; + signal_stmt : // SIGNAL statement T_SIGNAL ident ; @@ -675,6 +685,7 @@ bool_expr : // Boolean condition bool_expr_atom : bool_expr_unary | bool_expr_binary +| expr ; bool_expr_unary : @@ -722,6 +733,7 @@ expr : | T_OPEN_P expr T_CLOSE_P | expr_concat | expr_case + | expr_cursor_attribute | expr_agg_window_func | expr_spec_func | expr_func @@ -777,6 +789,10 @@ expr_case_searched : T_CASE (T_WHEN bool_expr T_THEN expr)+ (T_ELSE expr)? T_END ; +expr_cursor_attribute : + ident '%' (T_ISOPEN | T_FOUND | T_NOTFOUND) +; + expr_agg_window_func : T_AVG T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_COUNT T_OPEN_P ((expr_func_all_distinct? expr) | '*') T_CLOSE_P expr_func_over_clause? @@ -937,6 +953,7 @@ non_reserved_words : // Tokens that are not reserved words | T_CS | T_CURRENT | T_CURRENT_DATE + | T_CURRENT_SCHEMA |
hive git commit: HIVE-11172 : Vectorization wrong results for aggregate query with where clause without group by (Hari Subramaniyan, reviewed by Matt McCline)
Repository: hive Updated Branches: refs/heads/branch-1.2 b75633f9b - d43f36d81 HIVE-11172 : Vectorization wrong results for aggregate query with where clause without group by (Hari Subramaniyan, reviewed by Matt McCline) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/d43f36d8 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/d43f36d8 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/d43f36d8 Branch: refs/heads/branch-1.2 Commit: d43f36d81def6b06febdb39ef77303f0e4d390de Parents: b75633f Author: Hari Subramaniyan harisan...@apache.org Authored: Tue Jul 21 03:03:45 2015 -0700 Committer: Hari Subramaniyan harisan...@apache.org Committed: Fri Jul 24 10:26:40 2015 -0700 -- .../UDAFTemplates/VectorUDAFMinMaxString.txt| 3 +- .../vector_aggregate_without_gby.q | 14 +++ .../vector_aggregate_without_gby.q.out | 96 3 files changed, 112 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/hive/blob/d43f36d8/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt -- diff --git a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt index 7e0dda6..cdce457 100644 --- a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt +++ b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt @@ -319,7 +319,8 @@ public class ClassName extends VectorAggregateExpression { int batchSize, int[] selected) { - for (int i=0; i batchSize; ++i) { + for (int j=0; j batchSize; ++j) { +int i = selected[j]; myagg.checkValue(inputColumn.vector[i], inputColumn.start[i], inputColumn.length[i]); http://git-wip-us.apache.org/repos/asf/hive/blob/d43f36d8/ql/src/test/queries/clientpositive/vector_aggregate_without_gby.q -- diff --git a/ql/src/test/queries/clientpositive/vector_aggregate_without_gby.q b/ql/src/test/queries/clientpositive/vector_aggregate_without_gby.q new file mode 100644 index 000..9a026ed --- /dev/null +++ b/ql/src/test/queries/clientpositive/vector_aggregate_without_gby.q @@ -0,0 +1,14 @@ +create table testvec(id int, dt int, greg_dt string) stored as orc; +insert into table testvec +values +(1,20150330, '2015-03-30'), +(2,20150301, '2015-03-01'), +(3,20150502, '2015-05-02'), +(4,20150401, '2015-04-01'), +(5,20150313, '2015-03-13'), +(6,20150314, '2015-03-14'), +(7,20150404, '2015-04-04'); +set hive.vectorized.execution.enabled=true; +set hive.map.aggr=true; +explain select max(dt), max(greg_dt) from testvec where id=5; +select max(dt), max(greg_dt) from testvec where id=5; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hive/blob/d43f36d8/ql/src/test/results/clientpositive/vector_aggregate_without_gby.q.out -- diff --git a/ql/src/test/results/clientpositive/vector_aggregate_without_gby.q.out b/ql/src/test/results/clientpositive/vector_aggregate_without_gby.q.out new file mode 100644 index 000..1175cb8 --- /dev/null +++ b/ql/src/test/results/clientpositive/vector_aggregate_without_gby.q.out @@ -0,0 +1,96 @@ +PREHOOK: query: create table testvec(id int, dt int, greg_dt string) stored as orc +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@testvec +POSTHOOK: query: create table testvec(id int, dt int, greg_dt string) stored as orc +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@testvec +PREHOOK: query: insert into table testvec +values +(1,20150330, '2015-03-30'), +(2,20150301, '2015-03-01'), +(3,20150502, '2015-05-02'), +(4,20150401, '2015-04-01'), +(5,20150313, '2015-03-13'), +(6,20150314, '2015-03-14'), +(7,20150404, '2015-04-04') +PREHOOK: type: QUERY +PREHOOK: Input: default@values__tmp__table__1 +PREHOOK: Output: default@testvec +POSTHOOK: query: insert into table testvec +values +(1,20150330, '2015-03-30'), +(2,20150301, '2015-03-01'), +(3,20150502, '2015-05-02'), +(4,20150401, '2015-04-01'), +(5,20150313, '2015-03-13'), +(6,20150314, '2015-03-14'), +(7,20150404, '2015-04-04') +POSTHOOK: type: QUERY +POSTHOOK: Input: default@values__tmp__table__1 +POSTHOOK: Output: default@testvec +POSTHOOK: Lineage: testvec.dt EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ] +POSTHOOK: Lineage: testvec.greg_dt SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ] +POSTHOOK: Lineage: testvec.id EXPRESSION
[1/2] hive git commit: HIVE-11333: ColumnPruner prunes columns of UnionOperator that should be kept (Pengcheng Xiong, via Jesus Camacho Rodriguez)
Repository: hive Updated Branches: refs/heads/master 393d690bb - 2773b9d9f http://git-wip-us.apache.org/repos/asf/hive/blob/2773b9d9/ql/src/test/results/clientpositive/union16.q.out -- diff --git a/ql/src/test/results/clientpositive/union16.q.out b/ql/src/test/results/clientpositive/union16.q.out index f503440..9f7dd68 100644 --- a/ql/src/test/results/clientpositive/union16.q.out +++ b/ql/src/test/results/clientpositive/union16.q.out @@ -74,463 +74,513 @@ STAGE PLANS: Map Operator Tree: TableScan alias: src -Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE +Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Select Operator - Statistics: Num rows: 500 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + expressions: value (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Union -Statistics: Num rows: 12500 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE +Statistics: Num rows: 12500 Data size: 132800 Basic stats: COMPLETE Column stats: NONE Select Operator - Statistics: Num rows: 12500 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + Statistics: Num rows: 12500 Data size: 132800 Basic stats: COMPLETE Column stats: NONE Group By Operator aggregations: count(1) mode: hash outputColumnNames: _col0 -Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE +Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator sort order: - Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE value expressions: _col0 (type: bigint) TableScan alias: src -Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE +Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Select Operator - Statistics: Num rows: 500 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + expressions: value (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Union -Statistics: Num rows: 12500 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE +Statistics: Num rows: 12500 Data size: 132800 Basic stats: COMPLETE Column stats: NONE Select Operator - Statistics: Num rows: 12500 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + Statistics: Num rows: 12500 Data size: 132800 Basic stats: COMPLETE Column stats: NONE Group By Operator aggregations: count(1) mode: hash outputColumnNames: _col0 -Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE +Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator sort order: - Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE value expressions: _col0 (type: bigint) TableScan alias: src -Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE +Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Select Operator - Statistics: Num rows: 500 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + expressions: value (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Union -Statistics: Num rows: 12500 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE +Statistics: Num rows: 12500 Data size: 132800 Basic stats: COMPLETE Column stats: NONE Select Operator - Statistics: Num rows: 12500 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE +