From 35a70eb4bc92f2f5d5468129284453d4d2771388 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 22 Jan 2021 17:12:07 +0100 Subject: [PATCH] [jOOQ/jOOQ#11292] AbstractMeta.getForeignKeys() and other key / index producing methods don't handle namespacing correctly --- jOOQ/src/main/java/org/jooq/impl/AbstractKey.java | 2 +- jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractKey.java b/jOOQ/src/main/java/org/jooq/impl/AbstractKey.java index fccc3d5b95..83ea1e5adf 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractKey.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractKey.java @@ -73,7 +73,7 @@ abstract class AbstractKey extends AbstractNamed implements Ke } AbstractKey(Table table, Name name, TableField[] fields, boolean enforced) { - super(name, null); + super(qualify(table, name), null); this.table = table; this.fields = fields; diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java b/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java index 3f6533e431..36d7fd1596 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java @@ -123,7 +123,10 @@ abstract class AbstractNamed extends AbstractQueryPart implements Named { // ------------------------------------------------------------------------- static final Name qualify(Named qualifier, Name name) { - return qualifier == null || name.qualified() ? name : qualifier.getQualifiedName().append(name); + // [#9820] [#11292] name == null || name.empty() are special cases that + // may appear when using unnamed constraint declarations. + // Their unnamedness must not be changed, nor qualified! + return qualifier == null || name == null || name.empty() || name.qualified() ? name : qualifier.getQualifiedName().append(name); } static final List findAll(String name, Iterable in) {