You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by Szehon Ho <sz...@cloudera.com> on 2015/07/01 01:58:10 UTC

Re: Review Request 36025: HIVE-11139 Emit more lineage information

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36025/#review89835
-----------------------------------------------------------


Discussed with Jimmy about the general idea, looks good, just some style comments to make it easier to read.


ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageLogger.java (line 149)
<https://reviews.apache.org/r/36025/#comment142885>

    Will this happen?  Can we ensure that it's always filled out?



ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/LineageCtx.java (line 92)
<https://reviews.apache.org/r/36025/#comment142906>

    We should add javadocs to new methods in this class.



ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/LineageCtx.java (line 152)
<https://reviews.apache.org/r/36025/#comment142662>

    This can call the other method.



ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/OpProcFactory.java (line 129)
<https://reviews.apache.org/r/36025/#comment142664>

    The code is a bit hard to read here, can it be simplified?  (This and following line)



ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/OpProcFactory.java (line 215)
<https://reviews.apache.org/r/36025/#comment142666>

    Getter method should not do a side-effect.. we should make it clearer what is going on.



ql/src/java/org/apache/hadoop/hive/ql/plan/FilterDesc.java (line 152)
<https://reviews.apache.org/r/36025/#comment142907>

    We can add a javadoc, with some example of what this means.


- Szehon Ho


