diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java index 5658aaa905..434dca88f7 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -11983,6 +11983,16 @@ public class JavaGenerator extends AbstractGenerator { if (d != null) dataType = dataType.defaultValue((Field) DSL.field(d, dataType)); + // [#18827] In some cases, we can't report the length/precision/scale from jOOQ-meta + // as it isn't encoded formally in the INFORMATION_SCHEMA (e.g. array component type length), + // but it's available in text form + if (dataType.precisionDefined() && precision == 0) + precision = dataType.precision(); + if (dataType.scaleDefined() && scale == 0) + scale = dataType.scale(); + if (dataType.lengthDefined() && length == 0) + length = dataType.length(); + // If there is a standard SQLDataType available for the dialect- // specific DataType t, then reference that one. if (dataType.getSQLDataType() != null && sb.length() == 0) {