Skip to content

Commit 4d3aee5

Browse files
committed
HHH-3404 Add regexp_like support for HANA, Oracle and SQL Server
Also cleanup the tests and make case-insensitive regexp_like work with lower function if needed
1 parent 6eb3bf9 commit 4d3aee5

37 files changed

+506
-77
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
257257
.setExactArgumentCount( 2 )
258258
.setArgumentTypeResolver( StandardFunctionArgumentTypeResolvers.ARGUMENT_OR_IMPLIED_RESULT_TYPE )
259259
.register();
260+
functionFactory.regexpLike_predicateFunction();
260261
}
261262

262263
@Override

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
266266
functionFactory.addMonths();
267267
functionFactory.monthsBetween();
268268
functionFactory.rownumInstOrderbyGroupbyNum();
269+
functionFactory.regexpLike();
269270
}
270271

271272
@Override

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
548548
)
549549
);
550550
functionContributions.getFunctionRegistry().registerAlternateKey( "truncate", "trunc" );
551+
functionFactory.regexpLike_postgresql( false );
551552
}
552553

553554
@Override

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,8 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
504504
if ( getDB2Version().isSameOrAfter( 11 ) ) {
505505
functionFactory.sha( "hash(?1, 2)" );
506506
functionFactory.md5( "hash(?1, 0)" );
507+
508+
functionFactory.regexpLike();
507509
}
508510
}
509511

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,14 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
7171
"substring",
7272
new DB2SubstringFunction( false, functionContributions.getTypeConfiguration() )
7373
);
74-
if ( getVersion().isSameOrAfter( 7, 2 ) ) {
74+
if ( getVersion().isSameOrAfter( 7, 1 ) ) {
7575
CommonFunctionFactory functionFactory = new CommonFunctionFactory( functionContributions );
76-
functionFactory.listagg( null );
77-
functionFactory.inverseDistributionOrderedSetAggregates();
78-
functionFactory.hypotheticalOrderedSetAggregates_windowEmulation();
76+
functionFactory.regexpLike();
77+
if ( getVersion().isSameOrAfter( 7, 2 ) ) {
78+
functionFactory.listagg( null );
79+
functionFactory.inverseDistributionOrderedSetAggregates();
80+
functionFactory.hypotheticalOrderedSetAggregates_windowEmulation();
81+
}
7982
}
8083
}
8184

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
7878
functionFactory.listagg( null );
7979
functionFactory.inverseDistributionOrderedSetAggregates();
8080
functionFactory.hypotheticalOrderedSetAggregates_windowEmulation();
81+
functionFactory.regexpLike();
8182
}
8283
}
8384

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ public void register() {
127127
arraySet_gaussdb();
128128
arrayFill_gaussdb();
129129
jsonObject_gaussdb();
130+
functionFactory.regexpLike();
130131
}
131132

132133
public void array_gaussdb() {

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,10 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
443443
functionFactory.unnest_h2( getMaximumArraySize() );
444444
functionFactory.generateSeries_h2( getMaximumSeriesSize() );
445445
functionFactory.jsonTable_h2( getMaximumArraySize() );
446+
447+
if ( getVersion().isSameOrAfter( 1, 4, 193 ) ) {
448+
functionFactory.regexpLike();
449+
}
446450
}
447451

448452
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,8 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
529529

530530
// functionFactory.xmlextract();
531531
}
532+
533+
functionFactory.regexpLike_like_regexp();
532534
}
533535

534536
/**

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
292292
functionContributions.getTypeConfiguration(),
293293
SqlAstNodeRenderingMode.NO_PLAIN_PARAMETER
294294
) );
295+
functionFactory.regexpLike_hsql();
295296
}
296297

297298
/**

0 commit comments

Comments
 (0)