Skip to content

Commit 69c21a1

Browse files
committed
GH-552: [Vector] Add test for TimeStampNanoTZHolder to the UnionFixedSizeListWriter
1 parent 4ba5e10 commit 69c21a1

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

vector/src/test/java/org/apache/arrow/vector/TestFixedSizeListVector.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.apache.arrow.vector.holders.DurationHolder;
4141
import org.apache.arrow.vector.holders.FixedSizeBinaryHolder;
4242
import org.apache.arrow.vector.holders.TimeStampMilliTZHolder;
43+
import org.apache.arrow.vector.holders.TimeStampNanoTZHolder;
4344
import org.apache.arrow.vector.types.TimeUnit;
4445
import org.apache.arrow.vector.types.Types.MinorType;
4546
import org.apache.arrow.vector.types.pojo.ArrowType;
@@ -667,6 +668,49 @@ public void testWriterTimeStampNanoTZField() {
667668
}
668669
}
669670

671+
@Test
672+
public void testWriterUsingHolderTimeStampNanoTZField() {
673+
try (final FixedSizeListVector vector =
674+
FixedSizeListVector.empty("vector", /* size= */ 3, allocator)) {
675+
UnionFixedSizeListWriter writer = vector.getWriter();
676+
writer.allocate();
677+
678+
TimeStampNanoTZHolder holder = new TimeStampNanoTZHolder();
679+
holder.timezone = "SomeFakeTimeZone";
680+
writer.startList();
681+
holder.value = 12341234L;
682+
writer.timeStampNanoTZ().write(holder);
683+
holder.value = 55555L;
684+
writer.timeStampNanoTZ().write(holder);
685+
686+
// Writing with a different timezone should throw
687+
holder.timezone = "AsdfTimeZone";
688+
holder.value = 77777;
689+
IllegalArgumentException ex =
690+
assertThrows(
691+
IllegalArgumentException.class, () -> writer.timeStampNanoTZ().write(holder));
692+
assertEquals(
693+
"holder.timezone: AsdfTimeZone not equal to vector timezone: SomeFakeTimeZone",
694+
ex.getMessage());
695+
696+
writer.endList();
697+
vector.setValueCount(1);
698+
699+
Field expectedDataField =
700+
new Field(
701+
BaseRepeatedValueVector.DATA_VECTOR_NAME,
702+
FieldType.nullable(new ArrowType.Timestamp(TimeUnit.NANOSECOND, "SomeFakeTimeZone")),
703+
null);
704+
Field expectedField =
705+
new Field(
706+
vector.getName(),
707+
FieldType.nullable(new ArrowType.FixedSizeList(3)),
708+
List.of(expectedDataField));
709+
710+
assertEquals(expectedField, writer.getField());
711+
}
712+
}
713+
670714
@Test
671715
public void testWriterUsingHolderTimestampMilliTZField() {
672716
try (final FixedSizeListVector vector =

0 commit comments

Comments
 (0)