Skip to content

Commit 0428c7d

Browse files
authored
fix: make the type transformer consistent with scalar units (#107)
1 parent 000443d commit 0428c7d

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

lib/src/main/java/io/cloudquery/scalar/Timestamp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class Timestamp extends Scalar<Long> {
1313
public static final ZoneId zoneID = ZoneOffset.UTC;
1414

1515
// TODO: add more units support later
16-
private static final ArrowType dt =
16+
public static final ArrowType dt =
1717
new ArrowType.Timestamp(TimeUnit.MILLISECOND, zoneID.toString());
1818

1919
public Timestamp() {

lib/src/main/java/io/cloudquery/transformers/TypeTransformer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package io.cloudquery.transformers;
22

3+
import io.cloudquery.scalar.Timestamp;
34
import io.cloudquery.types.InetType;
45
import io.cloudquery.types.JSONType;
56
import io.cloudquery.types.ListType;
67
import io.cloudquery.types.UUIDType;
78
import java.lang.reflect.Field;
89
import org.apache.arrow.vector.types.FloatingPointPrecision;
9-
import org.apache.arrow.vector.types.TimeUnit;
1010
import org.apache.arrow.vector.types.pojo.ArrowType;
1111

1212
public interface TypeTransformer {
@@ -41,7 +41,7 @@ private static ArrowType transformArrowType(String name, Class<?> type)
4141
return InetType.INSTANCE;
4242
}
4343
case "java.time.LocalDateTime" -> {
44-
return new ArrowType.Timestamp(TimeUnit.MICROSECOND, null);
44+
return Timestamp.dt;
4545
}
4646
case "java.util.UUID" -> {
4747
return new UUIDType();

lib/src/test/java/io/cloudquery/transformers/TransformWithClassTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import io.cloudquery.types.ListType;
1818
import java.net.InetAddress;
1919
import java.time.LocalDateTime;
20+
import java.time.ZoneOffset;
2021
import java.util.List;
2122
import java.util.Optional;
2223
import org.apache.arrow.vector.types.FloatingPointPrecision;
@@ -97,7 +98,7 @@ public static final class TestClass {
9798
Column.builder().name("any_array_col").type(JSONType.INSTANCE).build(),
9899
Column.builder()
99100
.name("time_col")
100-
.type(new Timestamp(TimeUnit.MICROSECOND, null))
101+
.type(new Timestamp(TimeUnit.MILLISECOND, ZoneOffset.UTC.getId()))
101102
.build());
102103

103104
public static final List<Column> expectedColumnsSimpleClass =

lib/src/test/java/io/cloudquery/transformers/TypeTransformerTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.cloudquery.types.ListType;
99
import java.net.InetAddress;
1010
import java.time.LocalDateTime;
11+
import java.time.ZoneOffset;
1112
import java.util.Map;
1213
import java.util.stream.Stream;
1314
import org.apache.arrow.vector.types.FloatingPointPrecision;
@@ -102,7 +103,8 @@ public static Stream<Arguments> testArgumentsSource() {
102103
Arguments.of("stringArrayField", ListType.listOf(ArrowType.Utf8.INSTANCE)),
103104

104105
// Time
105-
Arguments.of("timeField", new ArrowType.Timestamp(TimeUnit.MICROSECOND, null)),
106+
Arguments.of(
107+
"timeField", new ArrowType.Timestamp(TimeUnit.MILLISECOND, ZoneOffset.UTC.getId())),
106108

107109
// Byte
108110
Arguments.of("byteArrayField", ArrowType.Binary.INSTANCE),

0 commit comments

Comments
 (0)