This is an automated email from the ASF dual-hosted git repository.
yuxia pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss.git
The following commit(s) were added to refs/heads/main by this push:
new 4e91db47b [test] Add additional assertion to tests for
TimestampLtz/Ntz to partition string conversion (#2481)
4e91db47b is described below
commit 4e91db47ba7623e130038814fc78c10ac106dbfc
Author: Keith Lee <[email protected]>
AuthorDate: Tue Jan 27 13:17:21 2026 +0000
[test] Add additional assertion to tests for TimestampLtz/Ntz to partition
string conversion (#2481)
---
.../org/apache/fluss/utils/PartitionUtilsTest.java | 88 ++++++++++++++++++++++
1 file changed, 88 insertions(+)
diff --git
a/fluss-common/src/test/java/org/apache/fluss/utils/PartitionUtilsTest.java
b/fluss-common/src/test/java/org/apache/fluss/utils/PartitionUtilsTest.java
index d7b24a075..686e5ce47 100644
--- a/fluss-common/src/test/java/org/apache/fluss/utils/PartitionUtilsTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/utils/PartitionUtilsTest.java
@@ -309,6 +309,50 @@ class PartitionUtilsTest {
assertThat(toStringResult).isEqualTo("2025-05-31-03-42-35_428099988");
String detectInvalid = detectInvalidName(toStringResult);
assertThat(detectInvalid).isEqualTo(null);
+
+ // Zero nanos of millis
+ millis = 1748662955428L;
+ nanos = 0;
+ timeStampNTZValue = TimestampNtz.fromMillis(millis, nanos);
+ type = DataTypeRoot.TIMESTAMP_WITHOUT_TIME_ZONE;
+
+ toStringResult = convertValueOfType(timeStampNTZValue, type);
+ assertThat(toStringResult).isEqualTo("2025-05-31-03-42-35_428");
+ detectInvalid = detectInvalidName(toStringResult);
+ assertThat(detectInvalid).isEqualTo(null);
+
+ // Zero millis
+ millis = 1748662955000L;
+ nanos = 99988;
+ timeStampNTZValue = TimestampNtz.fromMillis(millis, nanos);
+ type = DataTypeRoot.TIMESTAMP_WITHOUT_TIME_ZONE;
+
+ toStringResult = convertValueOfType(timeStampNTZValue, type);
+ assertThat(toStringResult).isEqualTo("2025-05-31-03-42-35_000099988");
+ detectInvalid = detectInvalidName(toStringResult);
+ assertThat(detectInvalid).isEqualTo(null);
+
+ // Zero nanos and zero millis
+ millis = 1748662955000L;
+ nanos = 0;
+ timeStampNTZValue = TimestampNtz.fromMillis(millis, nanos);
+ type = DataTypeRoot.TIMESTAMP_WITHOUT_TIME_ZONE;
+
+ toStringResult = convertValueOfType(timeStampNTZValue, type);
+ assertThat(toStringResult).isEqualTo("2025-05-31-03-42-35_");
+ detectInvalid = detectInvalidName(toStringResult);
+ assertThat(detectInvalid).isEqualTo(null);
+
+ // Negative millis
+ millis = -1748662955428L;
+ nanos = 99988;
+ timeStampNTZValue = TimestampNtz.fromMillis(millis, nanos);
+ type = DataTypeRoot.TIMESTAMP_WITHOUT_TIME_ZONE;
+
+ toStringResult = convertValueOfType(timeStampNTZValue, type);
+ assertThat(toStringResult).isEqualTo("1914-08-03-20-17-24_572099988");
+ detectInvalid = detectInvalidName(toStringResult);
+ assertThat(detectInvalid).isEqualTo(null);
}
@Test
@@ -322,6 +366,50 @@ class PartitionUtilsTest {
assertThat(toStringResult).isEqualTo("2025-05-31-03-42-35_428099988");
String detectInvalid = detectInvalidName(toStringResult);
assertThat(detectInvalid).isEqualTo(null);
+
+ // Zero nanos
+ millis = 1748662955428L;
+ nanos = 0;
+ timestampLTZ = TimestampLtz.fromEpochMillis(millis, nanos);
+ type = DataTypeRoot.TIMESTAMP_WITH_LOCAL_TIME_ZONE;
+
+ toStringResult = convertValueOfType(timestampLTZ, type);
+ assertThat(toStringResult).isEqualTo("2025-05-31-03-42-35_428");
+ detectInvalid = detectInvalidName(toStringResult);
+ assertThat(detectInvalid).isEqualTo(null);
+
+ // Zero millis
+ millis = 1748662955000L;
+ nanos = 99988;
+ timestampLTZ = TimestampLtz.fromEpochMillis(millis, nanos);
+ type = DataTypeRoot.TIMESTAMP_WITH_LOCAL_TIME_ZONE;
+
+ toStringResult = convertValueOfType(timestampLTZ, type);
+ assertThat(toStringResult).isEqualTo("2025-05-31-03-42-35_000099988");
+ detectInvalid = detectInvalidName(toStringResult);
+ assertThat(detectInvalid).isEqualTo(null);
+
+ // Zero nanos and zero millis
+ millis = 1748662955000L;
+ nanos = 0;
+ timestampLTZ = TimestampLtz.fromEpochMillis(millis, nanos);
+ type = DataTypeRoot.TIMESTAMP_WITH_LOCAL_TIME_ZONE;
+
+ toStringResult = convertValueOfType(timestampLTZ, type);
+ assertThat(toStringResult).isEqualTo("2025-05-31-03-42-35_");
+ detectInvalid = detectInvalidName(toStringResult);
+ assertThat(detectInvalid).isEqualTo(null);
+
+ // Negative millis
+ millis = -1748662955428L;
+ nanos = 99988;
+ timestampLTZ = TimestampLtz.fromEpochMillis(millis, nanos);
+ type = DataTypeRoot.TIMESTAMP_WITH_LOCAL_TIME_ZONE;
+
+ toStringResult = convertValueOfType(timestampLTZ, type);
+ assertThat(toStringResult).isEqualTo("1914-08-03-20-17-24_572099988");
+ detectInvalid = detectInvalidName(toStringResult);
+ assertThat(detectInvalid).isEqualTo(null);
}
@Test