You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by Ted Xu <fr...@gmail.com> on 2013/11/15 02:57:07 UTC

Review Request 15561: HIVE-5771 Constant propagation optimizer for Hive

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

Review request for hive.


Bugs: HIVE-5771
    https://issues.apache.org/jira/browse/HIVE-5771


Repository: hive


Description
-------

Currently there is no constant folding/propagation optimizer, all expressions are evaluated at runtime. 

HIVE-2470 did a great job on evaluating constants on UDF initializing phase, however, it is still a runtime evaluation and it doesn't propagate constants from a subquery to outside.

It may reduce I/O and accelerate process if we introduce such an optimizer.


Diffs
-----

  http://svn.apache.org/repos/asf/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcCtx.java PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog1.q PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog2.q PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog_dp.q PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cast1.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cluster.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/column_access_stats.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog1.q.out PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog2.q.out PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog_dp.q.out PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/create_like_view.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_ppd.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_1.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_skew_1.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_empty.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_file_format.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_multiple.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_partitioned.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_update.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_bitmap_auto_partitioned.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale_partitioned.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/infer_const_type.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input18.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input23.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input26.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input38.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input6.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part2.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part4.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part6.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/insert1.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join38.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_1.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_3.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_nullsafe.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_view.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/lateral_view_ppd.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/literal_double.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/macro.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/mapjoin1.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/merge4.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert_move_tasks_share_dependencies.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/num_op_type_conv.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/pcr.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd2.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_clusterby.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_constant_where.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_outer_join5.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_repeated_alias.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_case.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_col.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_union_view.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ql_rewrite_gbtoidx.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/query_result_fileformat.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/quote1.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regex_col.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regexp_extract.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/sample8.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_and.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_not.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_or.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_processor_namespaces.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_variable_sub.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/show_create_table_alter.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/show_create_table_serde.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin9.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_18.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_25.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/stats_empty_dyn_part.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subq_where_serialization.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_exists.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_in.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_multiinsert.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notexists.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notin.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/transform_ppr1.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/transform_ppr2.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_cast_1.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_widening.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf1.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf4.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf5.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf6.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf7.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf9.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_10_trims.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_E.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_PI.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_abs.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_ascii.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_between.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_case.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_coalesce.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_degrees.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_elt.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hash.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hour.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_if.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_instr.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_like.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_locate.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lower.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lpad.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_minute.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_nvl.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_parse_url.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_printf.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_radians.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_reflect2.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_repeat.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_rpad.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_second.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_sign.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_space.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_when.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union33.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union_ppr.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union_view.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/unset_table_view_property.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out 1541857 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out 1541857 

Diff: https://reviews.apache.org/r/15561/diff/


Testing
-------


Thanks,

Ted Xu


Re: Review Request 15561: HIVE-5771 Constant propagation optimizer for Hive

Posted by Eric Hanson <eh...@microsoft.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15561/#review28999
-----------------------------------------------------------



http://svn.apache.org/repos/asf/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
<https://reviews.apache.org/r/15561/#comment56043>

    Please eliminate trailing white space.
    
    I recommend changing
    HIVEOPTCONSTANTPROG
    
    to 
    HIVEOPTCONSTANTPROPAGATION



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java
<https://reviews.apache.org/r/15561/#comment56044>

    Please remove trailing white space in all your new code. You should be able to set your editor to help do this (Eclipse can do this). 



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java
<https://reviews.apache.org/r/15561/#comment56046>

    Please clarify this comment (3). I'm not sure what it means.



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java
<https://reviews.apache.org/r/15561/#comment56047>

    Coding style guidelines say to but a blank line before all comments. Please check all your comments for this.



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java
<https://reviews.apache.org/r/15561/#comment56048>

    What is a topop node? Please elaborate.



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcCtx.java
<https://reviews.apache.org/r/15561/#comment56050>

    Please elaborate a little bit on what this context is.



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcCtx.java
<https://reviews.apache.org/r/15561/#comment56049>

    trailing white space



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcCtx.java
<https://reviews.apache.org/r/15561/#comment56051>

    Please add a descriptive comment for this method.
    
    Also, do you have a design specification or document? This is complex enough that it is important to have that. 



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcCtx.java
<https://reviews.apache.org/r/15561/#comment56052>

    Please add a descriptive comment before this method



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56053>

    Please add a descriptive comment before this method



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56054>

    Please add a descriptive comment before this method



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56055>

    Funtion -> function
    foding -> folding



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56056>

    Please add a descriptive comment before this method



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56058>

    Need *to* convert type
    



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56060>

    remove this commented assert?



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56059>

    should say "never supposed to go here"
    
    If it is really an error to ever go here, why not throw an exception? That way the code will get debugged faster.
    
    If you are supposed to go here then remove the comment that says you're not supposed to go here.



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56061>

    remove trailing blank



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56062>

    Please add a descriptive comment before this method



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56063>

    Please elaborate a little in the comment
    
    Probably should say "Constant Propagation" not "Constant Propagate"
    



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56064>

    hold true -> holds true



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56065>

    holds false



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56066>

    Propagate on -> Propagation for



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56067>

    trailing blank



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56068>

    Propagate -> Propagation



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56069>

    Propagate on -> Propagation for



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56070>

    Should say
    
    The Node Processor for constant propagation for FileSink Operators. In addition to constant propagation, this processor also prunes dynamic partitions to static partitions if possible.
     
    



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56072>

    Do you mean "assume only 1 ..."?



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56074>

    remove commented code
    
    change to "can be rewritten to..."
    



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56075>

    Propatation -> Propagation
    on -> for



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56076>

    Please add comment before method
    



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
<https://reviews.apache.org/r/15561/#comment56077>

    Please add a comment before the method


