diff --git a/jOOQ/src/main/java/org/jooq/impl/RowCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowCondition.java index 8c2fbc3d5e..a3ec718237 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowCondition.java @@ -176,13 +176,14 @@ final class RowCondition extends AbstractCondition { for (int j = 0; j < i; j++) inner.add(leftFields[j].equal((Field) rightFields[j])); - inner.add(leftFields[i].compare(order, (Field) rightFields[i])); + inner.add(leftFields[i].compare( + equal && i == leftFields.length - 1 ? comparator : order, + (Field) rightFields[i]) + ); + outer.add(DSL.and(inner)); } - if (equal) - outer.add(new RowCondition(left, right, Comparator.EQUALS)); - Condition result = DSL.or(outer); // [#2658] For performance reasons, an additional, redundant