Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
import org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo;
import org.hibernate.internal.util.StringHelper;
import org.hibernate.internal.util.config.ConfigurationHelper;
import org.jboss.logging.Logger;

import static org.hibernate.cfg.DialectSpecificSettings.HANA_MAX_LOB_PREFETCH_SIZE;
import static org.hibernate.internal.CoreMessageLogger.CORE_LOGGER;

/**
* Utility class that extracts some initial configuration from the database for {@link HANALegacyDialect}.
Expand Down Expand Up @@ -60,9 +60,8 @@ public static HANALegacyServerConfiguration fromDialectResolutionInfo(DialectRes
}
catch (SQLException e) {
// Ignore
CORE_LOGGER.debug(
"An error occurred while trying to determine the database version.",
e );
Logger.getLogger( HANALegacyServerConfiguration.class )
.debug( "An error occurred while trying to determine the database version.", e );
}

if (databaseMajorVersion > 0 && databaseMajorVersion < 4) {
Expand All @@ -77,9 +76,8 @@ public static HANALegacyServerConfiguration fromDialectResolutionInfo(DialectRes
}
catch (SQLException e) {
// Ignore
CORE_LOGGER.debug(
"An error occurred while trying to determine the value of the HANA parameter indexserver.ini / session / max_lob_prefetch_size.",
e );
Logger.getLogger( HANALegacyServerConfiguration.class )
.debug( "An error occurred while trying to determine the value of the HANA parameter indexserver.ini / session / max_lob_prefetch_size.", e );
}
}
else {
Expand Down Expand Up @@ -115,7 +113,8 @@ public static DatabaseVersion determineDatabaseVersion(DialectResolutionInfo inf
}
catch (SQLException e) {
// Ignore
CORE_LOGGER.debug( "An error occurred while trying to determine the HANA Cloud version.", e );
Logger.getLogger( HANALegacyServerConfiguration.class )
.debug( "An error occurred while trying to determine the HANA Cloud version.", e );
}
}
return databaseVersion == null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,12 @@
import java.util.List;

import org.hibernate.boot.Metadata;
import org.hibernate.dialect.Dialect;
import org.hibernate.dialect.temptable.TemporaryTableColumn;
import org.hibernate.engine.jdbc.Size;
import org.hibernate.mapping.Column;
import org.hibernate.mapping.Constraint;
import org.hibernate.mapping.PrimaryKey;
import org.hibernate.mapping.Table;
import org.hibernate.mapping.UniqueKey;
import org.hibernate.mapping.UserDefinedObjectType;

import static java.lang.Math.log;
Expand Down Expand Up @@ -48,7 +46,7 @@ public List<Column> orderConstraintColumns(Constraint constraint, Metadata metad
// We try to find uniqueKey constraint containing only primary key.
// This uniqueKey then orders primaryKey columns. Otherwise, order as usual.
if ( constraint instanceof PrimaryKey primaryKey ) {
final UniqueKey uniqueKey = primaryKey.getOrderingUniqueKey();
final var uniqueKey = primaryKey.getOrderingUniqueKey();
if ( uniqueKey != null ) {
return uniqueKey.getColumns();
}
Expand Down Expand Up @@ -77,7 +75,7 @@ protected ColumnComparator(Metadata metadata) {

@Override
public int compare(Column o1, Column o2) {
final Dialect dialect = metadata.getDatabase().getDialect();
final var dialect = metadata.getDatabase().getDialect();
final int physicalSizeInBytes1 = physicalSizeInBytes(
o1.getSqlTypeCode( metadata ),
o1.getColumnSize( dialect, metadata ),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,8 @@ public Namespace.Name getPhysicalImplicitNamespaceName() {
}

public Namespace locateNamespace(Identifier catalogName, Identifier schemaName) {
final Namespace.Name name = new Namespace.Name( catalogName, schemaName );
final Namespace namespace = namespaceMap.get( name );
final var name = new Namespace.Name( catalogName, schemaName );
final var namespace = namespaceMap.get( name );
return namespace == null ? makeNamespace( name ) : namespace;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public NameParts(Identifier catalogName, Identifier schemaName, Identifier objec
}

private static String toQualifiedText(Identifier catalogName, Identifier schemaName, Identifier objectName) {
final StringBuilder qualified = new StringBuilder();
final var qualified = new StringBuilder();
if ( catalogName != null ) {
qualified.append( catalogName ).append( '.' );
}
Expand Down Expand Up @@ -106,15 +106,9 @@ public NameParts parse(String text, Identifier defaultCatalog, Identifier defaul
throw new IllegalIdentifierException( "Object name to parse must be specified, but found null" );
}

final int quoteCharCount = StringHelper.count( text, "`" );
final boolean wasQuotedInEntirety = quoteCharCount == 2 && text.startsWith( "`" ) && text.endsWith( "`" );

if ( wasQuotedInEntirety ) {
return new NameParts(
defaultCatalog,
defaultSchema,
Identifier.toIdentifier( unquote( text ), true )
);
if ( isQuotedInEntirety( text ) ) {
return new NameParts( defaultCatalog, defaultSchema,
Identifier.toIdentifier( unquote( text ), true ) );
}

String catalogName = null;
Expand Down Expand Up @@ -171,12 +165,18 @@ else if ( defaultCatalog != null ) {
}

return new NameParts(
Identifier.toIdentifier( catalogName, wasQuotedInEntirety||catalogWasQuoted ),
Identifier.toIdentifier( schemaName, wasQuotedInEntirety||schemaWasQuoted ),
Identifier.toIdentifier( name, wasQuotedInEntirety||nameWasQuoted )
Identifier.toIdentifier( catalogName, catalogWasQuoted ),
Identifier.toIdentifier( schemaName, schemaWasQuoted ),
Identifier.toIdentifier( name, nameWasQuoted )
);
}

private static boolean isQuotedInEntirety(String text) {
return StringHelper.count( text, "`" ) == 2
&& text.startsWith( "`" )
&& text.endsWith( "`" );
}

private static String unquote(String text) {
return text.substring( 1, text.length() - 1 );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,7 @@ public Sequence(
int incrementSize,
String options) {
this.contributor = contributor;
this.name = new QualifiedSequenceName(
catalogName,
schemaName,
sequenceName
);
this.name = new QualifiedSequenceName( catalogName, schemaName, sequenceName );
this.exportIdentifier = name.render();
this.initialValue = initialValue;
this.incrementSize = incrementSize;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
import java.util.Set;

import org.hibernate.boot.model.naming.Identifier;
import org.hibernate.internal.util.StringHelper;

import static org.hibernate.internal.util.StringHelper.replace;

/**
* A simple implementation of {@link AbstractAuxiliaryDatabaseObject} in which the
Expand Down Expand Up @@ -144,10 +145,20 @@ protected String getSchemaName() {
}

private String injectCatalogAndSchema(String ddlString, SqlStringGenerationContext context) {
Identifier defaultedCatalogName = context.catalogWithDefault( catalogName == null ? null : context.toIdentifier( catalogName ) );
Identifier defaultedSchemaName = context.schemaWithDefault( schemaName == null ? null : context.toIdentifier( schemaName ) );
String rtn = StringHelper.replace( ddlString, CATALOG_NAME_PLACEHOLDER, defaultedCatalogName == null ? "" : defaultedCatalogName.getText() );
rtn = StringHelper.replace( rtn, SCHEMA_NAME_PLACEHOLDER, defaultedSchemaName == null ? "" : defaultedSchemaName.getText() );
return rtn;
final Identifier defaultedCatalogName =
context.catalogWithDefault( catalogName == null ? null
: context.toIdentifier( catalogName ) );
final Identifier defaultedSchemaName =
context.schemaWithDefault( schemaName == null ? null
: context.toIdentifier( schemaName ) );
String result =
replace( ddlString,
CATALOG_NAME_PLACEHOLDER,
defaultedCatalogName == null ? "" : defaultedCatalogName.getText() );
result =
replace( result,
SCHEMA_NAME_PLACEHOLDER,
defaultedSchemaName == null ? "" : defaultedSchemaName.getText() );
return result;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.hibernate.boot.model.relational.QualifiedTableName;
import org.hibernate.boot.model.relational.SqlStringGenerationContext;
import org.hibernate.cfg.AvailableSettings;
import org.hibernate.cfg.MappingSettings;
import org.hibernate.dialect.Dialect;
import org.hibernate.engine.jdbc.env.spi.IdentifierHelper;
import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
Expand All @@ -33,8 +34,8 @@ public static SqlStringGenerationContext fromConfigurationMap(
JdbcEnvironment jdbcEnvironment,
Database database,
Map<String, Object> configurationMap) {
String defaultCatalog = (String) configurationMap.get( AvailableSettings.DEFAULT_CATALOG );
String defaultSchema = (String) configurationMap.get( AvailableSettings.DEFAULT_SCHEMA );
final String defaultCatalog = (String) configurationMap.get( MappingSettings.DEFAULT_CATALOG );
final String defaultSchema = (String) configurationMap.get( MappingSettings.DEFAULT_SCHEMA );
return create( jdbcEnvironment, database, defaultCatalog, defaultSchema, false );
}

Expand All @@ -48,8 +49,8 @@ public static SqlStringGenerationContext fromConfigurationMapForMigration(
JdbcEnvironment jdbcEnvironment,
Database database,
Map<String, Object> configurationMap) {
String defaultCatalog = (String) configurationMap.get( AvailableSettings.DEFAULT_CATALOG );
String defaultSchema = (String) configurationMap.get( AvailableSettings.DEFAULT_SCHEMA );
final String defaultCatalog = (String) configurationMap.get( MappingSettings.DEFAULT_CATALOG );
final String defaultSchema = (String) configurationMap.get( MappingSettings.DEFAULT_SCHEMA );
return create( jdbcEnvironment, database, defaultCatalog, defaultSchema, true );
}

Expand All @@ -74,27 +75,34 @@ private static SqlStringGenerationContext create(
String defaultCatalog,
String defaultSchema,
boolean forMigration) {
final Namespace.Name implicitNamespaceName = database.getPhysicalImplicitNamespaceName();
final IdentifierHelper identifierHelper = jdbcEnvironment.getIdentifierHelper();
final NameQualifierSupport nameQualifierSupport = jdbcEnvironment.getNameQualifierSupport();

Identifier actualDefaultCatalog = null;
if ( nameQualifierSupport.supportsCatalogs() ) {
actualDefaultCatalog = identifierHelper.toIdentifier( defaultCatalog );
if ( actualDefaultCatalog == null ) {
actualDefaultCatalog = implicitNamespaceName.catalog();
}
}
final var implicitNamespaceName = database.getPhysicalImplicitNamespaceName();
final var identifierHelper = jdbcEnvironment.getIdentifierHelper();
final var nameQualifierSupport = jdbcEnvironment.getNameQualifierSupport();
final Identifier actualDefaultCatalog =
actualDefaultCatalog( defaultCatalog, nameQualifierSupport, identifierHelper, implicitNamespaceName );
final Identifier actualDefaultSchema =
actualDefaultSchema( defaultSchema, nameQualifierSupport, identifierHelper, implicitNamespaceName );
return new SqlStringGenerationContextImpl( jdbcEnvironment, actualDefaultCatalog, actualDefaultSchema, forMigration );
}

Identifier actualDefaultSchema = null;
private static Identifier actualDefaultSchema(String defaultSchema, NameQualifierSupport nameQualifierSupport, IdentifierHelper identifierHelper, Namespace.Name implicitNamespaceName) {
if ( nameQualifierSupport.supportsSchemas() ) {
actualDefaultSchema = identifierHelper.toIdentifier( defaultSchema );
if ( defaultSchema == null ) {
actualDefaultSchema = implicitNamespaceName.schema();
}
Identifier actualDefaultSchema = identifierHelper.toIdentifier( defaultSchema );
return actualDefaultSchema == null ? implicitNamespaceName.schema() : actualDefaultSchema;
}
else {
return null;
}
}

return new SqlStringGenerationContextImpl( jdbcEnvironment, actualDefaultCatalog, actualDefaultSchema, forMigration );
private static Identifier actualDefaultCatalog(String defaultCatalog, NameQualifierSupport nameQualifierSupport, IdentifierHelper identifierHelper, Namespace.Name implicitNamespaceName) {
if ( nameQualifierSupport.supportsCatalogs() ) {
final Identifier actualDefaultCatalog = identifierHelper.toIdentifier( defaultCatalog );
return actualDefaultCatalog == null ? implicitNamespaceName.catalog() : actualDefaultCatalog;
}
else {
return null;
}
}

public static SqlStringGenerationContext forTests(JdbcEnvironment jdbcEnvironment) {
Expand Down Expand Up @@ -123,12 +131,12 @@ private SqlStringGenerationContextImpl(
Identifier defaultCatalog,
Identifier defaultSchema,
boolean migration) {
this.dialect = jdbcEnvironment.getDialect();
this.identifierHelper = jdbcEnvironment.getIdentifierHelper();
this.qualifiedObjectNameFormatter = jdbcEnvironment.getQualifiedObjectNameFormatter();
this.defaultCatalog = defaultCatalog;
this.defaultSchema = defaultSchema;
this.migration = migration;
dialect = jdbcEnvironment.getDialect();
identifierHelper = jdbcEnvironment.getIdentifierHelper();
qualifiedObjectNameFormatter = jdbcEnvironment.getQualifiedObjectNameFormatter();
}

@Override
Expand All @@ -138,7 +146,9 @@ public Dialect getDialect() {

@Override
public Identifier toIdentifier(String text) {
return identifierHelper != null ? identifierHelper.toIdentifier( text ) : Identifier.toIdentifier( text );
return identifierHelper != null
? identifierHelper.toIdentifier( text )
: Identifier.toIdentifier( text );
}

@Override
Expand Down Expand Up @@ -168,16 +178,21 @@ public String format(QualifiedName qualifiedName) {

@Override
public String formatWithoutCatalog(QualifiedSequenceName qualifiedName) {
QualifiedSequenceName nameToFormat;
return qualifiedObjectNameFormatter.format( nameToFormat( qualifiedName ), dialect );
}

private QualifiedSequenceName nameToFormat(QualifiedSequenceName qualifiedName) {
if ( qualifiedName.getCatalogName() != null
|| qualifiedName.getSchemaName() == null && defaultSchema != null ) {
nameToFormat = new QualifiedSequenceName( null,
schemaWithDefault( qualifiedName.getSchemaName() ), qualifiedName.getSequenceName() );
return new QualifiedSequenceName(
null,
schemaWithDefault( qualifiedName.getSchemaName() ),
qualifiedName.getSequenceName()
);
}
else {
nameToFormat = qualifiedName;
return qualifiedName;
}
return qualifiedObjectNameFormatter.format( nameToFormat, dialect );
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
@Internal
public interface BytecodeEnhancementLogging extends BasicLogger {
String LOGGER_NAME = SubSystemLogging.BASE + ".bytecode.enhancement";
BytecodeEnhancementLogging LOGGER = Logger.getMessageLogger( MethodHandles.lookup(), BytecodeEnhancementLogging.class, LOGGER_NAME );
BytecodeEnhancementLogging ENHANCEMENT_LOGGER = Logger.getMessageLogger( MethodHandles.lookup(), BytecodeEnhancementLogging.class, LOGGER_NAME );

// ---- trace messages ----
@LogMessage(level = TRACE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import org.hibernate.bytecode.enhance.internal.bytebuddy.EnhancerImpl.AnnotatedFieldDescription;
import org.hibernate.bytecode.enhance.spi.EnhancementException;
import org.hibernate.bytecode.enhance.spi.EnhancerConstants;
import org.hibernate.bytecode.enhance.internal.BytecodeEnhancementLogging;

import net.bytebuddy.asm.Advice;
import net.bytebuddy.description.annotation.AnnotationDescription;
Expand All @@ -37,6 +36,8 @@
import net.bytebuddy.jar.asm.Opcodes;
import net.bytebuddy.jar.asm.Type;

import static org.hibernate.bytecode.enhance.internal.BytecodeEnhancementLogging.ENHANCEMENT_LOGGER;

final class BiDirectionalAssociationHandler implements Implementation {

static Implementation wrap(
Expand All @@ -61,8 +62,8 @@ static Implementation wrap(
bidirectionalAttributeName = mappedBy;
}
if ( bidirectionalAttributeName == null || bidirectionalAttributeName.isEmpty() ) {
if ( BytecodeEnhancementLogging.LOGGER.isInfoEnabled() ) {
BytecodeEnhancementLogging.LOGGER.bidirectionalNotManagedCouldNotFindTargetField(
if ( ENHANCEMENT_LOGGER.isInfoEnabled() ) {
ENHANCEMENT_LOGGER.bidirectionalNotManagedCouldNotFindTargetField(
managedCtClass.getName(),
persistentField.getName(),
targetEntity.getCanonicalName()
Expand Down Expand Up @@ -116,8 +117,8 @@ static Implementation wrap(
if ( persistentField.hasAnnotation( ManyToMany.class ) ) {

if ( persistentField.getType().asErasure().isAssignableTo( Map.class ) || targetType.isAssignableTo( Map.class ) ) {
if ( BytecodeEnhancementLogging.LOGGER.isInfoEnabled() ) {
BytecodeEnhancementLogging.LOGGER.manyToManyInMapNotSupported(
if ( ENHANCEMENT_LOGGER.isInfoEnabled() ) {
ENHANCEMENT_LOGGER.manyToManyInMapNotSupported(
managedCtClass.getName(),
persistentField.getName()
);
Expand Down Expand Up @@ -157,8 +158,8 @@ else if ( mtm != null ) {
targetClass = mtm.getValue( new MethodDescription.ForLoadedMethod( ManyToMany.class.getDeclaredMethod( "targetEntity" ) ) );
}
else {
if ( BytecodeEnhancementLogging.LOGGER.isInfoEnabled() ) {
BytecodeEnhancementLogging.LOGGER.bidirectionalNotManagedCouldNotFindTargetType(
if ( ENHANCEMENT_LOGGER.isInfoEnabled() ) {
ENHANCEMENT_LOGGER.bidirectionalNotManagedCouldNotFindTargetType(
managedCtClass.getName(),
persistentField.getName()
);
Expand Down Expand Up @@ -242,8 +243,8 @@ private static String getMappedByManyToMany(AnnotatedFieldDescription target, Ty
if ( context.isPersistentField( annotatedF )
&& target.getName().equals( getMappedBy( annotatedF, entityType( annotatedF.getType() ), context ) )
&& target.getDeclaringType().asErasure().isAssignableTo( entityType( annotatedF.getType() ) ) ) {
if ( BytecodeEnhancementLogging.LOGGER.isTraceEnabled() ) {
BytecodeEnhancementLogging.LOGGER.tracef(
if ( ENHANCEMENT_LOGGER.isTraceEnabled() ) {
ENHANCEMENT_LOGGER.tracef(
"mappedBy association for field [%s#%s] is [%s#%s]",
target.getDeclaringType().asErasure().getName(),
target.getName(),
Expand Down
Loading