I just committed the fix from Amareshwari, so after this gets pushed, it should 
be possible to back out the conf changes which were applied to avoid the bug 
from HIVE-1538.

Read the release notes I added on HIVE-2344 and chime in with a new JIRA issue 
if you think there are cases where it's important to do finer discrimination in 
what kinds of SELECT expressions to allow for ppd...in general it's a 
cost-based optimizer problem.

As an example, consider

select * from
(select f(x,y) as z from t) s 
where z > 3;

Before HIVE-1538, there was a bug where we would push down f(x,y)>3 even when f 
was non-deterministic.

HIVE-1538 made that bug much more obvious.

HIVE-2344 fixes it, but also prevents the pushdown even in cases where f is 
deterministic.  This is good in some cases (e.g. when f is expensive to compute 
and the filter selectivity is poor), but could be bad in others (e.g. when f is 
something simple like a CAST and the filter is highly selective).

JVS

Reply via email to