From 5b315c5a6ea6c64d39cccba5fd11ea0dc4685a56 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 6 May 2024 11:20:24 +0200 Subject: [PATCH] [jOOQ/jOOQ#16071] Support MIN_BY() and MAX_BY() in HANA They're just FIRST_VALUE() and LAST_VALUE(), really... --- .../jooq/impl/AbstractAggregateFunction.java | 8 ++++-- jOOQ/src/main/java/org/jooq/impl/MaxBy.java | 27 +++++++++++++++++++ jOOQ/src/main/java/org/jooq/impl/MinBy.java | 27 +++++++++++++++++++ 3 files changed, 60 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java b/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java index 7fb7218287..97bb00b9f0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java @@ -355,7 +355,11 @@ implements } final void acceptOrderBy(Context ctx) { - if (!Tools.isEmpty(withinGroupOrderBy)) { + acceptOrderBy(ctx, withinGroupOrderBy); + } + + static final void acceptOrderBy(Context ctx, SortFieldList orderBy) { + if (!Tools.isEmpty(orderBy)) { switch (ctx.family()) { @@ -364,7 +368,7 @@ implements default: - ctx.sql(' ').visit(K_ORDER_BY).sql(' ').visit(withinGroupOrderBy); + ctx.sql(' ').visit(K_ORDER_BY).sql(' ').visit(orderBy); break; } } diff --git a/jOOQ/src/main/java/org/jooq/impl/MaxBy.java b/jOOQ/src/main/java/org/jooq/impl/MaxBy.java index e3a73f9e35..bb779cc399 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MaxBy.java +++ b/jOOQ/src/main/java/org/jooq/impl/MaxBy.java @@ -115,6 +115,27 @@ implements + + + + + + + + + + + + + + + + + + + + + case H2: case HSQLDB: case POSTGRES: @@ -149,6 +170,12 @@ implements ctx.visit(N_argMax); break; + + + + + + default: super.acceptFunctionName(ctx); break; diff --git a/jOOQ/src/main/java/org/jooq/impl/MinBy.java b/jOOQ/src/main/java/org/jooq/impl/MinBy.java index 80aefa621c..d698b2bdf1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MinBy.java +++ b/jOOQ/src/main/java/org/jooq/impl/MinBy.java @@ -115,6 +115,27 @@ implements + + + + + + + + + + + + + + + + + + + + + case H2: case HSQLDB: case POSTGRES: @@ -149,6 +170,12 @@ implements ctx.visit(N_argMin); break; + + + + + + default: super.acceptFunctionName(ctx); break;