From b32c62bd08a38ca66e4aa62b8b478f8966f54e88 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 26 Aug 2020 17:38:39 +0200 Subject: [PATCH] [jOOQ/jOOQ#10538] Improve emulation of (a, b) >= (x, y) --- jOOQ/src/main/java/org/jooq/impl/RowCondition.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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