diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java index c0c5eee..00161e8 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java @@ -20,6 +20,7 @@ import java.sql.Timestamp; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Map; @@ -27,6 +28,7 @@ import org.apache.hadoop.hive.common.type.HiveDecimal; import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.serde2.io.ByteWritable; +import org.apache.hadoop.hive.serde2.io.DateWritable; import org.apache.hadoop.hive.serde2.io.DoubleWritable; import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable; import org.apache.hadoop.hive.serde2.io.ShortWritable; @@ -302,6 +304,20 @@ public void assignObjectValue(Object val, int destIndex) throws HiveException { } }.init(outputBatch, (LongColumnVector) destCol); break; + case DATE: + outVCA = new VectorLongColumnAssign() { + @Override + public void assignObjectValue(Object val, int destIndex) throws HiveException { + if (val == null) { + assignNull(destIndex); + } + else { + DateWritable bw = (DateWritable) val; + assignLong(bw.getDays(), destIndex); + } + } + }.init(outputBatch, (LongColumnVector) destCol); + break; default: throw new HiveException("Incompatible Long vector column and primitive category " + poi.getPrimitiveCategory());