Revert "Ensure TypeContributor registered JdbcType has precedence over fallback and preferred types"

This reverts commit c6ecdb78f4.
This commit is contained in:
Steve Ebersole 2022-12-15 13:14:28 -06:00
parent 2e0b4b3558
commit 490b89becf
1 changed files with 16 additions and 25 deletions

View File

@ -391,11 +391,6 @@ public class MetadataBuildingProcess {
// add Dialect contributed types
final Dialect dialect = options.getServiceRegistry().getService( JdbcServices.class ).getDialect();
dialect.contributeTypes( typeContributions, options.getServiceRegistry() );
// Capture the dialect configured JdbcTypes so that we can detect if a TypeContributor overwrote them,
// which has precedence over the fallback and preferred type registrations
final JdbcType dialectUuidDescriptor = jdbcTypeRegistry.findDescriptor( SqlTypes.UUID );
final JdbcType dialectArrayDescriptor = jdbcTypeRegistry.findDescriptor( SqlTypes.ARRAY );
final JdbcType dialectIntervalDescriptor = jdbcTypeRegistry.findDescriptor( SqlTypes.INTERVAL_SECOND );
// add TypeContributor contributed types.
for ( TypeContributor contributor : classLoaderService.loadJavaServices( TypeContributor.class ) ) {
@ -405,12 +400,7 @@ public class MetadataBuildingProcess {
// add fallback type descriptors
final int preferredSqlTypeCodeForUuid = getPreferredSqlTypeCodeForUuid( serviceRegistry );
if ( preferredSqlTypeCodeForUuid != SqlTypes.UUID ) {
adaptToPreferredSqlTypeCode(
jdbcTypeRegistry,
dialectUuidDescriptor,
SqlTypes.UUID,
preferredSqlTypeCodeForUuid
);
adaptToPreferredSqlTypeCode( jdbcTypeRegistry, SqlTypes.UUID, preferredSqlTypeCodeForUuid );
}
else {
addFallbackIfNecessary( jdbcTypeRegistry, SqlTypes.UUID, SqlTypes.BINARY );
@ -418,25 +408,15 @@ public class MetadataBuildingProcess {
final int preferredSqlTypeCodeForArray = getPreferredSqlTypeCodeForArray( serviceRegistry );
if ( preferredSqlTypeCodeForArray == SqlTypes.ARRAY ) {
adaptToPreferredSqlTypeCode( jdbcTypeRegistry, dialectArrayDescriptor, SqlTypes.ARRAY, SqlTypes.VARBINARY );
adaptToPreferredSqlTypeCode( jdbcTypeRegistry, null, SqlTypes.ARRAY, SqlTypes.VARBINARY );
}
else {
adaptToPreferredSqlTypeCode(
jdbcTypeRegistry,
dialectArrayDescriptor,
SqlTypes.ARRAY,
preferredSqlTypeCodeForArray
);
adaptToPreferredSqlTypeCode( jdbcTypeRegistry, SqlTypes.ARRAY, preferredSqlTypeCodeForArray );
}
final int preferredSqlTypeCodeForDuration = getPreferredSqlTypeCodeForDuration( serviceRegistry );
if ( preferredSqlTypeCodeForDuration != SqlTypes.INTERVAL_SECOND ) {
adaptToPreferredSqlTypeCode(
jdbcTypeRegistry,
dialectIntervalDescriptor,
SqlTypes.INTERVAL_SECOND,
preferredSqlTypeCodeForDuration
);
adaptToPreferredSqlTypeCode( jdbcTypeRegistry, SqlTypes.INTERVAL_SECOND, preferredSqlTypeCodeForDuration );
}
else {
addFallbackIfNecessary( jdbcTypeRegistry, SqlTypes.INTERVAL_SECOND, SqlTypes.NUMERIC );
@ -491,6 +471,18 @@ public class MetadataBuildingProcess {
}
}
private static void adaptToPreferredSqlTypeCode(
JdbcTypeRegistry jdbcTypeRegistry,
int defaultSqlTypeCode,
int preferredSqlTypeCode) {
adaptToPreferredSqlTypeCode(
jdbcTypeRegistry,
jdbcTypeRegistry.findDescriptor( defaultSqlTypeCode ),
defaultSqlTypeCode,
preferredSqlTypeCode
);
}
private static void adaptToPreferredSqlTypeCode(
JdbcTypeRegistry jdbcTypeRegistry,
JdbcType dialectUuidDescriptor,
@ -502,7 +494,6 @@ public class MetadataBuildingProcess {
jdbcTypeRegistry.getDescriptor( preferredSqlTypeCode )
);
}
// else warning?
}
private static void adaptToPreferredSqlTypeCodeForInstant(