From ed7f184cc92ad4a74791781d4839a9fe2dd03cba Mon Sep 17 00:00:00 2001 From: Raghav Aggarwal Date: Tue, 30 Dec 2025 12:07:16 +0530 Subject: [PATCH] Potential Possible addendum changes --- .../primitive/JavaTimestampObjectInspector.java | 5 +++++ .../primitive/PrimitiveObjectInspectorFactory.java | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaTimestampObjectInspector.java b/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaTimestampObjectInspector.java index 47719c8564..5d1b97035e 100644 --- a/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaTimestampObjectInspector.java +++ b/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaTimestampObjectInspector.java @@ -19,6 +19,7 @@ import org.apache.hadoop.hive.common.type.Timestamp; import org.apache.hadoop.hive.serde2.io.TimestampWritableV2; +import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory; public class JavaTimestampObjectInspector @@ -29,6 +30,10 @@ protected JavaTimestampObjectInspector() { super(TypeInfoFactory.timestampTypeInfo); } + public JavaTimestampObjectInspector(PrimitiveTypeInfo typeInfo) { + super(typeInfo); + } + public TimestampWritableV2 getPrimitiveWritableObject(Object o) { return o == null ? null : new TimestampWritableV2((Timestamp) o); } diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java b/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java index 125fa130e1..1dd2c0112a 100644 --- a/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java +++ b/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java @@ -144,6 +144,7 @@ public final class PrimitiveObjectInspectorFactory { writableBinaryObjectInspector); cachedPrimitiveWritableInspectorCache.put(TypeInfoFactory.decimalTypeInfo, writableHiveDecimalObjectInspector); cachedPrimitiveWritableInspectorCache.put(TypeInfoFactory.timestampNanoTypeInfo, writableTimestampNanoObjectInspector); + cachedPrimitiveWritableInspectorCache.put(TypeInfoFactory.timestampNanosTZTypeInfo, writableTimestampNanoTZObjectInspector); } private static Map @@ -247,8 +248,10 @@ public final class PrimitiveObjectInspectorFactory { cachedPrimitiveJavaInspectorCache.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.BINARY_TYPE_NAME), javaByteArrayObjectInspector); cachedPrimitiveJavaInspectorCache.put(TypeInfoFactory.decimalTypeInfo, javaHiveDecimalObjectInspector); - cachedPrimitiveJavaInspectorCache.put(TypeInfoFactory.timestampNanoTypeInfo, javaTimestampObjectInspector); - cachedPrimitiveJavaInspectorCache.put(TypeInfoFactory.timestampNanosTZTypeInfo, javaTimestampTZObjectInspector); + cachedPrimitiveJavaInspectorCache.put(TypeInfoFactory.timestampNanoTypeInfo, + new JavaTimestampObjectInspector(TypeInfoFactory.timestampNanoTypeInfo)); + cachedPrimitiveJavaInspectorCache.put(TypeInfoFactory.timestampNanosTZTypeInfo, + new JavaTimestampLocalTZObjectInspector(TypeInfoFactory.timestampNanosTZTypeInfo)); } private static Map primitiveCategoryToJavaOI = @@ -272,8 +275,10 @@ public final class PrimitiveObjectInspectorFactory { primitiveCategoryToJavaOI.put(PrimitiveCategory.INTERVAL_DAY_TIME, javaHiveIntervalDayTimeObjectInspector); primitiveCategoryToJavaOI.put(PrimitiveCategory.BINARY, javaByteArrayObjectInspector); primitiveCategoryToJavaOI.put(PrimitiveCategory.DECIMAL, javaHiveDecimalObjectInspector); - primitiveCategoryToJavaOI.put(PrimitiveCategory.TIMESTAMP_NS, javaTimestampObjectInspector); - primitiveCategoryToJavaOI.put(PrimitiveCategory.TIMESTAMPTZ_NS, javaTimestampTZObjectInspector); + primitiveCategoryToJavaOI.put(PrimitiveCategory.TIMESTAMP_NS, + new JavaTimestampObjectInspector(TypeInfoFactory.timestampNanoTypeInfo)); + primitiveCategoryToJavaOI.put(PrimitiveCategory.TIMESTAMPTZ_NS, + new JavaTimestampLocalTZObjectInspector(TypeInfoFactory.timestampNanosTZTypeInfo)); } /** @@ -422,6 +427,7 @@ public static AbstractPrimitiveJavaObjectInspector getPrimitiveJavaObjectInspect result = new JavaHiveVarcharObjectInspector((VarcharTypeInfo)typeInfo); break; case TIMESTAMPLOCALTZ: + case TIMESTAMPTZ_NS: result = new JavaTimestampLocalTZObjectInspector((TimestampLocalTZTypeInfo)typeInfo); break; case DECIMAL: -- 2.52.0