- Eric Hanson


On Nov. 15, 2013, 1:57 a.m., Ted Xu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15561/
> -----------------------------------------------------------
> 
> (Updated Nov. 15, 2013, 1:57 a.m.)
> 
> 
> Review request for hive.
> 
> 
> Bugs: HIVE-5771
>     https://issues.apache.org/jira/browse/HIVE-5771
> 
> 
> Repository: hive
> 
> 
> Description
> -------
> 
> Currently there is no constant folding/propagation optimizer, all expressions are evaluated at runtime. 
> 
> HIVE-2470 did a great job on evaluating constants on UDF initializing phase, however, it is still a runtime evaluation and it doesn't propagate constants from a subquery to outside.
> 
> It may reduce I/O and accelerate process if we introduce such an optimizer.
> 
> 
> Diffs
> -----
> 
>   http://svn.apache.org/repos/asf/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcCtx.java PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog1.q PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog2.q PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog_dp.q PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cast1.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cluster.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/column_access_stats.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog1.q.out PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog2.q.out PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog_dp.q.out PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/create_like_view.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_ppd.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_1.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_skew_1.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_empty.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_file_format.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_multiple.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_partitioned.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_update.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_bitmap_auto_partitioned.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale_partitioned.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/infer_const_type.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input18.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input23.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input26.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input38.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input6.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part2.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part4.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part6.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/insert1.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join38.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_1.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_3.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_nullsafe.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_view.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/lateral_view_ppd.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/literal_double.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/macro.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/mapjoin1.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/merge4.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert_move_tasks_share_dependencies.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/num_op_type_conv.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/pcr.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd2.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_clusterby.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_constant_where.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_outer_join5.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_repeated_alias.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_case.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_col.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_union_view.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ql_rewrite_gbtoidx.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/query_result_fileformat.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/quote1.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regex_col.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regexp_extract.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/sample8.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_and.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_not.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_or.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_processor_namespaces.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_variable_sub.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/show_create_table_alter.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/show_create_table_serde.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin9.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_18.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_25.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/stats_empty_dyn_part.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subq_where_serialization.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_exists.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_in.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_multiinsert.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notexists.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notin.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/transform_ppr1.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/transform_ppr2.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_cast_1.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_widening.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf1.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf4.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf5.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf6.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf7.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf9.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_10_trims.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_E.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_PI.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_abs.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_ascii.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_between.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_case.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_coalesce.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_degrees.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_elt.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hash.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hour.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_if.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_instr.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_like.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_locate.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lower.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lpad.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_minute.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_nvl.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_parse_url.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_printf.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_radians.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_reflect2.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_repeat.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_rpad.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_second.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_sign.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_space.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_when.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union33.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union_ppr.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union_view.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/unset_table_view_property.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out 1541857 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out 1541857 
> 
> Diff: https://reviews.apache.org/r/15561/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Ted Xu
> 
>


Re: Review Request 15561: HIVE-5771 Constant propagation optimizer for Hive

Posted by Ted Xu <fr...@gmail.com>.

> On Nov. 19, 2013, 6:45 p.m., Xuefu Zhang wrote:
> > http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java, line 398
> > <https://reviews.apache.org/r/15561/diff/2/?file=386971#file386971line398>
> >
> >     What is this fix for?

Because ColumnPruner is applied after constant propagation optimizer(ConstantPO), some expressions are already eliminated by ConstantPO. This statement here is to prevent ArrayOutOfBoundException in that cases.


- Ted


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


