|
55 | 55 | import org.hibernate.query.sqm.mutation.internal.temptable.LocalTemporaryTableMutationStrategy; |
56 | 56 | import org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy; |
57 | 57 | import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy; |
| 58 | +import org.hibernate.query.sqm.produce.function.StandardFunctionArgumentTypeResolvers; |
58 | 59 | import org.hibernate.query.sqm.sql.SqmTranslator; |
59 | 60 | import org.hibernate.query.sqm.sql.SqmTranslatorFactory; |
60 | 61 | import org.hibernate.query.sqm.sql.StandardSqmTranslatorFactory; |
|
73 | 74 | import org.hibernate.tool.schema.internal.StandardForeignKeyExporter; |
74 | 75 | import org.hibernate.tool.schema.spi.Exporter; |
75 | 76 | import org.hibernate.type.JavaObjectType; |
| 77 | +import org.hibernate.type.StandardBasicTypes; |
76 | 78 | import org.hibernate.type.descriptor.jdbc.ClobJdbcType; |
77 | 79 | import org.hibernate.type.descriptor.jdbc.ObjectNullAsBinaryTypeJdbcType; |
78 | 80 | import org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry; |
|
85 | 87 | import jakarta.persistence.TemporalType; |
86 | 88 |
|
87 | 89 | import static org.hibernate.exception.spi.TemplatedViolatedConstraintNameExtractor.extractUsingTemplate; |
| 90 | +import static org.hibernate.query.sqm.produce.function.FunctionParameterType.STRING; |
88 | 91 | import static org.hibernate.type.SqlTypes.BIGINT; |
89 | 92 | import static org.hibernate.type.SqlTypes.BINARY; |
90 | 93 | import static org.hibernate.type.SqlTypes.FLOAT; |
@@ -315,6 +318,20 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio |
315 | 318 |
|
316 | 319 | functionContributions.getFunctionRegistry().register( "least", new CaseLeastGreatestEmulation( true ) ); |
317 | 320 | functionContributions.getFunctionRegistry().register( "greatest", new CaseLeastGreatestEmulation( false ) ); |
| 321 | + functionContributions.getFunctionRegistry().namedDescriptorBuilder( "matches" ) |
| 322 | + .setInvariantType( functionContributions.getTypeConfiguration() |
| 323 | + .getBasicTypeRegistry() |
| 324 | + .resolve( StandardBasicTypes.STRING ) |
| 325 | + ) |
| 326 | + .setExactArgumentCount( 2 ) |
| 327 | + .setArgumentTypeResolver( |
| 328 | + StandardFunctionArgumentTypeResolvers.impliedOrInvariant( |
| 329 | + functionContributions.getTypeConfiguration(), |
| 330 | + STRING |
| 331 | + ) |
| 332 | + ) |
| 333 | + .setArgumentListSignature( "(STRING string, STRING pattern)" ) |
| 334 | + .register(); |
318 | 335 | if ( supportsWindowFunctions() ) { |
319 | 336 | functionFactory.windowFunctions(); |
320 | 337 | } |
|
0 commit comments