diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 6dd3036b19..3be5739c55 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -5333,13 +5333,22 @@ final class Tools { return result; } + /** + * Look up a field in a table, or create a new qualified field from the table. + */ static final Field tableField(Table table, Object field) { if (field instanceof Field) return (Field) field; else if (field instanceof Name) - return table.field((Name) field); + if (table.fieldsRow().size() == 0) + return DSL.field(table.getQualifiedName().append(((Name) field).unqualifiedName())) ; + else + return table.field((Name) field); else if (field instanceof String) - return table.field((String) field); + if (table.fieldsRow().size() == 0) + return DSL.field(table.getQualifiedName().append((String) field)); + else + return table.field((String) field); else throw new IllegalArgumentException("Field type not supported: " + field); }