Skip to content

Commit 7f3feaf

Browse files
committed
Fix tests for Uuid change
1 parent 38398aa commit 7f3feaf

File tree

11 files changed

+59
-40
lines changed

11 files changed

+59
-40
lines changed

vector/src/main/java/org/apache/arrow/vector/complex/impl/AbstractExtensionTypeWriter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
package org.apache.arrow.vector.complex.impl;
1818

1919
import org.apache.arrow.vector.ExtensionTypeVector;
20+
import org.apache.arrow.vector.ValueVector;
21+
import org.apache.arrow.vector.complex.writer.FieldWriter;
2022
import org.apache.arrow.vector.types.pojo.Field;
2123

2224
/**

vector/src/main/java/org/apache/arrow/vector/complex/impl/UuidWriterImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import org.apache.arrow.memory.ArrowBuf;
2020
import org.apache.arrow.vector.UuidVector;
21+
import org.apache.arrow.vector.ValueVector;
22+
import org.apache.arrow.vector.complex.writer.FieldWriter;
2123
import org.apache.arrow.vector.holders.ExtensionHolder;
2224
import org.apache.arrow.vector.holders.NullableUuidHolder;
2325
import org.apache.arrow.vector.holders.UuidHolder;

vector/src/main/java/org/apache/arrow/vector/extension/UuidType.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
import org.apache.arrow.vector.FieldVector;
2121
import org.apache.arrow.vector.FixedSizeBinaryVector;
2222
import org.apache.arrow.vector.UuidVector;
23+
import org.apache.arrow.vector.ValueVector;
24+
import org.apache.arrow.vector.complex.impl.UuidWriterImpl;
25+
import org.apache.arrow.vector.complex.writer.FieldWriter;
2326
import org.apache.arrow.vector.types.pojo.ArrowType;
2427
import org.apache.arrow.vector.types.pojo.ArrowType.ExtensionType;
2528
import org.apache.arrow.vector.types.pojo.ExtensionTypeRegistry;
@@ -106,4 +109,9 @@ public FieldVector getNewVector(String name, FieldType fieldType, BufferAllocato
106109
return new UuidVector(
107110
name, fieldType, allocator, new FixedSizeBinaryVector(name, allocator, UUID_BYTE_WIDTH));
108111
}
112+
113+
@Override
114+
public FieldWriter getNewFieldWriter(ValueVector vector) {
115+
return new UuidWriterImpl((UuidVector) vector);
116+
}
109117
}

vector/src/main/java/org/apache/arrow/vector/holders/NullableUuidHolder.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
package org.apache.arrow.vector.holders;
1818

1919
import org.apache.arrow.memory.ArrowBuf;
20+
import org.apache.arrow.vector.extension.UuidType;
21+
import org.apache.arrow.vector.types.pojo.ArrowType;
2022

2123
/**
2224
* Value holder for nullable UUID values.
@@ -32,4 +34,9 @@
3234
public class NullableUuidHolder extends ExtensionHolder {
3335
/** Buffer containing 16-byte UUID data. */
3436
public ArrowBuf buffer;
35-
}
37+
38+
@Override
39+
public ArrowType type() {
40+
return UuidType.INSTANCE;
41+
}
42+
}

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

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import static org.junit.jupiter.api.Assertions.assertSame;
2424
import static org.junit.jupiter.api.Assertions.assertTrue;
2525