On June 29, 2015, 9:55 p.m., Jimmy Xiang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36025/
> -----------------------------------------------------------
> 
> (Updated June 29, 2015, 9:55 p.m.)
> 
> 
> Review request for hive and Xuefu Zhang.
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> Extended HIVE-1131 to log more lineage info. A post exec hook, LineageLogger, is added to log the lineage in JSON format.
> 
> 
> Diffs
> -----
> 
>   ql/src/java/org/apache/hadoop/hive/ql/Driver.java 669e6be 
>   ql/src/java/org/apache/hadoop/hive/ql/QueryPlan.java a0d61f5 
>   ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java 0c6a938 
>   ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageInfo.java f98b38b 
>   ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageLogger.java PRE-CREATION 
>   ql/src/java/org/apache/hadoop/hive/ql/log/NoDeleteRollingFileAppender.java PRE-CREATION 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/ExprProcFactory.java c930b80 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/Generator.java 51bef04 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/LineageCtx.java cef24e3 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/OpProcFactory.java 5957ac0 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java f41668b 
>   ql/src/java/org/apache/hadoop/hive/ql/plan/FilterDesc.java 3a1a4af 
>   ql/src/java/org/apache/hadoop/hive/ql/plan/JoinDesc.java 3a4ea2f 
>   ql/src/java/org/apache/hadoop/hive/ql/session/LineageState.java e716ed2 
>   ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java e1cab79 
>   ql/src/test/queries/clientpositive/lineage2.q PRE-CREATION 
>   ql/src/test/queries/clientpositive/lineage3.q PRE-CREATION 
>   ql/src/test/results/clientpositive/alter_partition_change_col.q.out 0d97b7a 
>   ql/src/test/results/clientpositive/alter_table_cascade.q.out 0139466 
>   ql/src/test/results/clientpositive/combine2.q.out 2400c96 
>   ql/src/test/results/clientpositive/groupby_sort_1_23.q.out 34cd1ff 
>   ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out 0d631ce 
>   ql/src/test/results/clientpositive/index_auto_mult_tables.q.out c3c1fc8 
>   ql/src/test/results/clientpositive/index_auto_mult_tables_compact.q.out e3dfcb7 
>   ql/src/test/results/clientpositive/index_auto_partitioned.q.out f3ae876 
>   ql/src/test/results/clientpositive/index_auto_update.q.out 52509be 
>   ql/src/test/results/clientpositive/index_bitmap.q.out 596312d 
>   ql/src/test/results/clientpositive/index_bitmap_auto_partitioned.q.out 8d4774d 
>   ql/src/test/results/clientpositive/index_bitmap_rc.q.out 45fe339 
>   ql/src/test/results/clientpositive/index_compact.q.out a33f82a 
>   ql/src/test/results/clientpositive/index_compact_2.q.out fd4cdf9 
>   ql/src/test/results/clientpositive/join34.q.out 48c3b74 
>   ql/src/test/results/clientpositive/join35.q.out c0372a7 
>   ql/src/test/results/clientpositive/lineage1.q.out d9f1ce3 
>   ql/src/test/results/clientpositive/lineage2.q.out PRE-CREATION 
>   ql/src/test/results/clientpositive/lineage3.q.out PRE-CREATION 
>   ql/src/test/results/clientpositive/load_dyn_part13.q.out 1776e12 
>   ql/src/test/results/clientpositive/multiMapJoin1.q.out 08d2bc1 
>   ql/src/test/results/clientpositive/multi_insert.q.out ea2e554 
>   ql/src/test/results/clientpositive/multi_insert_move_tasks_share_dependencies.q.out 0fbad49 
>   ql/src/test/results/clientpositive/orc_dictionary_threshold.q.out 10ed4ac 
>   ql/src/test/results/clientpositive/ptf.q.out 6bd1747 
>   ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out 6c0f4a5 
>   ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out 8248a70 
>   ql/src/test/results/clientpositive/spark/join34.q.out 09b8b6b 
>   ql/src/test/results/clientpositive/spark/join35.q.out e84c860 
>   ql/src/test/results/clientpositive/spark/load_dyn_part13.q.out 4480310 
>   ql/src/test/results/clientpositive/spark/multi_insert.q.out c77eb05 
>   ql/src/test/results/clientpositive/spark/multi_insert_move_tasks_share_dependencies.q.out e3ef39e 
>   ql/src/test/results/clientpositive/spark/ptf.q.out 1ca6951 
>   ql/src/test/results/clientpositive/spark/union22.q.out fdb4d47 
>   ql/src/test/results/clientpositive/spark/union28.q.out 98582df 
>   ql/src/test/results/clientpositive/spark/union29.q.out 1776b4d 
>   ql/src/test/results/clientpositive/spark/union30.q.out 3409623 
>   ql/src/test/results/clientpositive/spark/union33.q.out 0e6b1aa 
>   ql/src/test/results/clientpositive/spark/union_date_trim.q.out 86b96ac 
>   ql/src/test/results/clientpositive/spark/union_remove_1.q.out ba0e293 
>   ql/src/test/results/clientpositive/spark/union_remove_10.q.out 2718775 
>   ql/src/test/results/clientpositive/spark/union_remove_11.q.out be65741 
>   ql/src/test/results/clientpositive/spark/union_remove_15.q.out 26cfbab 
>   ql/src/test/results/clientpositive/spark/union_remove_16.q.out 7a7aaf2 
>   ql/src/test/results/clientpositive/spark/union_remove_17.q.out 74a5b23 
>   ql/src/test/results/clientpositive/spark/union_remove_18.q.out a5e15c5 
>   ql/src/test/results/clientpositive/spark/union_remove_19.q.out ad44400 
>   ql/src/test/results/clientpositive/spark/union_remove_2.q.out 26c4eff 
>   ql/src/test/results/clientpositive/spark/union_remove_20.q.out 1d67177 
>   ql/src/test/results/clientpositive/spark/union_remove_21.q.out 9f5b070 
>   ql/src/test/results/clientpositive/spark/union_remove_22.q.out 2e01432 
>   ql/src/test/results/clientpositive/spark/union_remove_23.q.out d9875f3 
>   ql/src/test/results/clientpositive/spark/union_remove_24.q.out 2659798 
>   ql/src/test/results/clientpositive/spark/union_remove_25.q.out 0a94684 
>   ql/src/test/results/clientpositive/spark/union_remove_3.q.out a14a8b4 
>   ql/src/test/results/clientpositive/spark/union_remove_4.q.out 6c3d596 
>   ql/src/test/results/clientpositive/spark/union_remove_5.q.out 55baa8b 
>   ql/src/test/results/clientpositive/spark/union_remove_6.q.out cd36189 
>   ql/src/test/results/clientpositive/spark/union_remove_6_subq.q.out c981ae4 
>   ql/src/test/results/clientpositive/spark/union_remove_7.q.out 084fbd6 
>   ql/src/test/results/clientpositive/spark/union_remove_8.q.out f580bd8 
>   ql/src/test/results/clientpositive/spark/union_remove_9.q.out 0931d11 
>   ql/src/test/results/clientpositive/spark/union_top_level.q.out 9b10a46 
>   ql/src/test/results/clientpositive/spark/vectorized_ptf.q.out 8447c04 
>   ql/src/test/results/clientpositive/spark/windowing.q.out c8117d5 
>   ql/src/test/results/clientpositive/temp_table_windowing_expressions.q.out 417f595 
>   ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out 3d04de9 
>   ql/src/test/results/clientpositive/union22.q.out f14c512 
>   ql/src/test/results/clientpositive/union28.q.out ab3186e 
>   ql/src/test/results/clientpositive/union29.q.out 3a60d0a 
>   ql/src/test/results/clientpositive/union30.q.out 4529074 
>   ql/src/test/results/clientpositive/union33.q.out b44e7b2 
>   ql/src/test/results/clientpositive/unionDistinct_1.q.out 207caf2 
>   ql/src/test/results/clientpositive/union_date_trim.q.out 86b96ac 
>   ql/src/test/results/clientpositive/union_remove_1.q.out 5fa8caf 
>   ql/src/test/results/clientpositive/union_remove_10.q.out 228ff9e 
>   ql/src/test/results/clientpositive/union_remove_11.q.out bf38f0a 
>   ql/src/test/results/clientpositive/union_remove_15.q.out 67bdb1e 
>   ql/src/test/results/clientpositive/union_remove_16.q.out 2444337 
>   ql/src/test/results/clientpositive/union_remove_17.q.out a1b9474 
>   ql/src/test/results/clientpositive/union_remove_18.q.out 26e52e0 
>   ql/src/test/results/clientpositive/union_remove_19.q.out d8314f8 
>   ql/src/test/results/clientpositive/union_remove_2.q.out d3522f2 
>   ql/src/test/results/clientpositive/union_remove_20.q.out 4503726 
>   ql/src/test/results/clientpositive/union_remove_21.q.out 98e0166 
>   ql/src/test/results/clientpositive/union_remove_22.q.out 4f086f3 
>   ql/src/test/results/clientpositive/union_remove_23.q.out d0e21ba 
>   ql/src/test/results/clientpositive/union_remove_24.q.out f2f6bba 
>   ql/src/test/results/clientpositive/union_remove_25.q.out 3858bdc 
>   ql/src/test/results/clientpositive/union_remove_3.q.out 40e554a 
>   ql/src/test/results/clientpositive/union_remove_4.q.out 10a8e89 
>   ql/src/test/results/clientpositive/union_remove_5.q.out b59d6da 
>   ql/src/test/results/clientpositive/union_remove_6.q.out 67ba74c 
>   ql/src/test/results/clientpositive/union_remove_6_subq.q.out 0d1a436 
>   ql/src/test/results/clientpositive/union_remove_7.q.out 76c678f 
>   ql/src/test/results/clientpositive/union_remove_8.q.out fe67448 
>   ql/src/test/results/clientpositive/union_remove_9.q.out 684091b 
>   ql/src/test/results/clientpositive/union_top_level.q.out 1db196f 
>   ql/src/test/results/clientpositive/vectorized_ptf.q.out 194261f 
>   ql/src/test/results/clientpositive/windowing.q.out c8117d5 
>   ql/src/test/results/clientpositive/windowing_expressions.q.out 5c411ef 
> 
> Diff: https://reviews.apache.org/r/36025/diff/
> 
> 
> Testing
> -------
> 
> Unit test, Hive on Spark/MR.
> 
> 
> Thanks,
> 
> Jimmy Xiang
> 
>


