From 8e237c0aa9435557fad94d7eb78ea2182dfbac0b Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 21 Feb 2022 11:57:25 +0100 Subject: [PATCH] [jOOQ/jOOQ#13107] Fix regression of XMLDatabase --- .../java/org/jooq/codegen/GenerationUtil.java | 18 ++++++++++++------ .../java/org/jooq/meta/AbstractDatabase.java | 4 +--- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationUtil.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationUtil.java index bd30e1f01d..7785ce9b09 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationUtil.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationUtil.java @@ -513,15 +513,21 @@ class GenerationUtil { case YUGABYTEDB: { // The convention is to prepend a "_" to a type to get an array type - if (u != null && u.last().startsWith("_")) { - String[] name = u.getName(); - name[name.length - 1] = name[name.length - 1].substring(1); - return name(name); + if (u != null) { + if (u.last().startsWith("_")) { + String[] name = u.getName(); + name[name.length - 1] = name[name.length - 1].substring(1); + return name(name); + } + else if (u.last().toUpperCase().endsWith(" ARRAY")) { + String[] name = u.getName(); + name[name.length - 1] = name[name.length - 1].replaceFirst("(?i: ARRAY)", ""); + return name(name); + } } // But there are also arrays with a "vector" suffix - else - return u; + return u; } case H2: diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java index c6da7b8b96..90c8d06490 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java @@ -2802,11 +2802,9 @@ public abstract class AbstractDatabase implements Database { + case H2: case POSTGRES: case YUGABYTEDB: - return "ARRAY".equals(upper); - - case H2: return "ARRAY".equals(upper) || upper.endsWith(" ARRAY");