Skip to content

Commit c9b09b0

Browse files
committed
Add getUuid method in [Nullable]UuidHolder
1 parent 421b5d4 commit c9b09b0

File tree

8 files changed

+57
-50
lines changed

8 files changed

+57
-50
lines changed

vector/src/main/java/org/apache/arrow/vector/UuidVector.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,7 @@ public void set(int index, UUID value) {
215215
* @param holder the holder containing the UUID data
216216
*/
217217
public void set(int index, UuidHolder holder) {
218-
UUID uuid = new UUID(holder.mostSigBits, holder.leastSigBits);
219-
set(index, uuid);
218+
set(index, holder.getUuid());
220219
}
221220

222221
/**
@@ -229,8 +228,7 @@ public void set(int index, NullableUuidHolder holder) {
229228
if (holder.isSet == 0) {
230229
getUnderlyingVector().setNull(index);
231230
} else {
232-
UUID uuid = new UUID(holder.mostSigBits, holder.leastSigBits);
233-
set(index, uuid);
231+
set(index, holder.getUuid());
234232
}
235233
}
236234

@@ -284,8 +282,7 @@ public void setSafe(int index, NullableUuidHolder holder) {
284282
if (holder == null || holder.isSet == 0) {
285283
getUnderlyingVector().setNull(index);
286284
} else {
287-
UUID uuid = new UUID(holder.mostSigBits, holder.leastSigBits);
288-
setSafe(index, uuid);
285+
setSafe(index, holder.getUuid());
289286
}
290287
}
291288

@@ -296,8 +293,7 @@ public void setSafe(int index, NullableUuidHolder holder) {
296293
* @param holder the holder containing the UUID data
297294
*/
298295
public void setSafe(int index, UuidHolder holder) {
299-
UUID uuid = new UUID(holder.mostSigBits, holder.leastSigBits);
300-
setSafe(index, uuid);
296+
setSafe(index, holder.getUuid());
301297
}
302298

303299
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public Object readObject() {
104104
return null;
105105
}
106106
// Convert UUID longs to Java UUID object
107-
return new UUID(holder.mostSigBits, holder.leastSigBits);
107+
return holder.getUuid();
108108
}
109109
}
110110

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
*/
1717
package org.apache.arrow.vector.holders;
1818

19+
import java.util.UUID;
20+
1921
/**
2022
* Value holder for nullable UUID values.
2123
*
@@ -33,4 +35,11 @@ public class NullableUuidHolder extends ExtensionHolder {
3335

3436
/** The least significant 64 bits of the UUID. */
3537
public long leastSigBits;
38+
39+
public UUID getUuid() {
40+
if(this.isSet == 0) {
41+
return null;
42+
}
43+
return new UUID(mostSigBits, leastSigBits);
44+
}
3645
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
*/
1717
package org.apache.arrow.vector.holders;
1818

