4545import org .hibernate .tool .schema .extract .internal .SequenceInformationExtractorMariaDBDatabaseImpl ;
4646import org .hibernate .tool .schema .extract .spi .SequenceInformationExtractor ;
4747import org .hibernate .type .SqlTypes ;
48- import org .hibernate .type .StandardBasicTypes ;
4948import org .hibernate .type .descriptor .jdbc .JdbcType ;
5049import org .hibernate .type .descriptor .jdbc .VarcharUUIDJdbcType ;
5150import org .hibernate .type .descriptor .jdbc .spi .JdbcTypeRegistry ;
6059import static org .hibernate .exception .spi .TemplatedViolatedConstraintNameExtractor .extractUsingTemplate ;
6160import static org .hibernate .internal .util .JdbcExceptionHelper .extractSqlState ;
6261import static org .hibernate .query .sqm .produce .function .FunctionParameterType .NUMERIC ;
62+ import static org .hibernate .query .sqm .produce .function .FunctionParameterType .STRING ;
63+ import static org .hibernate .query .sqm .produce .function .StandardFunctionReturnTypeResolvers .invariant ;
6364import static org .hibernate .type .SqlTypes .GEOMETRY ;
6465import static org .hibernate .type .SqlTypes .OTHER ;
6566import static org .hibernate .type .SqlTypes .UUID ;
6667import static org .hibernate .type .SqlTypes .VARBINARY ;
68+ import static org .hibernate .type .StandardBasicTypes .BOOLEAN ;
69+ import static org .hibernate .type .StandardBasicTypes .DOUBLE ;
6770
6871/**
6972 * A {@linkplain Dialect SQL dialect} for MariaDB 10.6 and above.
@@ -121,15 +124,15 @@ public NationalizationSupport getNationalizationSupport() {
121124 public void initializeFunctionRegistry (FunctionContributions functionContributions ) {
122125 super .initializeFunctionRegistry ( functionContributions );
123126
127+ final var functionRegistry = functionContributions .getFunctionRegistry ();
124128 final var commonFunctionFactory = new CommonFunctionFactory ( functionContributions );
129+ final var basicTypeRegistry = functionContributions .getTypeConfiguration ().getBasicTypeRegistry ();
125130
126131 commonFunctionFactory .windowFunctions ();
127132 commonFunctionFactory .hypotheticalOrderedSetAggregates_windowEmulation ();
128- functionContributions . getFunctionRegistry () .registerNamed (
133+ functionRegistry .registerNamed (
129134 "json_valid" ,
130- functionContributions .getTypeConfiguration ()
131- .getBasicTypeRegistry ()
132- .resolve ( StandardBasicTypes .BOOLEAN )
135+ basicTypeRegistry .resolve ( BOOLEAN )
133136 );
134137 commonFunctionFactory .jsonValue_mariadb ();
135138 commonFunctionFactory .jsonArray_mariadb ();
@@ -141,11 +144,16 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
141144 commonFunctionFactory .jsonTable_mysql ();
142145
143146 commonFunctionFactory .inverseDistributionOrderedSetAggregates_windowEmulation ();
144- functionContributions . getFunctionRegistry () .patternDescriptorBuilder ( "median" , "median(?1) over ()" )
145- .setInvariantType ( functionContributions . getTypeConfiguration (). getBasicTypeRegistry (). resolve ( StandardBasicTypes . DOUBLE ) )
147+ functionRegistry .patternDescriptorBuilder ( "median" , "median(?1) over ()" )
148+ .setInvariantType ( basicTypeRegistry . resolve ( DOUBLE ) )
146149 .setExactArgumentCount ( 1 )
147150 .setParameterTypes (NUMERIC )
148151 .register ();
152+
153+ functionRegistry .patternDescriptorBuilder ( "regexp_like" , "?1 regexp ?2" )
154+ .setParameterTypes ( STRING , STRING )
155+ .setReturnTypeResolver ( invariant ( basicTypeRegistry .resolve ( BOOLEAN ) ) )
156+ .register ();
149157 }
150158
151159 @ Override
@@ -332,11 +340,6 @@ public IdentifierHelper buildIdentifierHelper(IdentifierHelperBuilder builder, D
332340 return super .buildIdentifierHelper ( builder , metadata );
333341 }
334342
335- @ Override
336- public String getDual () {
337- return "dual" ;
338- }
339-
340343 public ViolatedConstraintNameExtractor getViolatedConstraintNameExtractor () {
341344 return EXTRACTOR ;
342345 }
0 commit comments