On Jan. 18, 2014, 2:54 p.m., Ted Xu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15561/
> -----------------------------------------------------------
> 
> (Updated Jan. 18, 2014, 2:54 p.m.)
> 
> 
> Review request for hive.
> 
> 
> Bugs: HIVE-5771
>     https://issues.apache.org/jira/browse/HIVE-5771
> 
> 
> Repository: hive
> 
> 
> Description
> -------
> 
> Currently there is no constant folding/propagation optimizer, all expressions are evaluated at runtime. 
> 
> HIVE-2470 did a great job on evaluating constants on UDF initializing phase, however, it is still a runtime evaluation and it doesn't propagate constants from a subquery to outside.
> 
> It may reduce I/O and accelerate process if we introduce such an optimizer.
> 
> 
> Diffs
> -----
> 
>   http://svn.apache.org/repos/asf/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/contrib/src/test/results/clientpositive/udf_example_add.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/contrib/src/test/results/clientpositive/udf_example_format.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/hbase_ppd_key_range.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/hbase_pushdown.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/ppd_key_ranges.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcCtx.java PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/alter_partition_coltype.q 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_filter.q 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_part.q 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_select.q 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog1.q PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog2.q PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog_dp.q PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog_type.q PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/decimal_udf.q 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/pcr.q 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cast1.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cluster.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/column_access_stats.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog1.q.out PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog2.q.out PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog_dp.q.out PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog_type.q.out PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_ppd.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_1.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_skew_1.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_empty.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_file_format.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_multiple.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_partitioned.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_update.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_bitmap_auto_partitioned.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale_partitioned.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/infer_const_type.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input18.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input23.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input26.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input38.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input6.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part2.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part4.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part6.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/insert1.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join38.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_1.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_3.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_nullsafe.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_view.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/lateral_view_ppd.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/literal_double.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/macro.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/mapjoin1.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert_move_tasks_share_dependencies.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/num_op_type_conv.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd2.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_clusterby.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_constant_where.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_outer_join5.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_repeated_alias.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_case.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_col.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_union_view.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ql_rewrite_gbtoidx.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/query_result_fileformat.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/quote1.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/quotedid_basic.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/quotedid_partition.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regex_col.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regexp_extract.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/sample8.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_and.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_not.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_or.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_processor_namespaces.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_variable_sub.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin9.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_18.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_25.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/stats_empty_dyn_part.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subq_where_serialization.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_exists.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_exists_having.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_in.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_in_having.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_multiinsert.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notexists.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notexists_having.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notin.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notin_having.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/transform_ppr1.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_cast_1.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_widening.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf1.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf4.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf5.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf6.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf7.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf9.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_10_trims.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_E.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_PI.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_abs.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_ascii.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_between.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_case.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_coalesce.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_degrees.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_elt.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hash.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hour.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_if.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_instr.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_like.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_locate.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lower.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lpad.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_minute.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_nvl.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_parse_url.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_printf.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_radians.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_reflect2.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_repeat.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_rpad.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_second.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_sign.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_space.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_when.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union33.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union_view.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorization_div0.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out 1559345 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out 1559345 
> 
> Diff: https://reviews.apache.org/r/15561/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Ted Xu
> 
>


Re: Review Request 15561: HIVE-5771 Constant propagation optimizer for Hive

Posted by Xuefu Zhang <xz...@cloudera.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15561/#review29119
-----------------------------------------------------------



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java
<https://reviews.apache.org/r/15561/#comment56246>

    This import seems not being used.



http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java
<https://reviews.apache.org/r/15561/#comment56247>

    What is this fix for?


- Xuefu Zhang


