diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java index b2798d2..0bb5a7f 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java @@ -1188,10 +1188,16 @@ public static void processVectorInspector( int i = 0; for(StructField field : fields) { ObjectInspector fieldObjInsp = field.getFieldObjectInspector(); - writers[i] = VectorExpressionWriterFactory. - genVectorExpressionWritable(fieldObjInsp); + try { + writers[i] = VectorExpressionWriterFactory. + genVectorExpressionWritable(fieldObjInsp); + oids.add(writers[i].getObjectInspector()); + } catch(IllegalArgumentException e) { + // skip, data type validation has been done in compile time. + writers[i] = null; + oids.add(null); + } columnNames.add(field.getFieldName()); - oids.add(writers[i].getObjectInspector()); i++; } ObjectInspector objectInspector = ObjectInspectorFactory.