diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java index 0f0df11..a183b9b 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java @@ -328,6 +328,7 @@ private void unpackStructObject(ObjectInspector oi, Object o, String fName, List stats = new ArrayList(); InspectableObject packedRow; + Table tbl = db.getTable(currentDb, tableName); while ((packedRow = ftOp.getNextRow()) != null) { if (packedRow.oi.getCategory() != ObjectInspector.Category.STRUCT) { throw new HiveException("Unexpected object type encountered while unpacking row"); @@ -338,7 +339,6 @@ private void unpackStructObject(ObjectInspector oi, Object o, String fName, List fields = soi.getAllStructFieldRefs(); List list = soi.getStructFieldsDataAsList(packedRow.o); - Table tbl = db.getTable(currentDb,tableName); List partColSchema = tbl.getPartCols(); // Partition columns are appended at end, we only care about stats column int numOfStatCols = isTblLevel ? fields.size() : fields.size() - partColSchema.size();