From 70f0fe34261ca4696b0578071a2eac4a39bc4254 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 29 Oct 2019 15:15:30 +0100 Subject: [PATCH] [jOOQ/jOOQ#9457] UDT.getQualifiedName() doesn't return schema qualification for generated tables --- jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java | 9 +++++---- jOOQ/src/main/java/org/jooq/impl/UDTImpl.java | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java b/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java index 0d3ee20c5e..6b9ef79e69 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java @@ -63,11 +63,12 @@ abstract class AbstractNamed extends AbstractQueryPart implements Named { @Override public final String getName() { - return StringUtils.defaultIfNull(name.last(), ""); + return StringUtils.defaultIfNull(getQualifiedName().last(), ""); } + /* [#7172] For lazy initialisation reasons, some subtypes need to override this method */ @Override - public final Name getQualifiedName() { + public /* non-final */ Name getQualifiedName() { return name; } @@ -90,7 +91,7 @@ abstract class AbstractNamed extends AbstractQueryPart implements Named { // [#1938] This is a much more efficient hashCode() implementation // compared to that of standard QueryParts - return name == null ? 0 : name.hashCode(); + return getQualifiedName() == null ? 0 : getQualifiedName().hashCode(); } @Override @@ -103,7 +104,7 @@ abstract class AbstractNamed extends AbstractQueryPart implements Named { // [#2144] Non-equality can be decided early, without executing the // rather expensive implementation of AbstractQueryPart.equals() if (that instanceof AbstractNamed) - if (!name.equals(((AbstractNamed) that).name)) + if (!getQualifiedName().equals(((AbstractNamed) that).getQualifiedName())) return false; return super.equals(that); diff --git a/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java b/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java index 30e09bd3dd..8f07c25790 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java @@ -105,6 +105,12 @@ public class UDTImpl> extends AbstractNamed implements UD return schema; } + @Override + public /* non-final */ Name getQualifiedName() { + Schema s = getSchema(); + return s == null ? super.getQualifiedName() : s.getQualifiedName().append(getUnqualifiedName()); + } +