diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index c9b8bae66e..8d013219f6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -4908,15 +4908,23 @@ public class DefaultBinding implements Binding { final UUID get0(BindingGetResultSetContext ctx) throws SQLException { switch (ctx.family()) { - // [#1624] Some JDBC drivers natively support the - // java.util.UUID data type - + // [#1624] Some JDBC drivers natively support the java.util.UUID data type + // [#8439] In edge cases (e.g. arrays over domains) the type info may have + // been lost between server and JDBC driver, so let's expect PGobject case H2: case POSTGRES: - case YUGABYTEDB: - return Convert.convert(ctx.resultSet().getObject(ctx.index()), UUID.class); + case YUGABYTEDB: { + Object o = ctx.resultSet().getObject(ctx.index()); + + if (o == null) + return null; + else if (o instanceof UUID u) + return u; + else + return Convert.convert(o.toString(), UUID.class); + }