From 1104cc808be4ef8ce78edcd486fde374a06ced4f Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 21 Mar 2022 12:37:45 +0100 Subject: [PATCH] [jOOQ/jOOQ#11441] Inlining PostgreSQL CHAR(len)[] types produces VARCHAR[] instead --- jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index 1c81d88c3c..0cf2c55b0a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -97,6 +97,7 @@ import static org.jooq.impl.DefaultBinding.DefaultDoubleBinding.nan; import static org.jooq.impl.DefaultBinding.DefaultJSONBBinding.EMULATE_AS_BLOB; import static org.jooq.impl.DefaultBinding.DefaultResultBinding.readMultisetJSON; import static org.jooq.impl.DefaultBinding.DefaultResultBinding.readMultisetXML; +import static org.jooq.impl.DefaultDataType.getDataType; import static org.jooq.impl.DefaultExecuteContext.localExecuteContext; import static org.jooq.impl.DefaultExecuteContext.localTargetConnection; import static org.jooq.impl.Internal.arrayType; @@ -1183,10 +1184,10 @@ public class DefaultBinding implements Binding { // [#8933] In some cases, we cannot derive the cast type from // array type directly - Class arrayType = + DataType arrayType = dataType.getType() == Object[].class - ? deriveArrayTypeFromComponentType(value) - : dataType.getType(); + ? getDataType(ctx.dialect(), deriveArrayTypeFromComponentType(value)) + : dataType; ctx.render().visit(cast(inline(PostgresUtils.toPGArrayString(value)), arrayType)); }