hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Chang" <jonch...@fb.com>
Subject Re: Review Request: Improve support for ConstantObjectInspectors in Hive
Date Mon, 03 Oct 2011 17:56:22 GMT


> On 2011-10-03 08:31:46, Igor Kabiljo wrote:
> > 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.
> >

* I agree that structs and unions would be good to have at some point but it turns out they
are much harder to implement.  In particular, they contain references to constituent OIs and
do not have natural Java/Writable equivalents.   Thus, the way the constant value should be
stored is not obvious and you have weird interactions where some field OI maybe a constantOI
but not the whole thing, etc.  This is complex enough that I think it's worth deferring to
another diff

* I will convert void OI to be constant.

* I'm not sure that constant OI guarantee that its objects are constant; it might imply unnecessary
copies and currently none of the rest of the UDF architecture functions this way (most things
passed around are writable and it's up to consumers not to assume ownership).


- Jonathan


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


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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message