diff --git a/jOOQ/src/main/java/org/jooq/impl/Fields.java b/jOOQ/src/main/java/org/jooq/impl/Fields.java index 349236cbbe..e7e90c70e3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Fields.java +++ b/jOOQ/src/main/java/org/jooq/impl/Fields.java @@ -82,16 +82,18 @@ class Fields extends AbstractQueryPart implements RecordType Field field(Field field) { - if (field == null) { + if (field == null) return null; - } + + // [#4540] Try finding a match by identity + for (Field f : fields) + if (f == field) + return (Field) f; // [#1802] Try finding an exact match (e.g. exact matching qualified name) - for (Field f : fields) { - if (f.equals(field)) { + for (Field f : fields) + if (f.equals(field)) return (Field) f; - } - } // [#4283] table / column matches are better than only column matches Field columnMatch = null; @@ -249,10 +251,14 @@ class Fields extends AbstractQueryPart implements RecordType