Hi Edward,

That's possibly due to using unix_timestamp (although the error message seems misleading if that proves true) . It's technically correct it shouldn't be flagged as deterministic because every time you call it you'll get a different answer as time progresses. However reality is I just want it called 1 time which is during planning and if I flag is as deterministic this is exactly what happens so you can do this:

@UDFType(deterministic = true)
public class UnixTimeStamp extends GenericUDFUnixTimeStamp {
// Making the udf deterministic which is kind of cheating but makes partition pruning work.
}

And then register the udf like you normally would.

If that's not helping do some creative sub-querying might help like
FROM (select * from entry_hourly_v3 where dt=2015101517 ) entry_hourly_v3 INNER JOIN article_meta ON

Bennie.

On 15/10/15 23:06, Edward Capriolo wrote:
So I have strict mode on and I like to keep it that way.

I am trying to do this query.

INSERT OVERWRITE TABLE vertical_stats_recent PARTITION (dt=2015101517)
SELECT ...
FROM entry_hourly_v3 INNER JOIN article_meta ON
entry_hourly_v3.entry_id = article_meta.entry_id
INNER JOIN channel_meta ON
channel_meta.section_name = article_meta.channel

WHERE entry_hourly_v3.dt=2015101517
AND article_meta.dt=2015101517
AND channel_meta.hitdate=20151015
AND article_meta.publish_timestamp > ((unix_timestamp() * 1000) - (1000 * 60 * 60 * 24 * 2))
GROUP

entry_hourly_v3, channel_meta and article_meta are partitioned tables.

*Your query has the following error(s):*

Error while compiling statement: FAILED: SemanticException [Error 10041]: No partition predicate found for Alias "entry_hourly_v3" Table "entry_hourly_v3"

I also tried putting views on the table and I had no luck.

Is there any way I can do this query without turning strict mode off?



Reply via email to