8000 Convert values of Oid.UUID to java.util.UUID. · rasayana/postgres-async-driver@8ce3712 · GitHub
[go: up one dir, main page]

Skip to content 8000

Commit 8ce3712

Browse files
committed
Convert values of Oid.UUID to java.util.UUID.
1 parent 6928def commit 8ce3712

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

src/main/java/com/github/pgasync/impl/conversion/DataConverter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ public Object toObject(Oid oid, byte[] value) {
178178
case TIME: return toTime(oid, value);
179179
case TIMESTAMP: // fallthrough
180180
case TIMESTAMPTZ: return toTimestamp(oid, value);
181+
case UUID: return UUID.fromString(toString(oid, value));
181182

182183
case INT2_ARRAY:
183184
case INT4_ARRAY:

src/main/java/com/github/pgasync/impl/conversion/StringConversions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ static String toString(Oid oid, byte[] value) {
1919
case TEXT: // fallthrough
2020
case CHAR: // fallthrough
2121
case BPCHAR: // fallthrough
22+
case UUID: // fallthrough
2223
case VARCHAR:
2324
return new String(value, UTF_8);
2425
default:

src/test/java/com/github/pgasync/impl/TypeConverterTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@
2424
import java.sql.Timestamp;
2525
import java.util.Calendar;
2626
import java.util.TimeZone;
27+
import java.util.UUID;
2728

2829
import static java.util.Arrays.asList;
30+
import static java.util.Collections.singletonList;
2931
import static org.junit.Assert.*;
3032

3133
/**
@@ -171,7 +173,7 @@ public void shouldConvertTimestampToTimestamp() {
171173

172174
@Test
173175
public void shouldConvertByteAToBytes() {
174-
assertArrayEquals(new byte[] { 0x41, 0x41 }, dbr.query("select '\\x4141'::BYTEA").row(0).getBytes(0));
176+
assertArrayEquals(new byte[]{0x41, 0x41}, dbr.query("select '\\x4141'::BYTEA").row(0).getBytes(0));
175177
}
176178

177179
@Test
@@ -188,6 +190,13 @@ public void shouldConvertBoolean() {
188190
assertArrayEquals(new Boolean[]{ true, false}, dbr.query("select '{true,false}'::BOOL[]").row(0).getArray(0, Boolean[].class));
189191
}
190192

193+
@Test
194+
public void shouldConvertUUID() {
195+
UUID uuid = UUID.randomUUID();
196+
PgRow row = (PgRow) dbr.query("select $1::UUID as uuid", singletonList(uuid)).row(0);
197+
assertEquals(uuid, row.get("uuid"));
198+
}
199+
191200
static long millis(int year, int month, int day, int hour, int minute, int second, int millisecond) {
192201
Calendar cal = Calendar.getInstance();
193202
cal.clear();

0 commit comments

Comments
 (0)
0