diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index a5a749bf84..d471271bf2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -37645,6 +37645,8 @@ public class DSL { if (t instanceof LegacyConvertedDataType l) return new DataTypeProxy(l); + else if (t.isArray() && t.getArrayComponentDataType() != SQLDataType.OTHER) + return t; else if (t != SQLDataType.OTHER) return t; else diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java index 6fcef7d716..3ed12bf426 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java @@ -906,7 +906,7 @@ public class DefaultDataType extends AbstractDataTypeX { // Recurse for arrays if (byte[].class != type && type.isArray()) { - return (DataType) getDataType(dialect, type.getComponentType()).getArrayDataType(); + return (DataType) getDataType(dialect, (Class) type.getComponentType(), fallbackDataType).getArrayDataType(); } // Base types are registered statically