Re: Review Request 36025: HIVE-11139 Emit more lineage information

Posted by Jimmy Xiang <jx...@cloudera.com>.

> On June 30, 2015, 11:58 p.m., Szehon Ho wrote:
> > ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageLogger.java, line 149
> > <https://reviews.apache.org/r/36025/diff/1/?file=995170#file995170line149>
> >
> >     Will this happen?  Can we ensure that it's always filled out?

Looks that it's always filled out. Removed this checking.


> On June 30, 2015, 11:58 p.m., Szehon Ho wrote:
> > ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/LineageCtx.java, line 157
> > <https://reviews.apache.org/r/36025/diff/1/?file=995174#file995174line157>
> >
> >     This can call the other method.

Right. Removed one method.


> On June 30, 2015, 11:58 p.m., Szehon Ho wrote:
> > ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/OpProcFactory.java, line 219
> > <https://reviews.apache.org/r/36025/diff/1/?file=995175#file995175line219>
> >
> >     Getter method should not do a side-effect.. we should make it clearer what is going on.

I thought about it too. Fixed it.


- Jimmy


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36025/#review89835
-----------------------------------------------------------


On June 29, 2015, 9:55 p.m., Jimmy Xiang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36025/
> -----------------------------------------------------------
> 
> (Updated June 29, 2015, 9:55 p.m.)
> 
> 
> Review request for hive and Xuefu Zhang.
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> Extended HIVE-1131 to log more lineage info. A post exec hook, LineageLogger, is added to log the lineage in JSON format.
> 
> 
> Diffs
> -----
> 
>   ql/src/java/org/apache/hadoop/hive/ql/Driver.java 669e6be 
>   ql/src/java/org/apache/hadoop/hive/ql/QueryPlan.java a0d61f5 
>   ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java 0c6a938 
>   ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageInfo.java f98b38b 
>   ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageLogger.java PRE-CREATION 
>   ql/src/java/org/apache/hadoop/hive/ql/log/NoDeleteRollingFileAppender.java PRE-CREATION 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/ExprProcFactory.java c930b80 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/Generator.java 51bef04 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/LineageCtx.java cef24e3 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/OpProcFactory.java 5957ac0 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java f41668b 
>   ql/src/java/org/apache/hadoop/hive/ql/plan/FilterDesc.java 3a1a4af 
>   ql/src/java/org/apache/hadoop/hive/ql/plan/JoinDesc.java 3a4ea2f 
>   ql/src/java/org/apache/hadoop/hive/ql/session/LineageState.java e716ed2 
>   ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java e1cab79 
>   ql/src/test/queries/clientpositive/lineage2.q PRE-CREATION 
>   ql/src/test/queries/clientpositive/lineage3.q PRE-CREATION 
>   ql/src/test/results/clientpositive/alter_partition_change_col.q.out 0d97b7a 
>   ql/src/test/results/clientpositive/alter_table_cascade.q.out 0139466 
>   ql/src/test/results/clientpositive/combine2.q.out 2400c96 
>   ql/src/test/results/clientpositive/groupby_sort_1_23.q.out 34cd1ff 
>   ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out 0d631ce 
>   ql/src/test/results/clientpositive/index_auto_mult_tables.q.out c3c1fc8 
>   ql/src/test/results/clientpositive/index_auto_mult_tables_compact.q.out e3dfcb7 
>   ql/src/test/results/clientpositive/index_auto_partitioned.q.out f3ae876 
>   ql/src/test/results/clientpositive/index_auto_update.q.out 52509be 
>   ql/src/test/results/clientpositive/index_bitmap.q.out 596312d 
>   ql/src/test/results/clientpositive/index_bitmap_auto_partitioned.q.out 8d4774d 
>   ql/src/test/results/clientpositive/index_bitmap_rc.q.out 45fe339 
>   ql/src/test/results/clientpositive/index_compact.q.out a33f82a 
>   ql/src/test/results/clientpositive/index_compact_2.q.out fd4cdf9 
>   ql/src/test/results/clientpositive/join34.q.out 48c3b74 
>   ql/src/test/results/clientpositive/join35.q.out c0372a7 
>   ql/src/test/results/clientpositive/lineage1.q.out d9f1ce3 
>   ql/src/test/results/clientpositive/lineage2.q.out PRE-CREATION 
>   ql/src/test/results/clientpositive/lineage3.q.out PRE-CREATION 
>   ql/src/test/results/clientpositive/load_dyn_part13.q.out 1776e12 
>   ql/src/test/results/clientpositive/multiMapJoin1.q.out 08d2bc1 
>   ql/src/test/results/clientpositive/multi_insert.q.out ea2e554 
>   ql/src/test/results/clientpositive/multi_insert_move_tasks_share_dependencies.q.out 0fbad49 
>   ql/src/test/results/clientpositive/orc_dictionary_threshold.q.out 10ed4ac 
>   ql/src/test/results/clientpositive/ptf.q.out 6bd1747 
>   ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out 6c0f4a5 
>   ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out 8248a70 
>   ql/src/test/results/clientpositive/spark/join34.q.out 09b8b6b 
>   ql/src/test/results/clientpositive/spark/join35.q.out e84c860 
>   ql/src/test/results/clientpositive/spark/load_dyn_part13.q.out 4480310 
>   ql/src/test/results/clientpositive/spark/multi_insert.q.out c77eb05 
>   ql/src/test/results/clientpositive/spark/multi_insert_move_tasks_share_dependencies.q.out e3ef39e 
>   ql/src/test/results/clientpositive/spark/ptf.q.out 1ca6951 
>   ql/src/test/results/clientpositive/spark/union22.q.out fdb4d47 
>   ql/src/test/results/clientpositive/spark/union28.q.out 98582df 
>   ql/src/test/results/clientpositive/spark/union29.q.out 1776b4d 
>   ql/src/test/results/clientpositive/spark/union30.q.out 3409623 
>   ql/src/test/results/clientpositive/spark/union33.q.out 0e6b1aa 
>   ql/src/test/results/clientpositive/spark/union_date_trim.q.out 86b96ac 
>   ql/src/test/results/clientpositive/spark/union_remove_1.q.out ba0e293 
>   ql/src/test/results/clientpositive/spark/union_remove_10.q.out 2718775 
>   ql/src/test/results/clientpositive/spark/union_remove_11.q.out be65741 
>   ql/src/test/results/clientpositive/spark/union_remove_15.q.out 26cfbab 
>   ql/src/test/results/clientpositive/spark/union_remove_16.q.out 7a7aaf2 
>   ql/src/test/results/clientpositive/spark/union_remove_17.q.out 74a5b23 
>   ql/src/test/results/clientpositive/spark/union_remove_18.q.out a5e15c5 
>   ql/src/test/results/clientpositive/spark/union_remove_19.q.out ad44400 
>   ql/src/test/results/clientpositive/spark/union_remove_2.q.out 26c4eff 
>   ql/src/test/results/clientpositive/spark/union_remove_20.q.out 1d67177 
>   ql/src/test/results/clientpositive/spark/union_remove_21.q.out 9f5b070 
>   ql/src/test/results/clientpositive/spark/union_remove_22.q.out 2e01432 
>   ql/src/test/results/clientpositive/spark/union_remove_23.q.out d9875f3 
>   ql/src/test/results/clientpositive/spark/union_remove_24.q.out 2659798 
>   ql/src/test/results/clientpositive/spark/union_remove_25.q.out 0a94684 
>   ql/src/test/results/clientpositive/spark/union_remove_3.q.out a14a8b4 
>   ql/src/test/results/clientpositive/spark/union_remove_4.q.out 6c3d596 
>   ql/src/test/results/clientpositive/spark/union_remove_5.q.out 55baa8b 
>   ql/src/test/results/clientpositive/spark/union_remove_6.q.out cd36189 
>   ql/src/test/results/clientpositive/spark/union_remove_6_subq.q.out c981ae4 
>   ql/src/test/results/clientpositive/spark/union_remove_7.q.out 084fbd6 
>   ql/src/test/results/clientpositive/spark/union_remove_8.q.out f580bd8 
>   ql/src/test/results/clientpositive/spark/union_remove_9.q.out 0931d11 
>   ql/src/test/results/clientpositive/spark/union_top_level.q.out 9b10a46 
>   ql/src/test/results/clientpositive/spark/vectorized_ptf.q.out 8447c04 
>   ql/src/test/results/clientpositive/spark/windowing.q.out c8117d5 
>   ql/src/test/results/clientpositive/temp_table_windowing_expressions.q.out 417f595 
>   ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out 3d04de9 
>   ql/src/test/results/clientpositive/union22.q.out f14c512 
>   ql/src/test/results/clientpositive/union28.q.out ab3186e 
>   ql/src/test/results/clientpositive/union29.q.out 3a60d0a 
>   ql/src/test/results/clientpositive/union30.q.out 4529074 
>   ql/src/test/results/clientpositive/union33.q.out b44e7b2 
>   ql/src/test/results/clientpositive/unionDistinct_1.q.out 207caf2 
>   ql/src/test/results/clientpositive/union_date_trim.q.out 86b96ac 
>   ql/src/test/results/clientpositive/union_remove_1.q.out 5fa8caf 
>   ql/src/test/results/clientpositive/union_remove_10.q.out 228ff9e 
>   ql/src/test/results/clientpositive/union_remove_11.q.out bf38f0a 
>   ql/src/test/results/clientpositive/union_remove_15.q.out 67bdb1e 
>   ql/src/test/results/clientpositive/union_remove_16.q.out 2444337 
>   ql/src/test/results/clientpositive/union_remove_17.q.out a1b9474 
>   ql/src/test/results/clientpositive/union_remove_18.q.out 26e52e0 
>   ql/src/test/results/clientpositive/union_remove_19.q.out d8314f8 
>   ql/src/test/results/clientpositive/union_remove_2.q.out d3522f2 
>   ql/src/test/results/clientpositive/union_remove_20.q.out 4503726 
>   ql/src/test/results/clientpositive/union_remove_21.q.out 98e0166 
>   ql/src/test/results/clientpositive/union_remove_22.q.out 4f086f3 
>   ql/src/test/results/clientpositive/union_remove_23.q.out d0e21ba 
>   ql/src/test/results/clientpositive/union_remove_24.q.out f2f6bba 
>   ql/src/test/results/clientpositive/union_remove_25.q.out 3858bdc 
>   ql/src/test/results/clientpositive/union_remove_3.q.out 40e554a 
>   ql/src/test/results/clientpositive/union_remove_4.q.out 10a8e89 
>   ql/src/test/results/clientpositive/union_remove_5.q.out b59d6da 
>   ql/src/test/results/clientpositive/union_remove_6.q.out 67ba74c 
>   ql/src/test/results/clientpositive/union_remove_6_subq.q.out 0d1a436 
>   ql/src/test/results/clientpositive/union_remove_7.q.out 76c678f 
>   ql/src/test/results/clientpositive/union_remove_8.q.out fe67448 
>   ql/src/test/results/clientpositive/union_remove_9.q.out 684091b 
>   ql/src/test/results/clientpositive/union_top_level.q.out 1db196f 
>   ql/src/test/results/clientpositive/vectorized_ptf.q.out 194261f 
>   ql/src/test/results/clientpositive/windowing.q.out c8117d5 
>   ql/src/test/results/clientpositive/windowing_expressions.q.out 5c411ef 
> 
> Diff: https://reviews.apache.org/r/36025/diff/
> 
> 
> Testing
> -------
> 
> Unit test, Hive on Spark/MR.
> 
> 
> Thanks,
> 
> Jimmy Xiang
> 
>