[jOOQ/jOOQ#11441] Inlining PostgreSQL CHAR(len)[] types produces

VARCHAR[] instead
This commit is contained in:
Lukas Eder 2022-03-21 12:37:45 +01:00
parent 91e0e8eb08
commit 1104cc808b

View File

@ -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<T, U> implements Binding<T, U> {
// [#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));
}