diff --git a/jOOQ/src/main/java/org/jooq/impl/MaxBy.java b/jOOQ/src/main/java/org/jooq/impl/MaxBy.java index 5c48970713..8d797c8b77 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MaxBy.java +++ b/jOOQ/src/main/java/org/jooq/impl/MaxBy.java @@ -127,6 +127,15 @@ implements + + + + + + + + + @@ -141,29 +150,37 @@ implements case HSQLDB: case POSTGRES: case YUGABYTEDB: { - List> o = new ArrayList<>(); - o.add(arguments.get(1).desc()); - - if (!isEmpty(withinGroupOrderBy)) - o.addAll(withinGroupOrderBy); - - ctx.visit(arrayGet(fo(DSL.arrayAgg(arguments.get(0)).orderBy(o)), inline(1))); + acceptArrayAggEmulation(ctx); break; } default: - acceptFunctionName(ctx); - ctx.sql('('); - acceptArguments0(ctx); - acceptOrderBy(ctx); - ctx.sql(')'); - - acceptFilterClause(ctx); - acceptOverClause(ctx); + acceptDefault(ctx); break; } } + private final void acceptArrayAggEmulation(Context ctx) { + List> o = new ArrayList<>(); + o.add(arguments.get(1).desc()); + + if (!isEmpty(withinGroupOrderBy)) + o.addAll(withinGroupOrderBy); + + ctx.visit(arrayGet(fo(DSL.arrayAgg(arguments.get(0)).orderBy(o)), inline(1))); + } + + private final void acceptDefault(Context ctx) { + acceptFunctionName(ctx); + ctx.sql('('); + acceptArguments0(ctx); + acceptOrderBy(ctx); + ctx.sql(')'); + + acceptFilterClause(ctx); + acceptOverClause(ctx); + } + @Override final void acceptFunctionName(Context ctx) { switch (ctx.family()) { diff --git a/jOOQ/src/main/java/org/jooq/impl/MinBy.java b/jOOQ/src/main/java/org/jooq/impl/MinBy.java index f443970b39..e0bf3481ea 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MinBy.java +++ b/jOOQ/src/main/java/org/jooq/impl/MinBy.java @@ -127,6 +127,15 @@ implements + + + + + + + + + @@ -141,29 +150,37 @@ implements case HSQLDB: case POSTGRES: case YUGABYTEDB: { - List> o = new ArrayList<>(); - o.add(arguments.get(1).sortDefault()); - - if (!isEmpty(withinGroupOrderBy)) - o.addAll(withinGroupOrderBy); - - ctx.visit(arrayGet(fo(DSL.arrayAgg(arguments.get(0)).orderBy(o)), inline(1))); + acceptArrayAggEmulation(ctx); break; } default: - acceptFunctionName(ctx); - ctx.sql('('); - acceptArguments0(ctx); - acceptOrderBy(ctx); - ctx.sql(')'); - - acceptFilterClause(ctx); - acceptOverClause(ctx); + acceptDefault(ctx); break; } } + private final void acceptArrayAggEmulation(Context ctx) { + List> o = new ArrayList<>(); + o.add(arguments.get(1).sortDefault()); + + if (!isEmpty(withinGroupOrderBy)) + o.addAll(withinGroupOrderBy); + + ctx.visit(arrayGet(fo(DSL.arrayAgg(arguments.get(0)).orderBy(o)), inline(1))); + } + + private final void acceptDefault(Context ctx) { + acceptFunctionName(ctx); + ctx.sql('('); + acceptArguments0(ctx); + acceptOrderBy(ctx); + ctx.sql(')'); + + acceptFilterClause(ctx); + acceptOverClause(ctx); + } + @Override final void acceptFunctionName(Context ctx) { switch (ctx.family()) {