diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CliConfigs.java b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CliConfigs.java index 92919e9daf..a3dcf9865d 100644 --- a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CliConfigs.java +++ b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CliConfigs.java @@ -519,6 +519,7 @@ public AccumuloCliConfig() { super(CoreAccumuloCliDriver.class); try { setQueryDir("accumulo-handler/src/test/queries/positive"); + excludeQuery("accumulo_joins.q"); setResultsDir("accumulo-handler/src/test/results/positive"); setLogDir("itests/qtest/target/qfile-results/accumulo-handler/positive"); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java index ea37dafd62..a86656c661 100755 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java @@ -58,6 +58,7 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; import org.apache.hadoop.hive.ql.log.PerfLogger; import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.metadata.HiveStoragePredicateHandler; import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc; import org.apache.hadoop.hive.ql.plan.MapWork; import org.apache.hadoop.hive.ql.plan.OperatorDesc; @@ -822,10 +823,12 @@ public static void pushFilters(JobConf jobConf, TableScanOperator tableScan, return; } - // disable filter pushdown for mapreduce when there are more than one table aliases, + // disable filter pushdown for mapreduce(except for storage handlers) when there are more than one table aliases, // since we don't clone jobConf per alias - if (mrwork != null && mrwork.getAliases() != null && mrwork.getAliases().size() > 1 && - jobConf.get(ConfVars.HIVE_EXECUTION_ENGINE.varname).equals("mr")) { + if (mrwork != null && mrwork.getAliases() != null && mrwork.getAliases().size() > 1 + && jobConf.get(ConfVars.HIVE_EXECUTION_ENGINE.varname).equals("mr") + && (scanDesc.getTableMetadata() == null + || !(scanDesc.getTableMetadata().getStorageHandler() instanceof HiveStoragePredicateHandler))) { return; }