@Override protected void func(LongColumnVector outV, TimestampColumnVector inV, int i) { outV.vector[i] = DateWritableV2.millisToDays(inV.getTime(i)); } }
protected long evaluateTimestamp(ColumnVector columnVector, int index, long numDays) { TimestampColumnVector tcv = (TimestampColumnVector) columnVector; // Convert to date value (in days) long days = DateWritableV2.millisToDays(tcv.getTime(index)); if (isPositive) { days += numDays; } else { days -= numDays; } return days; }
protected long evaluateTimestamp(ColumnVector columnVector, int index) { TimestampColumnVector tcv = (TimestampColumnVector) columnVector; // Convert to date value (in days) long days = DateWritableV2.millisToDays(tcv.getTime(index)); if (isPositive) { days += numDays; } else { days -= numDays; } return days; }
public long addMonthsToDays(long days, int months) { long millis = DateWritableV2.daysToMillis((int) days); millis = addMonthsToMillis(millis, months); // Convert millis result back to days return DateWritableV2.millisToDays(millis); }
protected void evaluateRepeatedTimestamp(ColumnVector columnVector, long[] vector2, LongColumnVector outputVector, boolean selectedInUse, int[] selected, int n) { if (columnVector.isNull[0]) { outputVector.noNulls = false; outputVector.isNull[0] = true; outputVector.isRepeating = true; return; } TimestampColumnVector tcv = (TimestampColumnVector) columnVector; // Convert to date value (in days) long days = DateWritableV2.millisToDays(tcv.getTime(0)); evaluateRepeatedCommon(days, vector2, outputVector, selectedInUse, selected, n); }
protected void evaluateString(ColumnVector columnVector, LongColumnVector outputVector, int i) { BytesColumnVector bcv = (BytesColumnVector) columnVector; text.set(bcv.vector[i], bcv.start[i], bcv.length[i]); org.apache.hadoop.hive.common.type.Date hDate = new org.apache.hadoop.hive.common.type.Date(); boolean parsed = dateParser.parseDate(text.toString(), hDate); if (!parsed) { outputVector.noNulls = false; outputVector.isNull[i] = true; return; } long days = DateWritableV2.millisToDays(hDate.toEpochMilli()); if (isPositive) { days += numDays; } else { days -= numDays; } outputVector.vector[i] = days; }
protected void evaluateString(BytesColumnVector inputColumnVector1, LongColumnVector outputVector, int index, long numDays) { if (inputColumnVector1.isNull[index]) { outputVector.noNulls = false; outputVector.isNull[index] = true; } else { text.set(inputColumnVector1.vector[index], inputColumnVector1.start[index], inputColumnVector1.length[index]); Date hDate = new Date(); boolean parsed = dateParser.parseDate(text.toString(), hDate); if (!parsed) { outputVector.noNulls = false; outputVector.isNull[index] = true; return; } long days = DateWritableV2.millisToDays(hDate.toEpochMilli()); if (isPositive) { days += numDays; } else { days -= numDays; } outputVector.vector[index] = days; } }
protected void evaluateRepeatedString(BytesColumnVector inputColumnVector1, long[] vector2, LongColumnVector outputVector, boolean selectedInUse, int[] selected, int n) { if (inputColumnVector1.isNull[0]) { outputVector.noNulls = false; outputVector.isNull[0] = true; outputVector.isRepeating = true; return; } text.set( inputColumnVector1.vector[0], inputColumnVector1.start[0], inputColumnVector1.length[0]); Date date = new Date(); boolean parsed = dateParser.parseDate(text.toString(), date); if (!parsed) { outputVector.noNulls = false; outputVector.isNull[0] = true; outputVector.isRepeating = true; return; } long days = DateWritableV2.millisToDays(date.toEpochMilli()); evaluateRepeatedCommon(days, vector2, outputVector, selectedInUse, selected, n); }
@Test public void testCastDateToTimestamp() throws HiveException { int[] intValues = new int[500]; VectorizedRowBatch b = TestVectorMathFunctions.getVectorizedRowBatchDateInTimestampOut(intValues); TimestampColumnVector resultV = (TimestampColumnVector) b.cols[1]; b.cols[0].noNulls = true; VectorExpression expr = new CastDateToTimestamp(0, 1); expr.evaluate(b); for (int i = 0; i < intValues.length; i++) { Timestamp timestamp = resultV.asScratchTimestamp(i); long actual = DateWritableV2.millisToDays(timestamp.getTime()); assertEquals(actual, intValues[i]); } }
long baseDateDays = DateWritableV2.millisToDays(baseDate.toEpochMilli()); if (inputCol.isRepeating) { if (inputCol.noNulls || !inputCol.isNull[0]) {
Timestamp ts = ((TimestampWritableV2) timestampConverter.convert(arguments[0].get())) .getTimestamp(); output.set(DateWritableV2.millisToDays(ts.toEpochMilli())); break; case TIMESTAMPLOCALTZ:
Timestamp ts = ((TimestampWritableV2) dateConverter.convert(arguments[0].get())) .getTimestamp(); output.set(DateWritableV2.millisToDays(ts.toEpochMilli())); break; case DATE: