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) {