From b8628d9dbafb8196f0af17b65692f1b282ff3d43 Mon Sep 17 00:00:00 2001 From: HTHou Date: Thu, 19 Sep 2024 19:01:17 +0800 Subject: [PATCH 1/2] Fix getValue method in Tablet doesn't support Date and Timestamp type --- .../src/main/java/org/apache/tsfile/write/record/Tablet.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java b/java/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java index e02131975..253d99b65 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java @@ -946,7 +946,10 @@ public Object getValue(int i, int j) { case BOOLEAN: return ((boolean[]) values[j])[i]; case INT64: + case TIMESTAMP: return ((long[]) values[j])[i]; + case DATE: + return ((LocalDate[]) values[j])[i]; default: throw new IllegalArgumentException("Unsupported type: " + schemas.get(j).getType()); } From b73be0440b6f165889c851f0de065dcd80ec69d2 Mon Sep 17 00:00:00 2001 From: HTHou Date: Fri, 20 Sep 2024 10:07:18 +0800 Subject: [PATCH 2/2] add UT --- .../org/apache/tsfile/write/record/TabletTest.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/java/tsfile/src/test/java/org/apache/tsfile/write/record/TabletTest.java b/java/tsfile/src/test/java/org/apache/tsfile/write/record/TabletTest.java index b5dcd3b08..325fb3018 100644 --- a/java/tsfile/src/test/java/org/apache/tsfile/write/record/TabletTest.java +++ b/java/tsfile/src/test/java/org/apache/tsfile/write/record/TabletTest.java @@ -68,7 +68,12 @@ public void testSerializationAndDeSerialization() { try { final ByteBuffer byteBuffer = tablet.serialize(); final Tablet newTablet = Tablet.deserialize(byteBuffer); - assertEquals(newTablet, tablet); + assertEquals(tablet, newTablet); + for (int i = 0; i < rowSize; i++) { + for (int j = 0; j < tablet.getSchemas().size(); j++) { + assertEquals(tablet.getValue(i, j), newTablet.getValue(i, j)); + } + } } catch (final Exception e) { e.printStackTrace(); fail(); @@ -132,7 +137,12 @@ public void testSerializationAndDeSerializationWithMoreData() { try { final ByteBuffer byteBuffer = tablet.serialize(); final Tablet newTablet = Tablet.deserialize(byteBuffer); - assertEquals(newTablet, tablet); + assertEquals(tablet, newTablet); + for (int i = 0; i < rowSize; i++) { + for (int j = 0; j < tablet.getSchemas().size(); j++) { + assertEquals(tablet.getValue(i, j), newTablet.getValue(i, j)); + } + } } catch (final Exception e) { e.printStackTrace(); fail();