----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/2078/#review2259 -----------------------------------------------------------
Nice, this is even better then what I thought. This now supports all OIs, except for struct and unions, right? No reason not to add structs, should we add both? Also, should we change so that every VoidObjectInspector is constant (not sure if that would complicate things more, in which case - no)? I still think it would be preferable that constant OI guarantees that objects it returns are constant - if somebody changes returned value, next values it returns shouldn't be affected. But this doesn't matter that much. - Igor On 2011-10-03 01:36:16, Jonathan Chang wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/2078/ > ----------------------------------------------------------- > > (Updated 2011-10-03 01:36:16) > > > Review request for hive, Carl Steinbach, John Sichi, and Igor Kabiljo. > > > Summary > ------- > > ConstantObjectInspectors were introduced in a previous patch so that UDF's > could have access to constant values at initialize time. This diff adds the > following improvements: > > 1.) Extends this functionality beyond primitive types to List/Map types. > 2.) Fixes a bug in ExprNodeGenericFuncDesc where the constant value would not > propagate beyond one level of evaluation. > 3.) Adds a helper class to make functions constant-aware. By inheriting from > this class they return constant OIs if all their arguments are constant, and > they cache the result so that computation is only done during initialize(). > Some functions such as ARRAY/IF/MAP have been migrated. > > > This addresses bug HIVE-2470. > https://issues.apache.org/jira/browse/HIVE-2470 > > > Diffs > ----- > > > ql/src/java/org/apache/hadoop/hive/ql/exec/ExprNodeGenericFuncEvaluator.java > ebc236d > ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeGenericFuncDesc.java > 7da5d6a > ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 570e408 > ql/src/test/queries/clientpositive/constant_prop.q PRE-CREATION > ql/src/test/results/clientpositive/constant_prop.q.out PRE-CREATION > > serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorFactory.java > a4689fb > > serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java > 2c1a7e0 > > serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardConstantListObjectInspector.java > PRE-CREATION > > serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardConstantMapObjectInspector.java > PRE-CREATION > > Diff: https://reviews.apache.org/r/2078/diff > > > Testing > ------- > > ant test > > > Thanks, > > Jonathan > >