Skip to content

Commit 844850b

Browse files
committed
HHH-3404 regexp on Informix
Not implemented: support for 'ilike regexp'
1 parent 72615ab commit 844850b

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,8 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
367367
final TypeConfiguration typeConfiguration = functionContributions.getTypeConfiguration();
368368
final BasicType<String> stringBasicType =
369369
typeConfiguration.getBasicTypeRegistry().resolve( StandardBasicTypes.STRING );
370+
final BasicType<Boolean> booleanBasicType =
371+
typeConfiguration.getBasicTypeRegistry().resolve( StandardBasicTypes.BOOLEAN );
370372

371373
functionRegistry.registerAlternateKey( "var_samp", "variance" );
372374

@@ -408,6 +410,12 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
408410
// parameter arguments to trim() require a cast
409411
functionContributions.getFunctionRegistry().register( "trim",
410412
new TrimFunction( this, typeConfiguration, SqlAstNodeRenderingMode.NO_UNTYPED ) );
413+
414+
//TODO: emulate support for the 'i' flag argument
415+
functionRegistry.namedDescriptorBuilder( "regexp_like", "regex_match" )
416+
.setParameterTypes( STRING, STRING )
417+
.setInvariantType( booleanBasicType )
418+
.register();
411419
}
412420

413421
@Override

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2671,7 +2671,6 @@ public void regexpLike() {
26712671
.setParameterTypes( STRING, STRING, STRING )
26722672
.setInvariantType( booleanType )
26732673
.register();
2674-
26752674
}
26762675

26772676
/**

hibernate-core/src/test/java/org/hibernate/orm/test/query/hql/RegexTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
package org.hibernate.orm.test.query.hql;
66

7+
import org.hibernate.community.dialect.InformixDialect;
78
import org.hibernate.dialect.HSQLDialect;
89
import org.hibernate.dialect.MariaDBDialect;
910
import org.hibernate.dialect.OracleDialect;
@@ -41,6 +42,8 @@ void testInSelect(EntityManagerFactoryScope scope) {
4142
reason = "regexp_like coming in 2025")
4243
@SkipForDialect(dialectClass = SybaseASEDialect.class,
4344
reason = "no regex support in Sybase ASE")
45+
@SkipForDialect(dialectClass = InformixDialect.class,
46+
reason = "This could be made to work on Informix by changing the flags")
4447
void testInSelectCaseInsensitive(EntityManagerFactoryScope scope) {
4548
if ( !( scope.getDialect() instanceof OracleDialect dialect
4649
&& ( dialect.isAutonomous() || dialect.getVersion().isBefore( 23 ) ) ) ) {

0 commit comments

Comments
 (0)