[jOOQ/jOOQ#19314] Use ARRAY_AGG emulation for BigQuery MIN_BY() or MAX_BY() window function
This commit is contained in:
parent
4e46e252ca
commit
9840750a0e
@ -127,6 +127,15 @@ implements
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -141,6 +150,17 @@ implements
|
||||
case HSQLDB:
|
||||
case POSTGRES:
|
||||
case YUGABYTEDB: {
|
||||
acceptArrayAggEmulation(ctx);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
acceptDefault(ctx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private final void acceptArrayAggEmulation(Context<?> ctx) {
|
||||
List<SortField<?>> o = new ArrayList<>();
|
||||
o.add(arguments.get(1).desc());
|
||||
|
||||
@ -148,10 +168,9 @@ implements
|
||||
o.addAll(withinGroupOrderBy);
|
||||
|
||||
ctx.visit(arrayGet(fo(DSL.arrayAgg(arguments.get(0)).orderBy(o)), inline(1)));
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
private final void acceptDefault(Context<?> ctx) {
|
||||
acceptFunctionName(ctx);
|
||||
ctx.sql('(');
|
||||
acceptArguments0(ctx);
|
||||
@ -160,8 +179,6 @@ implements
|
||||
|
||||
acceptFilterClause(ctx);
|
||||
acceptOverClause(ctx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -127,6 +127,15 @@ implements
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -141,6 +150,17 @@ implements
|
||||
case HSQLDB:
|
||||
case POSTGRES:
|
||||
case YUGABYTEDB: {
|
||||
acceptArrayAggEmulation(ctx);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
acceptDefault(ctx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private final void acceptArrayAggEmulation(Context<?> ctx) {
|
||||
List<SortField<?>> o = new ArrayList<>();
|
||||
o.add(arguments.get(1).sortDefault());
|
||||
|
||||
@ -148,10 +168,9 @@ implements
|
||||
o.addAll(withinGroupOrderBy);
|
||||
|
||||
ctx.visit(arrayGet(fo(DSL.arrayAgg(arguments.get(0)).orderBy(o)), inline(1)));
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
private final void acceptDefault(Context<?> ctx) {
|
||||
acceptFunctionName(ctx);
|
||||
ctx.sql('(');
|
||||
acceptArguments0(ctx);
|
||||
@ -160,8 +179,6 @@ implements
|
||||
|
||||
acceptFilterClause(ctx);
|
||||
acceptOverClause(ctx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
Reference in New Issue
Block a user