Skip to content

Commit db6b98e

Browse files
committed
Return UUID
1 parent cb954a6 commit db6b98e

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

parquet-variant/src/main/java/org/apache/parquet/variant/Variant.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import java.util.Arrays;
3434
import java.util.Base64;
3535
import java.util.Locale;
36+
import java.util.UUID;
3637

3738
/**
3839
* This Variant class holds the Variant-encoded value and metadata binary values.
@@ -129,8 +130,11 @@ public byte[] getBinary() {
129130
/**
130131
* @return the UUID value
131132
*/
132-
public byte[] getUUID() {
133-
return VariantUtil.getUUID(value, pos);
133+
public UUID getUUID() {
134+
byte[] uuidBytes = VariantUtil.getUUID(value, pos);
135+
long msb = ByteBuffer.wrap(uuidBytes, 0, 8).order(ByteOrder.BIG_ENDIAN).getLong();
136+
long lsb = ByteBuffer.wrap(uuidBytes, 8, 8).order(ByteOrder.BIG_ENDIAN).getLong();
137+
return new UUID(msb, lsb);
134138
}
135139

136140
/**

parquet-variant/src/test/java/org/apache/parquet/variant/TestVariantEncoding.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import com.fasterxml.jackson.databind.ObjectMapper;
2323
import java.io.IOException;
2424
import java.math.BigDecimal;
25+
import java.nio.ByteBuffer;
26+
import java.nio.ByteOrder;
2527
import java.security.SecureRandom;
2628
import java.time.Instant;
2729
import java.time.LocalDate;
@@ -31,6 +33,7 @@
3133
import java.util.Arrays;
3234
import java.util.Base64;
3335
import java.util.List;
36+
import java.util.UUID;
3437
import java.util.concurrent.TimeUnit;
3538
import java.util.stream.IntStream;
3639
import org.junit.Assert;
@@ -346,7 +349,10 @@ public void testUUID() {
346349
vb.appendUUID(uuid);
347350
Assert.assertEquals(
348351
"\"00112233-4455-6677-8899-aabbccddeeff\"", vb.result().toJson());
349-
Assert.assertArrayEquals(uuid, vb.result().getUUID());
352+
long msb = ByteBuffer.wrap(uuid, 0, 8).order(ByteOrder.BIG_ENDIAN).getLong();
353+
long lsb = ByteBuffer.wrap(uuid, 8, 8).order(ByteOrder.BIG_ENDIAN).getLong();
354+
UUID expected = new UUID(msb, lsb);
355+
Assert.assertEquals(expected, vb.result().getUUID());
350356
}
351357

352358
@Test

0 commit comments

Comments
 (0)