26-
import java.nio.ByteBuffer;
2726
import java.util.ArrayList;
2827
import java.util.Arrays;
2928
import java.util.List;
@@ -37,13 +36,14 @@
3736
import org.apache.arrow.vector.complex.impl.UnionLargeListWriter;
3837
import org.apache.arrow.vector.complex.reader.FieldReader;
3938
import org.apache.arrow.vector.complex.writer.BaseWriter.ExtensionWriter;
40-
import org.apache.arrow.vector.holder.UuidHolder;
39+
import org.apache.arrow.vector.extension.UuidType;
40+
import org.apache.arrow.vector.holders.UuidHolder;
4141
import org.apache.arrow.vector.types.Types.MinorType;
4242
import org.apache.arrow.vector.types.pojo.ArrowType;
4343
import org.apache.arrow.vector.types.pojo.Field;
4444
import org.apache.arrow.vector.types.pojo.FieldType;
45-
import org.apache.arrow.vector.types.pojo.UuidType;
4645
import org.apache.arrow.vector.util.TransferPair;
46+
import org.apache.arrow.vector.util.UuidUtility;
4747
import org.junit.jupiter.api.AfterEach;
4848
import org.junit.jupiter.api.BeforeEach;
4949
import org.junit.jupiter.api.Test;
@@ -1073,14 +1073,12 @@ public void testCopyValueSafeForExtensionType() throws Exception {
10731073
FieldReader uuidReader = reader.reader();
10741074
UuidHolder holder = new UuidHolder();
10751075
uuidReader.read(holder);
1076-
ByteBuffer bb = ByteBuffer.wrap(holder.value);
1077-
UUID actualUuid = new UUID(bb.getLong(), bb.getLong());
1076+
UUID actualUuid = UuidUtility.uuidFromArrowBuf(holder.buffer, 0);
10781077
assertEquals(u1, actualUuid);
10791078
reader.next();
10801079
uuidReader = reader.reader();
10811080
uuidReader.read(holder);
1082-
bb = ByteBuffer.wrap(holder.value);
1083-
actualUuid = new UUID(bb.getLong(), bb.getLong());
1081+
actualUuid = UuidUtility.uuidFromArrowBuf(holder.buffer, 0);
10841082
assertEquals(u2, actualUuid);
10851083

10861084
// Verify second list
@@ -1089,14 +1087,12 @@ public void testCopyValueSafeForExtensionType() throws Exception {
10891087
reader.next();
10901088
uuidReader = reader.reader();
10911089
uuidReader.read(holder);
1092-
bb = ByteBuffer.wrap(holder.value);
1093-
actualUuid = new UUID(bb.getLong(), bb.getLong());
1090+
actualUuid = UuidUtility.uuidFromArrowBuf(holder.buffer, 0);
10941091
assertEquals(u3, actualUuid);
10951092
reader.next();
10961093
uuidReader = reader.reader();
10971094
uuidReader.read(holder);
1098-
bb = ByteBuffer.wrap(holder.value);
1099-
actualUuid = new UUID(bb.getLong(), bb.getLong());
1095+
actualUuid = UuidUtility.uuidFromArrowBuf(holder.buffer, 0);
11001096
assertEquals(u4, actualUuid);
11011097
reader.next();
11021098
uuidReader = reader.reader();

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

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1352,14 +1352,12 @@ public void testCopyValueSafeForExtensionType() throws Exception {
13521352
FieldReader uuidReader = reader.reader();
13531353
UuidHolder holder = new UuidHolder();
13541354
uuidReader.read(holder);
1355-
ByteBuffer bb = ByteBuffer.wrap(holder.value);
1356-
UUID actualUuid = new UUID(bb.getLong(), bb.getLong());
1355+
UUID actualUuid = UuidUtility.uuidFromArrowBuf(holder.buffer, 0);
13571356
assertEquals(u1, actualUuid);
13581357
reader.next();
13591358
uuidReader = reader.reader();
13601359
uuidReader.read(holder);
1361-
bb = ByteBuffer.wrap(holder.value);
1362-
actualUuid = new UUID(bb.getLong(), bb.getLong());
1360+
actualUuid = UuidUtility.uuidFromArrowBuf(holder.buffer, 0);
13631361
assertEquals(u2, actualUuid);
13641362

13651363
// Verify second list
@@ -1368,14 +1366,12 @@ public void testCopyValueSafeForExtensionType() throws Exception {
13681366
reader.next();
13691367
uuidReader = reader.reader();
13701368
uuidReader.read(holder);
1371-
bb = ByteBuffer.wrap(holder.value);
1372-
actualUuid = new UUID(bb.getLong(), bb.getLong());
1369+
actualUuid = UuidUtility.uuidFromArrowBuf(holder.buffer, 0);
13731370
assertEquals(u3, actualUuid);
13741371
reader.next();
13751372
uuidReader = reader.reader();
13761373
uuidReader.read(holder);
1377-
bb = ByteBuffer.wrap(holder.value);
1378-
actualUuid = new UUID(bb.getLong(), bb.getLong());
1374+
actualUuid = UuidUtility.uuidFromArrowBuf(holder.buffer, 0);
13791375
assertEquals(u4, actualUuid);
13801376
reader.next();
13811377
uuidReader = reader.reader();

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1628,8 +1628,7 @@ public void testMapWithUuidKeyAndListUuidValue() throws Exception {
16281628
FieldReader keyReader = mapReader.key();
16291629
UuidHolder keyHolder = new UuidHolder();
16301630
keyReader.read(keyHolder);
1631-
ByteBuffer bb = ByteBuffer.wrap(keyHolder.value);
1632-
UUID actualKey = new UUID(bb.getLong(), bb.getLong());
1631+
UUID actualKey = UuidUtility.uuidFromArrowBuf(keyHolder.buffer, 0);
16331632
assertEquals(key1, actualKey);
16341633

16351634
FieldReader valueReader = mapReader.value();
@@ -1649,8 +1648,7 @@ public void testMapWithUuidKeyAndListUuidValue() throws Exception {
16491648
mapReader.next();
16501649
keyReader = mapReader.key();
16511650
keyReader.read(keyHolder);
1652-
bb = ByteBuffer.wrap(keyHolder.value);
1653-
actualKey = new UUID(bb.getLong(), bb.getLong());
1651+
actualKey = UuidUtility.uuidFromArrowBuf(keyHolder.buffer, 0);
16541652
assertEquals(key2, actualKey);
16551653

16561654
valueReader = mapReader.value();

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

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.apache.arrow.vector.holders.ExtensionHolder;
3434
import org.apache.arrow.vector.holders.NullableUuidHolder;
3535
import org.apache.arrow.vector.holders.UuidHolder;
36+
import org.apache.arrow.vector.types.pojo.ArrowType;
3637
import org.apache.arrow.vector.util.UuidUtility;
3738
import org.junit.jupiter.api.AfterEach;
3839
import org.junit.jupiter.api.BeforeEach;
@@ -358,7 +359,13 @@ void testReaderReadWithUnsupportedHolder() throws Exception {
358359
reader.setPosition(0);
359360

360361
// Create a mock unsupported holder
361-
ExtensionHolder unsupportedHolder = new ExtensionHolder() {};
362+
ExtensionHolder unsupportedHolder =
363+
new ExtensionHolder() {
364+
@Override
365+
public ArrowType type() {
366+
return null;
367+
}
368+
};
362369

363370
IllegalArgumentException exception =
364371
assertThrows(IllegalArgumentException.class, () -> reader.read(unsupportedHolder));
@@ -377,7 +384,13 @@ void testReaderReadWithArrayIndexUnsupportedHolder() throws Exception {
377384
UuidReaderImpl reader = (UuidReaderImpl) vector.getReader();
378385

379386
// Create a mock unsupported holder
380-
ExtensionHolder unsupportedHolder = new ExtensionHolder() {};
387+
ExtensionHolder unsupportedHolder =
388+
new ExtensionHolder() {
389+
@Override
390+
public ArrowType type() {
391+
return null;
392+
}
393+
};
381394

382395
IllegalArgumentException exception =
383396
assertThrows(IllegalArgumentException.class, () -> reader.read(0, unsupportedHolder));

vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@
4343
import org.apache.arrow.vector.complex.UnionVector;
4444
import org.apache.arrow.vector.complex.writer.BaseWriter.StructWriter;
4545
import org.apache.arrow.vector.extension.UuidType;
46-
import org.apache.arrow.vector.holders.UuidHolder;
4746
import org.apache.arrow.vector.holders.DurationHolder;
4847
import org.apache.arrow.vector.holders.FixedSizeBinaryHolder;
4948
import org.apache.arrow.vector.holders.NullableDecimalHolder;
5049
import org.apache.arrow.vector.holders.NullableIntHolder;
5150
import org.apache.arrow.vector.holders.NullableTimeStampMilliTZHolder;
5251
import org.apache.arrow.vector.holders.TimeStampMilliTZHolder;
5352
import org.apache.arrow.vector.holders.UnionHolder;
53+
import org.apache.arrow.vector.holders.UuidHolder;
5454
import org.apache.arrow.vector.types.TimeUnit;
5555
import org.apache.arrow.vector.types.Types;
5656
import org.apache.arrow.vector.types.pojo.ArrowType;
@@ -59,6 +59,7 @@
5959
import org.apache.arrow.vector.types.pojo.FieldType;
6060
import org.apache.arrow.vector.util.DecimalUtility;
6161
import org.apache.arrow.vector.util.Text;
62+
import org.apache.arrow.vector.util.UuidUtility;
6263
import org.junit.jupiter.api.AfterEach;
6364
import org.junit.jupiter.api.BeforeEach;
6465
import org.junit.jupiter.api.Test;
@@ -139,13 +140,11 @@ public void testPromoteToUnion() throws Exception {
139140
writer.setPosition(10);
140141
UUID uuid2 = UUID.randomUUID();
141142
UuidHolder uuidHolder = new UuidHolder();
142-
uuidHolder.value =
143-
ByteBuffer.allocate(16)
144-
.putLong(uuid2.getMostSignificantBits())
145-
.putLong(uuid2.getLeastSignificantBits())
146-
.array();
143+
uuidHolder.buffer = allocator.buffer(UuidType.UUID_BYTE_WIDTH);
144+
uuidHolder.buffer.setBytes(0, UuidUtility.getBytesFromUUID(uuid2));
147145
writer.extension("A", UuidType.INSTANCE).write(uuidHolder);
148146
writer.end();
147+
allocator.releaseBytes(UuidType.UUID_BYTE_WIDTH);
149148

150149
container.setValueCount(11);
151150

vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@
8686
import org.apache.arrow.vector.holders.NullableFixedSizeBinaryHolder;
8787
import org.apache.arrow.vector.holders.NullableTimeStampMilliTZHolder;
8888
import org.apache.arrow.vector.holders.NullableTimeStampNanoTZHolder;
89-
import org.apache.arrow.vector.holders.TimeStampMilliTZHolder;
9089
import org.apache.arrow.vector.holders.NullableUuidHolder;
90+
import org.apache.arrow.vector.holders.TimeStampMilliTZHolder;
9191
import org.apache.arrow.vector.holders.UuidHolder;
9292
import org.apache.arrow.vector.types.TimeUnit;
9393
import org.apache.arrow.vector.types.Types.MinorType;
@@ -1137,9 +1137,10 @@ public void simpleUnion() throws Exception {
11371137
bufs.add(buf);
11381138
} else if (i % 5 == 4) {
11391139
UuidHolder holder = new UuidHolder();
1140-
1141-
holder.value = uuidByte;
1140+
holder.buffer = allocator.buffer(UuidType.UUID_BYTE_WIDTH);
1141+
holder.buffer.setBytes(0, uuidByte);
11421142
unionWriter.write(holder);
1143+
allocator.releaseBytes(UuidType.UUID_BYTE_WIDTH);
11431144
} else {
11441145
unionWriter.writeFloat4((float) i);
11451146
}
@@ -1168,10 +1169,7 @@ public void simpleUnion() throws Exception {
11681169
} else if (i % 5 == 4) {
11691170
NullableUuidHolder holder = new NullableUuidHolder();
11701171
unionReader.read(holder);
1171-
ByteBuffer b = ByteBuffer.wrap(holder.value);
1172-
long high = b.getLong();
1173-
long low = b.getLong();
1174-
assertEquals(new UUID(high, low), uuid);
1172+
assertEquals(UuidUtility.uuidFromArrowBuf(holder.buffer, 0), uuid);
11751173
} else {
11761174
assertEquals((float) i, unionReader.readFloat(), 1e-12);
11771175
}

0 commit comments

Comments
 (0)