-----------------------------------------------------------
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

Reply via email to