Fix a type and missing branches in base walkers for ordered set aggregates
This commit is contained in:
parent
236ece769b
commit
d5d1cf937c
|
@ -53,6 +53,7 @@ import org.hibernate.query.sqm.tree.expression.SqmLiteral;
|
|||
import org.hibernate.query.sqm.tree.expression.SqmLiteralEntityType;
|
||||
import org.hibernate.query.sqm.tree.expression.SqmModifiedSubQueryExpression;
|
||||
import org.hibernate.query.sqm.tree.expression.SqmNamedParameter;
|
||||
import org.hibernate.query.sqm.tree.expression.SqmOrderedSetAggregateFunction;
|
||||
import org.hibernate.query.sqm.tree.expression.SqmOverflow;
|
||||
import org.hibernate.query.sqm.tree.expression.SqmParameterizedEntityType;
|
||||
import org.hibernate.query.sqm.tree.expression.SqmPositionalParameter;
|
||||
|
@ -582,6 +583,9 @@ public abstract class BaseSemanticQueryWalker implements SemanticQueryWalker<Obj
|
|||
if ( filter != null ) {
|
||||
filter.accept( this );
|
||||
}
|
||||
if ( sqmFunction instanceof SqmOrderedSetAggregateFunction<?> ) {
|
||||
visitOrderByClause( ( (SqmOrderedSetAggregateFunction<?>) sqmFunction ).getWithinGroup() );
|
||||
}
|
||||
}
|
||||
return sqmFunction;
|
||||
}
|
||||
|
|
|
@ -161,7 +161,7 @@ public interface SqlAstWalker {
|
|||
|
||||
void visitQueryLiteral(QueryLiteral<?> queryLiteral);
|
||||
|
||||
void acceptConvertedQueryLiteral(ConvertedQueryLiteral<?,?> convertedQueryLiteral);
|
||||
void visitConvertedQueryLiteral(ConvertedQueryLiteral<?,?> convertedQueryLiteral);
|
||||
|
||||
void visitUnaryOperationExpression(UnaryOperation unaryOperationExpression);
|
||||
|
||||
|
|
|
@ -4589,7 +4589,7 @@ public abstract class AbstractSqlAstTranslator<T extends JdbcOperation> implemen
|
|||
}
|
||||
|
||||
@Override
|
||||
public void acceptConvertedQueryLiteral(ConvertedQueryLiteral<?, ?> convertedQueryLiteral) {
|
||||
public void visitConvertedQueryLiteral(ConvertedQueryLiteral<?, ?> convertedQueryLiteral) {
|
||||
visitLiteral( convertedQueryLiteral );
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ import org.hibernate.sql.ast.tree.expression.FunctionExpression;
|
|||
import org.hibernate.sql.ast.tree.expression.JdbcLiteral;
|
||||
import org.hibernate.sql.ast.tree.expression.JdbcParameter;
|
||||
import org.hibernate.sql.ast.tree.expression.ModifiedSubQueryExpression;
|
||||
import org.hibernate.sql.ast.tree.expression.OrderedSetAggregateFunctionExpression;
|
||||
import org.hibernate.sql.ast.tree.expression.Over;
|
||||
import org.hibernate.sql.ast.tree.expression.Overflow;
|
||||
import org.hibernate.sql.ast.tree.expression.QueryLiteral;
|
||||
|
@ -106,6 +107,11 @@ public class AbstractSqlAstWalker implements SqlAstWalker {
|
|||
if ( aggregateFunctionExpression.getFilter() != null ) {
|
||||
aggregateFunctionExpression.getFilter().accept( this );
|
||||
}
|
||||
if ( expression instanceof OrderedSetAggregateFunctionExpression ) {
|
||||
for ( SortSpecification specification : ( (OrderedSetAggregateFunctionExpression) expression ).getWithinGroup() ) {
|
||||
specification.accept( this );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -480,7 +486,7 @@ public class AbstractSqlAstWalker implements SqlAstWalker {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void acceptConvertedQueryLiteral(ConvertedQueryLiteral<?,?> convertedQueryLiteral) {
|
||||
public void visitConvertedQueryLiteral(ConvertedQueryLiteral<?,?> convertedQueryLiteral) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -219,7 +219,7 @@ public class ExpressionReplacementWalker implements SqlAstWalker {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void acceptConvertedQueryLiteral(ConvertedQueryLiteral<?, ?> convertedQueryLiteral) {
|
||||
public void visitConvertedQueryLiteral(ConvertedQueryLiteral<?, ?> convertedQueryLiteral) {
|
||||
doReplaceExpression( convertedQueryLiteral );
|
||||
}
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ public class ConvertedQueryLiteral<D,R> implements Literal, DomainResultProducer
|
|||
|
||||
@Override
|
||||
public void accept(SqlAstWalker sqlTreeWalker) {
|
||||
sqlTreeWalker.acceptConvertedQueryLiteral( this );
|
||||
sqlTreeWalker.visitConvertedQueryLiteral( this );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
package org.hibernate.sql.ast.tree.expression;
|
||||
|
||||
import org.hibernate.Incubating;
|
||||
import org.hibernate.query.sqm.sql.SqmToSqlAstConverter;
|
||||
import org.hibernate.sql.ast.tree.cte.CteContainer;
|
||||
import org.hibernate.sql.ast.tree.select.QuerySpec;
|
||||
|
@ -13,6 +14,7 @@ import org.hibernate.sql.ast.tree.select.QuerySpec;
|
|||
/**
|
||||
* @author Christian Beikov
|
||||
*/
|
||||
@Incubating
|
||||
public interface QueryTransformer {
|
||||
|
||||
QuerySpec transform(
|
||||
|
|
Loading…
Reference in New Issue