[ https://issues.apache.org/jira/browse/HIVE-20634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Karthik Manamcheri resolved HIVE-20634. --------------------------------------- Resolution: Not A Problem I realized that this was not a bug. {{directSql.generateSqlFilterForPushdown(..)}} never calls SQL and only generates the filter. Closing as Not A Problem. > DirectSQL does not retry in ORM mode while getting partitions by filter > ----------------------------------------------------------------------- > > Key: HIVE-20634 > URL: https://issues.apache.org/jira/browse/HIVE-20634 > Project: Hive > Issue Type: Bug > Reporter: Karthik Manamcheri > Assignee: Karthik Manamcheri > Priority: Major > > The code path for getting partitions by filter is as follows, > {code:java} > protected List<Partition> getPartitionsByFilterInternal(..) { > ... > @Override > protected boolean canUseDirectSql(GetHelper<List<Partition>> ctx) > throws MetaException > { > return directSql.generateSqlFilterForPushdown(ctx.getTable(), tree, > filter); > } > ... > } > {code} > If directSql.generateSqlFilterForPushdown throws an exception, we should be > returning false from canUseDirectSql instead of propagating the exception. > The propagation of exception causes the whole query to fail, instead of > retrying with JDO. > We should have code such as > {code:java} > @Override > protected boolean canUseDirectSql(GetHelper<Integer> ctx) throws > MetaException { > try { > return directSql.generateSqlFilterForPushdown(ctx.getTable(), > exprTree, filter); > } catch (final MetaException me) { > return false; > } > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)