From e203490c3bb6b77ed2b8051ad390b2b2acd830ce Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 10 Jul 2018 17:08:34 +0200 Subject: [PATCH] [#7660] EVERY() aggregate function emulation doesn't yield NULL when aggregating empty sets --- jOOQ/src/main/java/org/jooq/impl/BoolAnd.java | 5 ++--- jOOQ/src/main/java/org/jooq/impl/BoolOr.java | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/BoolAnd.java b/jOOQ/src/main/java/org/jooq/impl/BoolAnd.java index db5fc9f59b..3eb5bc5da1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BoolAnd.java +++ b/jOOQ/src/main/java/org/jooq/impl/BoolAnd.java @@ -37,7 +37,6 @@ */ package org.jooq.impl; -import static org.jooq.impl.DSL.inline; import static org.jooq.impl.DSL.one; import static org.jooq.impl.DSL.zero; @@ -79,12 +78,12 @@ final class BoolAnd extends Function { final Field max = DSL.field("{0}", Integer.class, new CustomQueryPart() { @Override public void accept(Context c) { - c.visit(DSL.max(DSL.when(condition, zero()).otherwise(one()))); + c.visit(DSL.min(DSL.when(condition, one()).otherwise(zero()))); toSQLOverClause(c); } }); - ctx.visit(DSL.when(max.eq(zero()), inline(true)).otherwise(inline(false))); + ctx.visit(DSL.field(max.eq(one()))); break; } } diff --git a/jOOQ/src/main/java/org/jooq/impl/BoolOr.java b/jOOQ/src/main/java/org/jooq/impl/BoolOr.java index 8655e36136..9a839cf736 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BoolOr.java +++ b/jOOQ/src/main/java/org/jooq/impl/BoolOr.java @@ -37,7 +37,6 @@ */ package org.jooq.impl; -import static org.jooq.impl.DSL.inline; import static org.jooq.impl.DSL.one; import static org.jooq.impl.DSL.zero; @@ -84,7 +83,7 @@ final class BoolOr extends Function { } }); - ctx.visit(DSL.when(max.eq(one()), inline(true)).otherwise(inline(false))); + ctx.visit(DSL.field(max.eq(one()))); break; } }