On Nov. 17, 2013, 12:37 p.m., Ted Xu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15561/
> -----------------------------------------------------------
> 
> (Updated Nov. 17, 2013, 12:37 p.m.)
> 
> 
> Review request for hive.
> 
> 
> Bugs: HIVE-5771
>     https://issues.apache.org/jira/browse/HIVE-5771
> 
> 
> Repository: hive
> 
> 
> Description
> -------
> 
> Currently there is no constant folding/propagation optimizer, all expressions are evaluated at runtime. 
> 
> HIVE-2470 did a great job on evaluating constants on UDF initializing phase, however, it is still a runtime evaluation and it doesn't propagate constants from a subquery to outside.
> 
> It may reduce I/O and accelerate process if we introduce such an optimizer.
> 
> 
> Diffs
> -----
> 
>   http://svn.apache.org/repos/asf/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/contrib/src/test/results/clientpositive/udf_example_add.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/contrib/src/test/results/clientpositive/udf_example_format.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/hbase_ppd_key_range.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/hbase_pushdown.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/ppd_key_ranges.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcCtx.java PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog1.q PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog2.q PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog_dp.q PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cast1.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cluster.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/column_access_stats.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog1.q.out PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog2.q.out PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog_dp.q.out PRE-CREATION 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/create_like_view.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_ppd.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_1.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_skew_1.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_empty.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_file_format.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_multiple.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_partitioned.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_update.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_bitmap_auto_partitioned.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale_partitioned.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/infer_const_type.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input18.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input23.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input26.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input38.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input6.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part2.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part4.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part6.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/insert1.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join38.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_1.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_3.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_nullsafe.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_view.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/lateral_view_ppd.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/literal_double.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/macro.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/mapjoin1.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/merge4.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert_move_tasks_share_dependencies.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/num_op_type_conv.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/pcr.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd2.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_clusterby.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_constant_where.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_outer_join5.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_repeated_alias.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_case.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_col.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_union_view.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ql_rewrite_gbtoidx.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/query_result_fileformat.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/quote1.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regex_col.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regexp_extract.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/sample8.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_and.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_not.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_or.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_processor_namespaces.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_variable_sub.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/show_create_table_alter.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/show_create_table_serde.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin9.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_18.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_25.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/stats_empty_dyn_part.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subq_where_serialization.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_exists.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_in.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_multiinsert.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notexists.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notin.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/transform_ppr1.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/transform_ppr2.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_cast_1.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_widening.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf1.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf4.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf5.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf6.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf7.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf9.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_10_trims.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_E.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_PI.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_abs.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_ascii.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_between.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_case.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_coalesce.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_degrees.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_elt.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hash.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hour.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_if.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_instr.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_like.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_locate.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lower.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lpad.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_minute.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_nvl.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_parse_url.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_printf.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_radians.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_reflect2.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_repeat.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_rpad.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_second.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_sign.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_space.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_when.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union33.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union_ppr.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union_view.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/unset_table_view_property.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/cast1.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby1.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby2.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby3.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby4.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby5.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby6.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/input6.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join1.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join3.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join4.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join5.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join8.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/udf1.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/udf4.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/udf6.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/udf_case.q.xml 1542644 
>   http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/udf_when.q.xml 1542644 
> 
> Diff: https://reviews.apache.org/r/15561/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Ted Xu
> 
>


Re: Review Request 15561: HIVE-5771 Constant propagation optimizer for Hive

Posted by Ted Xu <fr...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15561/
-----------------------------------------------------------

(Updated Jan. 18, 2014, 2:54 p.m.)


Review request for hive.


Changes
-------

Fixed unit test failures.


Bugs: HIVE-5771
    https://issues.apache.org/jira/browse/HIVE-5771


Repository: hive


Description
-------

Currently there is no constant folding/propagation optimizer, all expressions are evaluated at runtime. 

HIVE-2470 did a great job on evaluating constants on UDF initializing phase, however, it is still a runtime evaluation and it doesn't propagate constants from a subquery to outside.

It may reduce I/O and accelerate process if we introduce such an optimizer.


Diffs (updated)
-----

  http://svn.apache.org/repos/asf/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/contrib/src/test/results/clientpositive/udf_example_add.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/contrib/src/test/results/clientpositive/udf_example_format.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/hbase_ppd_key_range.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/hbase_pushdown.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/ppd_key_ranges.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcCtx.java PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/alter_partition_coltype.q 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_filter.q 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_part.q 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_select.q 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog1.q PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog2.q PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog_dp.q PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog_type.q PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/decimal_udf.q 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/pcr.q 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cast1.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cluster.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/column_access_stats.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog1.q.out PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog2.q.out PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog_dp.q.out PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog_type.q.out PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_ppd.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_1.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_skew_1.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_empty.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_file_format.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_multiple.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_partitioned.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_update.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_bitmap_auto_partitioned.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale_partitioned.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/infer_const_type.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input18.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input23.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input26.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input38.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input6.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part2.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part4.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part6.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/insert1.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join38.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_1.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_3.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_nullsafe.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_view.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/lateral_view_ppd.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/literal_double.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/macro.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/mapjoin1.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert_move_tasks_share_dependencies.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/num_op_type_conv.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd2.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_clusterby.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_constant_where.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_outer_join5.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_repeated_alias.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_case.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_col.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_union_view.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ql_rewrite_gbtoidx.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/query_result_fileformat.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/quote1.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/quotedid_basic.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/quotedid_partition.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regex_col.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regexp_extract.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/sample8.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_and.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_not.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_or.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_processor_namespaces.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_variable_sub.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin9.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_18.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_25.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/stats_empty_dyn_part.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subq_where_serialization.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_exists.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_exists_having.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_in.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_in_having.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_multiinsert.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notexists.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notexists_having.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notin.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notin_having.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/transform_ppr1.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_cast_1.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_widening.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf1.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf4.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf5.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf6.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf7.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf9.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_10_trims.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_E.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_PI.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_abs.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_ascii.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_between.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_case.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_coalesce.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_degrees.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_elt.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hash.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hour.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_if.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_instr.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_like.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_locate.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lower.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lpad.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_minute.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_nvl.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_parse_url.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_printf.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_radians.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_reflect2.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_repeat.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_rpad.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_second.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_sign.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_space.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_when.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union33.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union_view.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorization_div0.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out 1559345 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out 1559345 

