Skip to content

Commit 0421770

Browse files
committed
Implement query transformer to emulate for ordered set aggregate functions through their window variants
1 parent 6505b5e commit 0421770

21 files changed

+1477
-97
lines changed

hibernate-core/src/main/java/org/hibernate/dialect/AbstractHANADialect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ public void initializeFunctionRegistry(QueryEngine queryEngine) {
311311

312312
functionFactory.listagg_stringAgg( "varchar" );
313313
functionFactory.inverseDistributionOrderedSetAggregates();
314-
functionFactory.hypotheticalOrderedSetAggregates();
314+
functionFactory.hypotheticalOrderedSetAggregates_windowEmulation();
315315
}
316316

317317
@Override

hibernate-core/src/main/java/org/hibernate/dialect/OracleSqlAstTranslator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ protected void renderRowNumber(SelectClause selectClause, QueryPart queryPart) {
330330
}
331331

332332
@Override
333-
public void visitOver(Over over) {
333+
public void visitOver(Over<?> over) {
334334
final Expression expression = over.getExpression();
335335
if ( expression instanceof FunctionExpression && "row_number".equals( ( (FunctionExpression) expression ).getFunctionName() ) ) {
336336
if ( over.getPartitions().isEmpty() && over.getOrderList().isEmpty()

hibernate-core/src/main/java/org/hibernate/dialect/SQLServerDialect.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,8 @@ public void initializeFunctionRegistry(QueryEngine queryEngine) {
267267
.setParameterTypes(INTEGER)
268268
.register();
269269
}
270-
functionFactory.inverseDistributionOrderedSetAggregates();
271-
functionFactory.hypotheticalOrderedSetAggregates();
270+
functionFactory.inverseDistributionOrderedSetAggregates_windowEmulation();
271+
functionFactory.hypotheticalOrderedSetAggregates_windowEmulation();
272272
if ( getVersion().isSameOrAfter( 14 ) ) {
273273
functionFactory.listagg_stringAggWithinGroup( "varchar(max)" );
274274
}

0 commit comments

Comments
 (0)