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 c1e7f5d..c50e7d4 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 @@ -9534,14 +9534,19 @@ private void putAccessedColumnsToReadEntity(HashSet inputs, ColumnAc Map> tableToColumnAccessMap = columnAccessInfo.getTableToColumnAccessMap(); if (tableToColumnAccessMap != null && !tableToColumnAccessMap.isEmpty()) { for(ReadEntity entity: inputs) { + List cols; switch (entity.getType()) { case TABLE: - entity.getAccessedColumns().addAll( - tableToColumnAccessMap.get(entity.getTable().getCompleteName())); + cols = tableToColumnAccessMap.get(entity.getTable().getCompleteName()); + if (cols != null && !cols.isEmpty()) { + entity.getAccessedColumns().addAll(cols); + } break; case PARTITION: - entity.getAccessedColumns().addAll( - tableToColumnAccessMap.get(entity.getPartition().getTable().getCompleteName())); + cols = tableToColumnAccessMap.get(entity.getPartition().getTable().getCompleteName()); + if (cols != null && !cols.isEmpty()) { + entity.getAccessedColumns().addAll(cols); + } break; default: // no-op