is this behavior for Hive on TEZ only?
or for Hive on MapReduce too?

On Tez, I think yes: evaluate functions and sub-queries and recompile to
partition pruning.
but in CDH compile all one time


On 16 May 2018 at 07:58, Furcy Pin <pin.fu...@gmail.com> wrote:

> Yes, I believe that's what Constant Object Inspector are used for.
>
> The initialize method returns object inspectors that are used at query
> compilation time to check the type safety and perform potential
> optimizations. If you return a StringConstantObjectInspector containing the
> value that your method is supposed to return, the Hive optimiser will know
> that it can safely perform partition pruning on it.
>
> On Tue, 15 May 2018, 23:32 Alberto Ramón, <a.ramonporto...@gmail.com>
> wrote:
>
>> Yes, I checked, by default all UDF are deterministic (LINK
>> <https://hive.apache.org/javadocs/r1.2.2/api/org/apache/hadoop/hive/ql/udf/UDFType.html>
>> )
>>
>> I think that I need something like 'eager evaluation' --> evaluate UDFs
>> before build physical plan (if not you can't do partition pruning)
>>
>> On 15 May 2018 at 09:21, Furcy Pin <pin.fu...@gmail.com> wrote:
>>
>>> Hi Alberto,
>>>
>>>
>>> If I'm not mistaken, to make sure that this work you need to give the
>>> proper annotation in your UDF code (deterministic, and maybe some other).
>>> You may also need to return a Constant Object Inspector in the unit
>>> method so that Hive knows that it can perform partition pruning with it.
>>>
>>> On Wed, 9 May 2018, 19:23 Alberto Ramón, <a.ramonporto...@gmail.com>
>>> wrote:
>>>
>>>> Hello
>>>>
>>>> We have a UDP to select the correct partition to read 'FindPartition':
>>>> Select * from TB where partitionCol =FindPartition();
>>>>
>>>> How I can avoid a full scan of all partitions?
>>>>
>>>>
>>>> (Set MyPartition=FindPartition();  // Is not valid in Hive)
>>>>
>>>
>>

Reply via email to