diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/DynamicPartitionPruningOptimization.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/DynamicPartitionPruningOptimization.java index f475926..5ebd28a 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/DynamicPartitionPruningOptimization.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/DynamicPartitionPruningOptimization.java @@ -189,6 +189,18 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx procCtx, Obje LOG.debug("TableScan: " + ts); } + if (ts == null) { + // could be a reduce sink + LOG.warn("Could not find the table scan for " + filter); + return null; + } else { + Table table = ts.getConf().getTableMetadata(); + if (table != null && !table.isPartitioned()) { + // table is not partitioned, skip optimizer + return null; + } + } + // collect the dynamic pruning conditions removerContext.dynLists.clear(); walkExprTree(desc.getPredicate(), removerContext);