diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 36f6bcd069..9b644839ed 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -254,6 +254,7 @@ import org.apache.hadoop.io.Text; import org.apache.hadoop.mapred.InputFormat; import org.apache.hadoop.mapred.OutputFormat; +import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.security.UserGroupInformation; import com.google.common.base.Splitter; @@ -14218,6 +14219,9 @@ private void useCachedResult(QueryResultsCache.CacheEntry cacheEntry) { setColumnAccessInfo(cacheEntry.getQueryInfo().getColumnAccessInfo()); inputs.addAll(cacheEntry.getQueryInfo().getInputs()); + // Set recursive traversal in case the cached query was UNION generated by Tez. + conf.setBoolean(FileInputFormat.INPUT_DIR_RECURSIVE, true); + // Indicate that the query will use a cached result. setCacheUsage(new CacheUsage( CacheUsage.CacheStatus.QUERY_USING_CACHE, cacheEntry));