19+
import java.util.UUID;
20+
1921
/**
2022
* Value holder for non-nullable UUID values.
2123
*
@@ -36,4 +38,8 @@ public class UuidHolder extends ExtensionHolder {
3638
public UuidHolder() {
3739
this.isSet = 1;
3840
}
41+
42+
public UUID getUuid() {
43+
return new UUID(mostSigBits, leastSigBits);
44+
}
3945
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,12 +1258,12 @@ public void testListVectorReaderForExtensionType() throws Exception {
12581258
FieldReader uuidReader = reader.reader();
12591259
UuidHolder holder = new UuidHolder();
12601260
uuidReader.read(holder);
1261-
UUID actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
1261+
UUID actualUuid = holder.getUuid();
12621262
assertEquals(u1, actualUuid);
12631263
reader.next();
12641264
uuidReader = reader.reader();
12651265
uuidReader.read(holder);
1266-
actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
1266+
actualUuid = holder.getUuid();
12671267
assertEquals(u2, actualUuid);
12681268
}
12691269
}
@@ -1299,12 +1299,12 @@ public void testCopyFromForExtensionType() throws Exception {
12991299
FieldReader uuidReader = reader.reader();
13001300
UuidHolder holder = new UuidHolder();
13011301
uuidReader.read(holder);
1302-
UUID actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
1302+
UUID actualUuid = holder.getUuid();
13031303
assertEquals(u1, actualUuid);
13041304
reader.next();
13051305
uuidReader = reader.reader();
13061306
uuidReader.read(holder);
1307-
actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
1307+
actualUuid = holder.getUuid();
13081308
assertEquals(u2, actualUuid);
13091309
}
13101310
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1303,12 +1303,12 @@ public void testMapVectorWithExtensionType() throws Exception {
13031303
FieldReader uuidReader = mapReader.value();
13041304
UuidHolder holder = new UuidHolder();
13051305
uuidReader.read(holder);
1306-
UUID actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
1306+
UUID actualUuid = holder.getUuid();
13071307
assertEquals(u1, actualUuid);
13081308
mapReader.next();
13091309
uuidReader = mapReader.value();
13101310
uuidReader.read(holder);
1311-
actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
1311+
actualUuid = holder.getUuid();
13121312
assertEquals(u2, actualUuid);
13131313
}
13141314
}
@@ -1348,12 +1348,12 @@ public void testCopyFromForExtensionType() throws Exception {
13481348
FieldReader uuidReader = mapReader.value();
13491349
UuidHolder holder = new UuidHolder();
13501350
uuidReader.read(holder);
1351-
UUID actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
1351+
UUID actualUuid = holder.getUuid();
13521352
assertEquals(u1, actualUuid);
13531353
mapReader.next();
13541354
uuidReader = mapReader.value();
13551355
uuidReader.read(holder);
1356-
actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
1356+
actualUuid = holder.getUuid();
13571357
assertEquals(u2, actualUuid);
13581358
}
13591359
}

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

Lines changed: 28 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ void testReaderCopyAsValueExtensionVector() throws Exception {
225225
UuidReaderImpl reader2 = (UuidReaderImpl) vector.getReader();
226226
UuidHolder holder = new UuidHolder();
227227
reader2.read(0, holder);
228-
UUID actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
228+
UUID actualUuid = holder.getUuid();
229229
assertEquals(uuid, actualUuid);
230230
}
231231
}
@@ -243,7 +243,7 @@ void testReaderReadWithUuidHolder() throws Exception {
243243
UuidHolder holder = new UuidHolder();
244244
reader.read(holder);
245245

246-
UUID actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
246+
UUID actualUuid = holder.getUuid();
247247
assertEquals(uuid, actualUuid);
248248
assertEquals(1, holder.isSet);
249249
}
@@ -262,7 +262,7 @@ void testReaderReadWithNullableUuidHolder() throws Exception {
262262
NullableUuidHolder holder = new NullableUuidHolder();
263263
reader.read(holder);
264264

265-
UUID actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
265+
UUID actualUuid = holder.getUuid();
266266
assertEquals(uuid, actualUuid);
267267
assertEquals(1, holder.isSet);
268268
}
@@ -301,7 +301,7 @@ void testReaderReadWithArrayIndexUuidHolder() throws Exception {
301301
UuidHolder holder = new UuidHolder();
302302
reader.read(1, holder);
303303

304-
UUID actualUuid = new UUID(holder.mostSigBits, holder.leastSigBits);
304+
UUID actualUuid = holder.getUuid();
305305
assertEquals(uuid2, actualUuid);
306306
assertEquals(1, holder.isSet);
307307
}
@@ -322,7 +322,7 @@ void testReaderReadWithArrayIndexNullableUuidHolder() throws Exception {
322322

323323
NullableUuidHolder holder1 = new NullableUuidHolder();
324324
reader.read(0, holder1);
325-
assertEquals(uuid1, new UUID(holder1.mostSigBits, holder1.leastSigBits));
325+
assertEquals(uuid1, holder1.getUuid());
326326
assertEquals(1, holder1.isSet);
327327

328328
NullableUuidHolder holder2 = new NullableUuidHolder();
@@ -331,7 +331,7 @@ void testReaderReadWithArrayIndexNullableUuidHolder() throws Exception {
331331

332332
NullableUuidHolder holder3 = new NullableUuidHolder();
333333
reader.read(2, holder3);
334-
assertEquals(uuid2, new UUID(holder3.mostSigBits, holder3.leastSigBits));
334+
assertEquals(uuid2, holder3.getUuid());
335335
assertEquals(1, holder3.isSet);
336336
}
337337
}
@@ -451,17 +451,15 @@ void testHolderStartOffsetWithMultipleValues() throws Exception {
451451
vector.setValueCount(3);
452452

453453
// Test UuidHolder with different indices
454-
UuidHolder holder1 = new UuidHolder();
455-
vector.get(0, holder1);
456-
assertEquals(uuid1, new UUID(holder1.mostSigBits, holder1.leastSigBits));
454+
UuidHolder holder = new UuidHolder();
455+
vector.get(0, holder);
456+
assertEquals(uuid1, holder.getUuid());
457457

458-
UuidHolder holder2 = new UuidHolder();
459-
vector.get(1, holder2);
460-
assertEquals(uuid2, new UUID(holder2.mostSigBits, holder2.leastSigBits));
458+
vector.get(1, holder);
459+
assertEquals(uuid2, holder.getUuid());
461460

462-
UuidHolder holder3 = new UuidHolder();
463-
vector.get(2, holder3);
464-
assertEquals(uuid3, new UUID(holder3.mostSigBits, holder3.leastSigBits));
461+
vector.get(2, holder);
462+
assertEquals(uuid3, holder.getUuid());
465463
}
466464
}
467465

@@ -477,19 +475,17 @@ void testNullableHolderStartOffsetWithMultipleValues() throws Exception {
477475
vector.setValueCount(3);
478476

479477
// Test NullableUuidHolder with different indices
480-
NullableUuidHolder holder1 = new NullableUuidHolder();
481-
vector.get(0, holder1);
482-
assertEquals(1, holder1.isSet);
483-
assertEquals(uuid1, new UUID(holder1.mostSigBits, holder1.leastSigBits));
478+
NullableUuidHolder holder = new NullableUuidHolder();
479+
vector.get(0, holder);
480+
assertEquals(1, holder.isSet);
481+
assertEquals(uuid1, holder.getUuid());
484482

485-
NullableUuidHolder holder2 = new NullableUuidHolder();
486-
vector.get(1, holder2);
487-
assertEquals(0, holder2.isSet);
483+
vector.get(1, holder);
484+
assertEquals(0, holder.isSet);
488485

489-
NullableUuidHolder holder3 = new NullableUuidHolder();
490-
vector.get(2, holder3);
491-
assertEquals(1, holder3.isSet);
492-
assertEquals(uuid2, new UUID(holder3.mostSigBits, holder3.leastSigBits));
486+
vector.get(2, holder);
487+
assertEquals(1, holder.isSet);
488+
assertEquals(uuid2, holder.getUuid());
493489
}
494490
}
495491

@@ -585,13 +581,13 @@ void testReaderWithStartOffsetMultipleReads() throws Exception {
585581

586582
// Read from different positions
587583
reader.read(0, holder);
588-
assertEquals(uuid1, new UUID(holder.mostSigBits, holder.leastSigBits));
584+
assertEquals(uuid1, holder.getUuid());
589585

590586
reader.read(1, holder);
591-
assertEquals(uuid2, new UUID(holder.mostSigBits, holder.leastSigBits));
587+
assertEquals(uuid2, holder.getUuid());
592588

593589
reader.read(2, holder);
594-
assertEquals(uuid3, new UUID(holder.mostSigBits, holder.leastSigBits));
590+
assertEquals(uuid3, holder.getUuid());
595591
}
596592
}
597593

@@ -637,7 +633,7 @@ void testNullableUuidHolderReaderImpl() throws Exception {
637633
NullableUuidHolder targetHolder = new NullableUuidHolder();
638634
reader.read(targetHolder);
639635
assertEquals(1, targetHolder.isSet);
640-
assertEquals(uuid, new UUID(targetHolder.mostSigBits, targetHolder.leastSigBits));
636+
assertEquals(uuid, targetHolder.getUuid());
641637
}
642638
}
643639

@@ -681,7 +677,7 @@ void testNullableUuidHolderReaderImplReadIntoUuidHolder() throws Exception {
681677
// Read into UuidHolder (non-nullable)
682678
UuidHolder targetHolder = new UuidHolder();
683679
reader.read(targetHolder);
684-
assertEquals(uuid, new UUID(targetHolder.mostSigBits, targetHolder.leastSigBits));
680+
assertEquals(uuid, targetHolder.getUuid());
685681
}
686682
}
687683

@@ -706,7 +702,7 @@ void testNullableUuidHolderReaderImplWithNonZeroStart() throws Exception {
706702
// Read into another holder
707703
NullableUuidHolder targetHolder = new NullableUuidHolder();
708704
reader.read(targetHolder);
709-
assertEquals(uuid2, new UUID(targetHolder.mostSigBits, targetHolder.leastSigBits));
705+
assertEquals(uuid2, targetHolder.getUuid());
710706
}
711707
}
712708
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2521,7 +2521,7 @@ public void extensionWriterReader() throws Exception {
25212521
uuidReader.setPosition(0);
25222522
UuidHolder uuidHolder = new UuidHolder();
25232523
uuidReader.read(uuidHolder);
2524-
UUID actualUuid = new UUID(uuidHolder.mostSigBits, uuidHolder.leastSigBits);
2524+
UUID actualUuid = uuidHolder.getUuid();
25252525
assertEquals(u1, actualUuid);
25262526
assertTrue(uuidReader.isSet());
25272527
assertEquals(uuidReader.getMinorType(), MinorType.EXTENSIONTYPE);

0 commit comments

Comments
 (0)