diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java index c1d6582..3d18253 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java @@ -499,9 +499,10 @@ private void getTableScanOperatorSchemaInfo(TableScanOperator tableScanOperator, // Add all non-virtual columns to make a vectorization context for // the TableScan operator. RowSchema rowSchema = tableScanOperator.getSchema(); + Set neededColumns = new HashSet(tableScanOperator.getNeededColumns()); for (ColumnInfo c : rowSchema.getSignature()) { // Validation will later exclude vectorization of virtual columns usage (HIVE-5560). - if (!isVirtualColumn(c)) { + if ((!isVirtualColumn(c)) && neededColumns.contains(c.getInternalName())) { String columnName = c.getInternalName(); String typeName = c.getTypeName(); TypeInfo typeInfo = TypeInfoUtils.getTypeInfoFromTypeString(typeName);