Diff: https://reviews.apache.org/r/15561/diff/


Testing
-------


Thanks,

Ted Xu


Re: Review Request 15561: HIVE-5771 Constant propagation optimizer for Hive

Posted by Ted Xu <fr...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15561/
-----------------------------------------------------------

(Updated Nov. 17, 2013, 12:37 p.m.)


Review request for hive.


Changes
-------

1. Fixed problems per Eric's review (thanks Eric!).
2. Added fix for UT failures on TestParse.


Bugs: HIVE-5771
    https://issues.apache.org/jira/browse/HIVE-5771


Repository: hive


Description
-------

Currently there is no constant folding/propagation optimizer, all expressions are evaluated at runtime. 

HIVE-2470 did a great job on evaluating constants on UDF initializing phase, however, it is still a runtime evaluation and it doesn't propagate constants from a subquery to outside.

It may reduce I/O and accelerate process if we introduce such an optimizer.


Diffs (updated)
-----

  http://svn.apache.org/repos/asf/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/contrib/src/test/results/clientpositive/udf_example_add.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/contrib/src/test/results/clientpositive/udf_example_format.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/hbase_ppd_key_range.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/hbase_pushdown.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/hbase-handler/src/test/results/positive/ppd_key_ranges.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcCtx.java PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog1.q PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog2.q PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/queries/clientpositive/constprog_dp.q PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cast1.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/cluster.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/column_access_stats.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog1.q.out PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog2.q.out PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/constprog_dp.q.out PRE-CREATION 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/create_like_view.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_ppd.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_1.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/groupby_sort_skew_1.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_empty.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_file_format.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_multiple.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_partitioned.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_auto_update.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_bitmap_auto_partitioned.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/index_stale_partitioned.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/infer_const_type.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input18.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input23.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input26.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input38.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input6.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part2.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part4.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/input_part6.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/insert1.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join38.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_1.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_cond_pushdown_3.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_nullsafe.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/join_view.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/lateral_view_ppd.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/literal_double.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/macro.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/mapjoin1.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/merge4.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/multi_insert_move_tasks_share_dependencies.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/num_op_type_conv.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/pcr.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd2.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_clusterby.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_constant_where.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_outer_join5.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_repeated_alias.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_case.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_udf_col.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ppd_union_view.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/ql_rewrite_gbtoidx.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/query_result_fileformat.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/quote1.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regex_col.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/regexp_extract.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/sample8.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_and.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_not.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/select_unquote_or.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_processor_namespaces.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/set_variable_sub.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/show_create_table_alter.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/show_create_table_serde.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin9.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_18.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_25.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/stats_empty_dyn_part.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subq_where_serialization.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_exists.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_in.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_multiinsert.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notexists.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/subquery_notin.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/transform_ppr1.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/transform_ppr2.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_cast_1.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/type_widening.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf1.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf4.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf5.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf6.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf7.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf9.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_10_trims.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_E.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_PI.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_abs.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_ascii.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_between.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_case.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_coalesce.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_degrees.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_elt.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hash.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_hour.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_if.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_instr.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_like.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_locate.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lower.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_lpad.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_minute.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_nvl.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_parse_url.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_printf.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_radians.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_reflect2.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_repeat.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_rpad.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_second.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_sign.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_space.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/udf_when.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union33.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union_ppr.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/union_view.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/unset_table_view_property.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/cast1.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby1.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby2.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby3.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby4.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby5.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/groupby6.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/input6.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join1.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join3.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join4.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join5.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/join8.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/udf1.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/udf4.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/udf6.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/udf_case.q.xml 1542644 
  http://svn.apache.org/repos/asf/hive/trunk/ql/src/test/results/compiler/plan/udf_when.q.xml 1542644 

Diff: https://reviews.apache.org/r/15561/diff/


Testing
-------


Thanks,

Ted Xu