docete commented on a change in pull request #10212:
[FLINK-14806][table-planner-blink] Add setTimestamp/getTimestamp inte…
URL: https://github.com/apache/flink/pull/10212#discussion_r347712778
##########
File path:
flink-table/flink-table-runtime-blink/src/main/java/org/apache/flink/table/dataformat/vector/VectorizedColumnBatch.java
##########
@@ -132,4 +135,43 @@ public Decimal getDecimal(int rowId, int colId, int
precision, int scale) {
return Decimal.fromUnscaledBytes(precision, scale,
bytes);
}
}
+
+ public SqlTimestamp getTimestamp(int rowId, int colId, int precision) {
+ if (isNullAt(rowId, colId)) {
+ return null;
+ }
+
+ // The precision of Timestamp in parquet should be one of
MILLIS, MICROS or NANOS.
+ //
https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#timestamp
+ //
+ // For MILLIS, the underlying INT64 holds milliseconds
+ // For MICROS, the underlying INT64 holds microseconds
+ // For NANOS, the underlying INT96 holds nanoOfDay(8 bytes) and
julianDay(4 bytes)
+ if (columns[colId] instanceof TimestampColumnVector) {
Review comment:
for Parquet, we use LongColumnVector (for int64, the underlying long has
different meaning) or BytesColumnVector (for int96).
for Orc, we use a OrcTimestampColumnVector which holds a HIve's
TimestmapColumnVector and implement our `TimestampColumnVector` interface.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services