Skip to content

Commit c27d700

Browse files
committed
HHH-18368 Fix for older Informix
1 parent cbf1739 commit c27d700

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/InformixDialect.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -281,12 +281,15 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
281281
functionFactory.stddev();
282282
functionFactory.variance();
283283
functionFactory.bitLength_pattern( "length(?1)*8" );
284-
284+
285285
if ( getVersion().isBefore( 12 ) ) {
286-
functionContributions.getFunctionRegistry().register( "coalesce", new NvlCoalesceEmulation() );
286+
functionContributions.getFunctionRegistry().register(
287+
"coalesce",
288+
new NvlCoalesceEmulation( SqlAstNodeRenderingMode.INLINE_ALL_PARAMETERS )
289+
);
287290
}
288291
else {
289-
functionFactory.coalesce(SqlAstNodeRenderingMode.INLINE_ALL_PARAMETERS);
292+
functionFactory.coalesce( SqlAstNodeRenderingMode.INLINE_ALL_PARAMETERS );
290293
functionFactory.locate_charindex();
291294
}
292295
functionContributions.getFunctionRegistry().register( "least", new CaseLeastGreatestEmulation( true ) );

hibernate-core/src/main/java/org/hibernate/dialect/function/NvlCoalesceEmulation.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.hibernate.query.sqm.produce.function.StandardFunctionReturnTypeResolvers;
1717
import org.hibernate.query.sqm.tree.SqmTypedNode;
1818
import org.hibernate.query.sqm.tree.expression.SqmExpression;
19+
import org.hibernate.sql.ast.SqlAstNodeRenderingMode;
1920

2021
import java.util.List;
2122

@@ -31,13 +32,20 @@
3132
public class NvlCoalesceEmulation
3233
extends AbstractSqmFunctionDescriptor {
3334

35+
private final SqlAstNodeRenderingMode inferenceArgumentRenderingMode;
36+
3437
public NvlCoalesceEmulation() {
38+
this( SqlAstNodeRenderingMode.DEFAULT );
39+
}
40+
41+
public NvlCoalesceEmulation(SqlAstNodeRenderingMode inferenceArgumentRenderingMode) {
3542
super(
3643
"coalesce",
3744
StandardArgumentsValidators.min( 2 ),
3845
StandardFunctionReturnTypeResolvers.useFirstNonNull(),
3946
StandardFunctionArgumentTypeResolvers.IMPLIED_RESULT_TYPE
4047
);
48+
this.inferenceArgumentRenderingMode = inferenceArgumentRenderingMode;
4149
}
4250

4351
@Override
@@ -50,6 +58,7 @@ protected <T> SelfRenderingSqmFunction<T> generateSqmFunctionExpression(
5058
queryEngine.getSqmFunctionRegistry()
5159
.namedDescriptorBuilder("nvl")
5260
.setExactArgumentCount(2)
61+
.setArgumentRenderingMode( inferenceArgumentRenderingMode )
5362
.descriptor();
5463

5564
int pos = arguments.size();

0 commit comments

Comments
 (0)