diff --git a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java
index 0a6da85029..c0c50c5792 100644
--- a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java
+++ b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java
@@ -203,6 +203,7 @@
import static org.hibernate.boot.jaxb.hbm.transform.HbmTransformationLogging.TRANSFORMATION_LOGGER;
import static org.hibernate.internal.util.StringHelper.isNotEmpty;
+import static org.hibernate.internal.util.StringHelper.nullIfEmpty;
/**
* Transforms {@code hbm.xml} {@linkplain JaxbHbmHibernateMapping JAXB} bindings into
@@ -1205,7 +1206,7 @@ else if ( !source.getColumnOrFormula().isEmpty() ) {
}
}
}
- else if ( StringHelper.isNotEmpty( tableName ) ) {
+ else if ( isNotEmpty( tableName ) ) {
// this is the case of transforming a where the property did not specify columns or formula.
// we need to create a column still to pass along the secondary table name
final TargetColumnAdapter column = target.makeColumnAdapter( columnDefaults );
@@ -1590,7 +1591,7 @@ public Boolean isUpdateable() {
}
private JaxbUserTypeImpl interpretBasicType(String typeName, JaxbHbmConfigParameterContainer typeLocalParams, JaxbHbmTypeDefinitionType typeDef) {
- assert StringHelper.isNotEmpty( typeName );
+ assert isNotEmpty( typeName );
final JaxbUserTypeImpl typeNode = new JaxbUserTypeImpl();
@@ -1624,7 +1625,7 @@ private JaxbEmbeddableImpl applyEmbeddable(
JaxbHbmCompositeAttributeType hbmComponent,
ComponentTypeInfo componentTypeInfo) {
final String embeddableClassName = componentTypeInfo.getComponent().getComponentClassName();
- if ( StringHelper.isNotEmpty( embeddableClassName ) ) {
+ if ( isNotEmpty( embeddableClassName ) ) {
final JaxbEmbeddableImpl existing = jaxbEmbeddableByClassName.get( embeddableClassName );
if ( existing != null ) {
return existing;
@@ -1641,7 +1642,7 @@ private JaxbEmbeddableImpl applyEmbeddable(
);
mappingXmlBinding.getRoot().getEmbeddables().add( jaxbEmbeddable );
- if ( StringHelper.isNotEmpty( embeddableClassName ) ) {
+ if ( isNotEmpty( embeddableClassName ) ) {
jaxbEmbeddableByClassName.put( embeddableClassName, jaxbEmbeddable );
}
@@ -1668,7 +1669,7 @@ private JaxbEmbeddableImpl convertEmbeddable(
private int counter = 1;
private String determineEmbeddableName(String componentClassName, String attributeName) {
- if ( StringHelper.isNotEmpty( componentClassName ) ) {
+ if ( isNotEmpty( componentClassName ) ) {
return componentClassName;
}
return attributeName + "_" + counter++;
@@ -1692,7 +1693,7 @@ private void transferOneToOne(JaxbHbmOneToOneType hbmOneToOne, PropertyInfo prop
oneToOne.setOrphanRemoval( isOrphanRemoval( hbmOneToOne.getCascade() ) );
oneToOne.setForeignKey( new JaxbForeignKeyImpl() );
oneToOne.getForeignKey().setName( hbmOneToOne.getForeignKey() );
- if ( StringHelper.isNotEmpty( hbmOneToOne.getPropertyRef() ) ) {
+ if ( isNotEmpty( hbmOneToOne.getPropertyRef() ) ) {
oneToOne.setPropertyRef( new JaxbPropertyRefImpl() );
oneToOne.getPropertyRef().setName( hbmOneToOne.getPropertyRef() );
}
@@ -1736,7 +1737,7 @@ private JaxbManyToOneImpl transformManyToOne(JaxbHbmManyToOneType hbmNode, Prope
jaxbManyToOne.setAttributeAccessor( hbmNode.getAccess() );
jaxbManyToOne.setCascade( convertCascadeType( hbmNode.getCascade() ) );
- if ( StringHelper.isNotEmpty( hbmNode.getPropertyRef() ) ) {
+ if ( isNotEmpty( hbmNode.getPropertyRef() ) ) {
jaxbManyToOne.setPropertyRef( new JaxbPropertyRefImpl() );
jaxbManyToOne.getPropertyRef().setName( hbmNode.getPropertyRef() );
}
@@ -1905,7 +1906,7 @@ private void transferCollectionCommonInfo(PluralAttributeInfo source, JaxbPlural
target.setFetchMode( convert( source.getFetch() ) );
target.setFetch( convert( source.getLazy() ) );
- if ( StringHelper.isNotEmpty( source.getCollectionType() ) ) {
+ if ( isNotEmpty( source.getCollectionType() ) ) {
final JaxbCollectionUserTypeImpl jaxbCollectionUserType = new JaxbCollectionUserTypeImpl();
target.setCollectionType( jaxbCollectionUserType );
jaxbCollectionUserType.setType( source.getCollectionType() );
@@ -1913,7 +1914,7 @@ private void transferCollectionCommonInfo(PluralAttributeInfo source, JaxbPlural
if ( source instanceof JaxbHbmSetType set ) {
final String sort = set.getSort();
- if ( StringHelper.isNotEmpty( sort ) && !"unsorted".equals( sort ) ) {
+ if ( isNotEmpty( sort ) && !"unsorted".equals( sort ) ) {
target.setSort( sort );
}
target.setOrderBy( set.getOrderBy() );
@@ -1921,7 +1922,7 @@ private void transferCollectionCommonInfo(PluralAttributeInfo source, JaxbPlural
}
else if ( source instanceof JaxbHbmMapType map ) {
final String sort = map.getSort();
- if ( StringHelper.isNotEmpty( sort ) && !"unsorted".equals( sort ) ) {
+ if ( isNotEmpty( sort ) && !"unsorted".equals( sort ) ) {
target.setSort( sort );
}
target.setOrderBy( map.getOrderBy() );
@@ -2025,7 +2026,7 @@ else if ( source.getMapKey() != null ) {
return;
}
- if ( StringHelper.isNotEmpty( source.getMapKey().getNode() ) ) {
+ if ( isNotEmpty( source.getMapKey().getNode() ) ) {
handleUnsupported(
"Transformation of `node` attribute is not supported - %s",
origin()
@@ -2040,7 +2041,7 @@ else if ( source.getMapKey() != null ) {
jaxbMapKeyType.setValue( mapKeyType );
}
- if ( StringHelper.isNotEmpty( source.getMapKey().getColumnAttribute() ) ) {
+ if ( isNotEmpty( source.getMapKey().getColumnAttribute() ) ) {
final JaxbMapKeyColumnImpl mapKeyColumn = new JaxbMapKeyColumnImpl();
mapKeyColumn.setName( source.getMapKey().getColumnAttribute() );
target.setMapKeyColumn( mapKeyColumn );
@@ -2049,38 +2050,32 @@ else if ( source.getMapKey() != null ) {
}
private String resolveMapKeyType(JaxbHbmMapKeyBasicType mapKey) {
- if ( StringHelper.isNotEmpty( mapKey.getTypeAttribute() ) ) {
+ if ( isNotEmpty( mapKey.getTypeAttribute() ) ) {
return mapKey.getTypeAttribute();
}
-
- if ( mapKey.getType() != null ) {
- return StringHelper.nullIfEmpty( mapKey.getType().getName() );
+ else if ( mapKey.getType() != null ) {
+ return nullIfEmpty( mapKey.getType().getName() );
+ }
+ else {
+ return null;
}
-
- return null;
}
private Boolean invert(Boolean value) {
- return invert( value, null );
- }
-
- private Boolean invert(Boolean value, Boolean defaultValue) {
- if ( value == null ) {
- return defaultValue;
- }
- return !value;
+ return value == null ? null : !value;
}
private JaxbPluralFetchModeImpl convert(JaxbHbmFetchStyleWithSubselectEnum fetch) {
- if ( fetch != null ) {
+ if ( fetch == null ) {
+ return null;
+ }
+ else {
return switch ( fetch ) {
case SELECT -> JaxbPluralFetchModeImpl.SELECT;
case JOIN -> JaxbPluralFetchModeImpl.JOIN;
case SUBSELECT -> JaxbPluralFetchModeImpl.SUBSELECT;
};
}
-
- return null;
}
@@ -2181,7 +2176,7 @@ private void transferElementInfo(
final ComponentTypeInfo componentTypeInfo = transformationState.getEmbeddableInfoByRole().get( partRole );
target.setTarget( embeddableName );
- if ( StringHelper.isNotEmpty( embeddableClassName ) ) {
+ if ( isNotEmpty( embeddableClassName ) ) {
target.setTargetClass( embeddableClassName );
}
@@ -2217,7 +2212,7 @@ private void transferOneToManyInfo(
}
transferCollectionCommonInfo( hbmAttributeInfo, target );
- target.setTargetEntity( StringHelper.isNotEmpty( hbmOneToMany.getClazz() ) ? hbmOneToMany.getClazz() : hbmOneToMany.getEntityName() );
+ target.setTargetEntity( isNotEmpty( hbmOneToMany.getClazz() ) ? hbmOneToMany.getClazz() : hbmOneToMany.getEntityName() );
final Property bootModelProperty = propertyInfo.bootModelProperty();
final Collection bootModelValue = (Collection) bootModelProperty.getValue();
@@ -2291,7 +2286,7 @@ public void addFormula(String formula) {
target.getFilters().add( convert( hbmFilter ) );
}
- if ( StringHelper.isNotEmpty( hbmAttributeInfo.getWhere() ) ) {
+ if ( isNotEmpty( hbmAttributeInfo.getWhere() ) ) {
target.setSqlRestriction( hbmAttributeInfo.getWhere() );
}
if ( hbmAttributeInfo.getSqlInsert() != null ) {
@@ -2320,7 +2315,7 @@ private String resolveMappedBy(
PluralAttributeInfo hbmAttributeInfo,
Property bootModelProperty,
Collection bootModelValue) {
- if ( StringHelper.isNotEmpty( bootModelValue.getMappedByProperty() ) ) {
+ if ( isNotEmpty( bootModelValue.getMappedByProperty() ) ) {
return bootModelValue.getMappedByProperty();
}
@@ -2369,8 +2364,8 @@ private boolean matches(KeyValue collectionKey, List candidate) {
final Column collectionKeyColumn = (Column) collectionKeySelectable;
final Column candidateColumn = (Column) candidateSelectable;
- assert StringHelper.isNotEmpty( collectionKeyColumn.getCanonicalName() );
- assert StringHelper.isNotEmpty( candidateColumn.getCanonicalName() );
+ assert isNotEmpty( collectionKeyColumn.getCanonicalName() );
+ assert isNotEmpty( candidateColumn.getCanonicalName() );
if ( !collectionKeyColumn.getCanonicalName().equals( candidateColumn.getCanonicalName() ) ) {
return false;
}
@@ -2400,7 +2395,7 @@ private void transferManyToManyInfo(
if ( manyToMany.isEmbedXml() != null ) {
handleUnsupported( "`embed-xml` no longer supported" );
}
- if ( StringHelper.isNotEmpty( manyToMany.getNode() ) ) {
+ if ( isNotEmpty( manyToMany.getNode() ) ) {
handleUnsupported( "`node` no longer supported" );
}
@@ -2409,7 +2404,7 @@ private void transferManyToManyInfo(
final JaxbJoinTableImpl joinTable = new JaxbJoinTableImpl();
final String tableName = hbmCollection.getTable();
- if ( StringHelper.isNotEmpty( tableName ) ) {
+ if ( isNotEmpty( tableName ) ) {
joinTable.setName( tableName );
}
target.setJoinTable( joinTable );
@@ -2503,7 +2498,7 @@ public void addFormula(String formula) {
);
transferCollectionCommonInfo( hbmCollection, target );
- target.setTargetEntity( StringHelper.isNotEmpty( manyToMany.getClazz() ) ? manyToMany.getClazz() : manyToMany.getEntityName() );
+ target.setTargetEntity( isNotEmpty( manyToMany.getClazz() ) ? manyToMany.getClazz() : manyToMany.getEntityName() );
if ( manyToMany.getNotFound() == JaxbHbmNotFoundEnum.IGNORE ) {
target.setNotFound( NotFoundAction.IGNORE );
@@ -2513,7 +2508,7 @@ public void addFormula(String formula) {
target.getFilters().add( convert( hbmFilter ) );
}
- if ( StringHelper.isNotEmpty( hbmCollection.getWhere() ) ) {
+ if ( isNotEmpty( hbmCollection.getWhere() ) ) {
target.setSqlRestriction( hbmCollection.getWhere() );
}
if ( hbmCollection.getSqlInsert() != null ) {
@@ -2664,7 +2659,7 @@ private JaxbEmbeddableImpl transformEmbeddedIdEmbeddable(
EntityTypeInfo bootEntityInfo,
Property idProperty) {
final String embeddableClassName = hbmCompositeId.getClazz();
- if ( StringHelper.isNotEmpty( embeddableClassName ) ) {
+ if ( isNotEmpty( embeddableClassName ) ) {
final JaxbEmbeddableImpl existing = jaxbEmbeddableByClassName.get( embeddableClassName );
if ( existing != null ) {
return existing;
diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java
index 8bd332ea2f..89c53310aa 100644
--- a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java
+++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java
@@ -9,7 +9,6 @@
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
@@ -18,7 +17,6 @@
import java.util.StringTokenizer;
import org.hibernate.JDBCException;
-import org.hibernate.boot.model.naming.DatabaseIdentifier;
import org.hibernate.boot.model.naming.Identifier;
import org.hibernate.boot.model.relational.QualifiedTableName;
import org.hibernate.cfg.AvailableSettings;
@@ -31,8 +29,6 @@
import org.hibernate.engine.jdbc.env.spi.NameQualifierSupport;
import org.hibernate.internal.CoreLogging;
import org.hibernate.internal.CoreMessageLogger;
-import org.hibernate.internal.util.StringHelper;
-import org.hibernate.internal.util.config.ConfigurationHelper;
import org.hibernate.tool.schema.extract.spi.ColumnInformation;
import org.hibernate.tool.schema.extract.spi.ExtractionContext;
import org.hibernate.tool.schema.extract.spi.ForeignKeyInformation;
@@ -44,6 +40,12 @@
import org.hibernate.tool.schema.extract.spi.TableInformation;
import org.hibernate.tool.schema.spi.SchemaManagementException;
+import static java.util.Collections.addAll;
+import static org.hibernate.boot.model.naming.DatabaseIdentifier.toIdentifier;
+import static org.hibernate.internal.util.StringHelper.isBlank;
+import static org.hibernate.internal.util.StringHelper.splitTrimmingTokens;
+import static org.hibernate.internal.util.config.ConfigurationHelper.getBoolean;
+
public abstract class AbstractInformationExtractorImpl implements InformationExtractor {
private static final CoreMessageLogger LOG = CoreLogging.messageLogger( AbstractInformationExtractorImpl.class );
@@ -65,7 +67,7 @@ public abstract class AbstractInformationExtractorImpl implements InformationExt
public AbstractInformationExtractorImpl(ExtractionContext extractionContext) {
this.extractionContext = extractionContext;
- ConfigurationService configService =
+ final ConfigurationService configService =
extractionContext.getServiceRegistry().requireService( ConfigurationService.class );
useJdbcMetadataDefaultsSetting = configService.getSetting(
@@ -84,15 +86,8 @@ public AbstractInformationExtractorImpl(ExtractionContext extractionContext) {
)
);
final List physicalTableTypesList = new ArrayList<>();
- if ( ! StringHelper.isBlank( extraPhysicalTableTypesConfig ) ) {
- Collections.addAll(
- physicalTableTypesList,
- StringHelper.splitTrimmingTokens(
- ",;",
- extraPhysicalTableTypesConfig,
- false
- )
- );
+ if ( !isBlank( extraPhysicalTableTypesConfig ) ) {
+ addAll( physicalTableTypesList, splitTrimmingTokens( ",;", extraPhysicalTableTypesConfig, false ) );
}
final Dialect dialect = extractionContext.getJdbcEnvironment().getDialect();
dialect.augmentPhysicalTableTypes( physicalTableTypesList );
@@ -101,34 +96,38 @@ public AbstractInformationExtractorImpl(ExtractionContext extractionContext) {
final List tableTypesList = new ArrayList<>();
tableTypesList.add( "TABLE" );
tableTypesList.add( "VIEW" );
- if ( ConfigurationHelper.getBoolean( AvailableSettings.ENABLE_SYNONYMS, configService.getSettings() ) ) {
+ if ( getBoolean( AvailableSettings.ENABLE_SYNONYMS, configService.getSettings() ) ) {
if ( dialect instanceof DB2Dialect ) {
tableTypesList.add( "ALIAS" );
}
tableTypesList.add( "SYNONYM" );
}
- Collections.addAll( tableTypesList, extraPhysicalTableTypes );
+ addAll( tableTypesList, extraPhysicalTableTypes );
dialect.augmentRecognizedTableTypes( tableTypesList );
this.tableTypes = tableTypesList.toArray( new String[0] );
}
protected IdentifierHelper identifierHelper() {
- return extractionContext.getJdbcEnvironment().getIdentifierHelper();
+ return getIdentifierHelper();
}
protected JDBCException convertSQLException(SQLException sqlException, String message) {
- return extractionContext.getJdbcEnvironment().getSqlExceptionHelper().convert( sqlException, message );
+ return getJdbcEnvironment().getSqlExceptionHelper().convert( sqlException, message );
}
protected String toMetaDataObjectName(Identifier identifier) {
- return extractionContext.getJdbcEnvironment().getIdentifierHelper().toMetaDataObjectName( identifier );
+ return getIdentifierHelper().toMetaDataObjectName( identifier );
}
protected ExtractionContext getExtractionContext() {
return extractionContext;
}
+ protected JdbcEnvironment getJdbcEnvironment() {
+ return extractionContext.getJdbcEnvironment();
+ }
+
// The following methods purposely return the column labels that are defined by
// DatabaseMetaData methods that return a ResultSet. Subclasses that do not rely
// on DatabaseMetaData may override these methods to use different column labels.
@@ -222,20 +221,16 @@ protected String getResultSetForeignKeyColumnNameLabel() {
public boolean catalogExists(Identifier catalog) {
try {
return processCatalogsResultSet( resultSet -> {
-
while ( resultSet.next() ) {
final String existingCatalogName = resultSet.getString( getResultSetCatalogLabel() );
-
// todo : hmm.. case sensitive or insensitive match...
// for now, match any case...
-
if ( catalog.getText().equalsIgnoreCase( existingCatalogName ) ) {
return true;
}
}
-
return false;
- });
+ } );
}
catch (SQLException sqlException) {
throw convertSQLException( sqlException, "Unable to query ResultSet for existing catalogs" );
@@ -313,13 +308,17 @@ public boolean schemaExists(Identifier catalog, Identifier schema) {
}
}
+ private IdentifierHelper getIdentifierHelper() {
+ return getJdbcEnvironment().getIdentifierHelper();
+ }
+
protected String determineCatalogFilter(Identifier catalog) {
Identifier identifierToUse = catalog;
if ( identifierToUse == null ) {
identifierToUse = extractionContext.getDefaultCatalog();
}
- return extractionContext.getJdbcEnvironment().getIdentifierHelper().toMetaDataCatalogName( identifierToUse );
+ return getIdentifierHelper().toMetaDataCatalogName( identifierToUse );
}
protected String determineSchemaFilter(Identifier schema) {
@@ -328,16 +327,14 @@ protected String determineSchemaFilter(Identifier schema) {
identifierToUse = extractionContext.getDefaultSchema();
}
- return extractionContext.getJdbcEnvironment().getIdentifierHelper().toMetaDataSchemaName( identifierToUse );
+ return getIdentifierHelper().toMetaDataSchemaName( identifierToUse );
}
private TableInformation extractTableInformation(ResultSet resultSet) throws SQLException {
- final QualifiedTableName tableName = extractTableName( resultSet );
-
return new TableInformationImpl(
this,
identifierHelper(),
- tableName,
+ extractTableName( resultSet ),
isPhysicalTableType( resultSet.getString( getResultSetTableTypeLabel() ) ),
resultSet.getString( getResultSetRemarksLabel() )
);
@@ -357,33 +354,24 @@ public TableInformation getTable(Identifier catalog, Identifier schema, Identifi
// 2) look in default namespace
// 3) look in all namespaces - multiple hits is considered an error
- TableInformation tableInfo;
-
// 1) look in current namespace
- final JdbcEnvironment jdbcEnvironment = extractionContext.getJdbcEnvironment();
- final Identifier currentSchema = getCurrentSchema( jdbcEnvironment );
- final Identifier currentCatalog = getCurrentCatalog( jdbcEnvironment );
- if ( currentCatalog != null
- || currentSchema != null ) {
- tableInfo = locateTableInNamespace(
- currentCatalog,
- currentSchema,
- tableName
- );
-
+ final Identifier currentSchema = getCurrentSchema();
+ final Identifier currentCatalog = getCurrentCatalog();
+ if ( currentCatalog != null || currentSchema != null ) {
+ final TableInformation tableInfo =
+ locateTableInNamespace( currentCatalog, currentSchema, tableName );
if ( tableInfo != null ) {
return tableInfo;
}
}
// 2) look in default namespace
- if ( extractionContext.getDefaultCatalog() != null || extractionContext.getDefaultSchema() != null ) {
- tableInfo = locateTableInNamespace(
- extractionContext.getDefaultCatalog(),
- extractionContext.getDefaultSchema(),
- tableName
- );
-
+ final Identifier defaultCatalog = extractionContext.getDefaultCatalog();
+ final Identifier defaultSchema = extractionContext.getDefaultSchema();
+ if ( defaultCatalog != null
+ || defaultSchema != null ) {
+ final TableInformation tableInfo =
+ locateTableInNamespace( defaultCatalog, defaultSchema, tableName );
if ( tableInfo != null ) {
return tableInfo;
}
@@ -391,19 +379,12 @@ public TableInformation getTable(Identifier catalog, Identifier schema, Identifi
// 3) look in all namespaces
try {
- final String tableNameFilter = toMetaDataObjectName( tableName );
-
return processTableResultSet(
null,
null,
- tableNameFilter,
+ toMetaDataObjectName( tableName ),
tableTypes,
- resultSet -> extractTableInformation(
- null,
- null,
- tableName,
- resultSet
- )
+ resultSet -> extractTableInformation( null, null, tableName, resultSet )
);
}
catch (SQLException sqlException) {
@@ -412,21 +393,20 @@ public TableInformation getTable(Identifier catalog, Identifier schema, Identifi
}
}
- private Identifier getCurrentSchema(JdbcEnvironment jdbcEnvironment) {
- if ( jdbcEnvironment.getNameQualifierSupport() == NameQualifierSupport.CATALOG ) {
+ private Identifier getCurrentSchema() {
+ if ( getNameQualifierSupport() == NameQualifierSupport.CATALOG ) {
return null;
}
if ( currentSchema != null ) {
return currentSchema;
}
- final Identifier schema = jdbcEnvironment.getCurrentSchema();
+ final Identifier schema = getJdbcEnvironment().getCurrentSchema();
if ( schema != null ) {
currentSchema = schema;
}
if ( !useJdbcMetadataDefaultsSetting ) {
try {
- currentSchema = extractionContext.getJdbcEnvironment()
- .getIdentifierHelper()
+ currentSchema = getIdentifierHelper()
.toIdentifier( extractionContext.getJdbcConnection().getSchema() );
}
catch (SQLException sqle) {
@@ -439,25 +419,24 @@ private Identifier getCurrentSchema(JdbcEnvironment jdbcEnvironment) {
return currentSchema;
}
- private Identifier getCurrentCatalog(JdbcEnvironment jdbcEnvironment) {
- if ( jdbcEnvironment.getNameQualifierSupport() == NameQualifierSupport.SCHEMA ) {
+ private Identifier getCurrentCatalog() {
+ if ( getNameQualifierSupport() == NameQualifierSupport.SCHEMA ) {
return null;
}
if ( currentCatalog != null ) {
return currentCatalog;
}
- final Identifier catalog = jdbcEnvironment.getCurrentCatalog();
+ final Identifier catalog = getJdbcEnvironment().getCurrentCatalog();
if ( catalog != null ) {
currentCatalog = catalog;
}
if ( !useJdbcMetadataDefaultsSetting ) {
try {
- currentCatalog = extractionContext.getJdbcEnvironment()
- .getIdentifierHelper()
+ currentCatalog = getIdentifierHelper()
.toIdentifier( extractionContext.getJdbcConnection().getCatalog() );
}
- catch (SQLException ignore) {
- LOG.sqlWarning( ignore.getErrorCode(), ignore.getSQLState() );
+ catch (SQLException sqle) {
+ LOG.sqlWarning( sqle.getErrorCode(), sqle.getSQLState() );
}
}
return currentCatalog;
@@ -475,8 +454,8 @@ private String getCurrentCatalogFilter(JdbcEnvironment jdbcEnvironment) {
try {
currentCatalogFilter = extractionContext.getJdbcConnection().getCatalog();
}
- catch (SQLException ignore) {
- LOG.sqlWarning( ignore.getErrorCode(), ignore.getSQLState() );
+ catch (SQLException sqle) {
+ LOG.sqlWarning( sqle.getErrorCode(), sqle.getSQLState() );
}
}
return currentCatalogFilter;
@@ -495,8 +474,8 @@ private String getCurrentSchemaFilter(JdbcEnvironment jdbcEnvironment) {
try {
currentSchemaFilter = extractionContext.getJdbcConnection().getSchema();
}
- catch (SQLException ignore) {
- LOG.sqlWarning( ignore.getErrorCode(), ignore.getSQLState() );
+ catch (SQLException sqle) {
+ LOG.sqlWarning( sqle.getErrorCode(), sqle.getSQLState() );
}
catch (AbstractMethodError ignore) {
// jConnect and jTDS report that they "support" schemas, but they don't really
@@ -511,12 +490,12 @@ public NameSpaceTablesInformation getTables(Identifier catalog, Identifier schem
final String catalogFilter;
final String schemaFilter;
- final JdbcEnvironment jdbcEnvironment = extractionContext.getJdbcEnvironment();
- final NameQualifierSupport nameQualifierSupport = jdbcEnvironment.getNameQualifierSupport();
+ final NameQualifierSupport nameQualifierSupport = getNameQualifierSupport();
+
if ( nameQualifierSupport.supportsCatalogs() ) {
if ( catalog == null ) {
// look in the current namespace
- final String currentCatalogFilter = getCurrentCatalogFilter(jdbcEnvironment);
+ final String currentCatalogFilter = getCurrentCatalogFilter( getJdbcEnvironment() );
if ( currentCatalogFilter != null ) {
catalogFilter = currentCatalogFilter;
}
@@ -541,7 +520,7 @@ public NameSpaceTablesInformation getTables(Identifier catalog, Identifier schem
if ( nameQualifierSupport.supportsSchemas() ) {
if ( schema == null ) {
// 1) look in current namespace
- final String currentSchemaFilter = getCurrentSchemaFilter( jdbcEnvironment );
+ final String currentSchemaFilter = getCurrentSchemaFilter( getJdbcEnvironment() );
if ( currentSchemaFilter != null ) {
schemaFilter = currentSchemaFilter;
}
@@ -570,7 +549,8 @@ public NameSpaceTablesInformation getTables(Identifier catalog, Identifier schem
"%",
tableTypes,
resultSet -> {
- final NameSpaceTablesInformation tablesInformation = extractNameSpaceTablesInformation( resultSet );
+ final NameSpaceTablesInformation tablesInformation =
+ extractNameSpaceTablesInformation( resultSet );
populateTablesWithColumns( catalogFilter, schemaFilter, tablesInformation );
return tablesInformation;
} );
@@ -665,10 +645,7 @@ private void populateTablesWithColumns(
);
}
catch (SQLException e) {
- throw convertSQLException(
- e,
- "Error accessing tables metadata"
- );
+ throw convertSQLException( e, "Error accessing tables metadata" );
}
}
@@ -676,7 +653,7 @@ protected void addExtractedColumnInformation(TableInformation tableInformation,
throws SQLException {
final ColumnInformation columnInformation = new ColumnInformationImpl(
tableInformation,
- DatabaseIdentifier.toIdentifier( resultSet.getString( getResultSetColumnNameLabel() ) ),
+ toIdentifier( resultSet.getString( getResultSetColumnNameLabel() ) ),
resultSet.getInt( getResultSetSqlTypeCodeLabel() ),
new StringTokenizer( resultSet.getString( getResultSetTypeNameLabel() ), "()" ).nextToken(),
resultSet.getInt( getResultSetColumnSizeLabel() ),
@@ -687,7 +664,7 @@ protected void addExtractedColumnInformation(TableInformation tableInformation,
}
private NameSpaceTablesInformation extractNameSpaceTablesInformation(ResultSet resultSet) throws SQLException {
- NameSpaceTablesInformation tables = new NameSpaceTablesInformation(identifierHelper());
+ final NameSpaceTablesInformation tables = new NameSpaceTablesInformation( identifierHelper() );
while ( resultSet.next() ) {
final TableInformation tableInformation = extractTableInformation( resultSet );
tables.addTableInformation( tableInformation );
@@ -757,15 +734,15 @@ private TableInformation locateTableInNamespace(
final String catalogFilter;
final String schemaFilter;
- if ( extractionContext.getJdbcEnvironment().getNameQualifierSupport().supportsCatalogs() ) {
+ final NameQualifierSupport nameQualifierSupport = getNameQualifierSupport();
+ if ( nameQualifierSupport.supportsCatalogs() ) {
if ( catalog == null ) {
- String defaultCatalog = "";
- if ( extractionContext.getJdbcEnvironment().getNameQualifierSupport().supportsCatalogs() ) {
- try {
- defaultCatalog = extractionContext.getJdbcConnection().getCatalog();
- }
- catch (SQLException ignore) {
- }
+ String defaultCatalog;
+ try {
+ defaultCatalog = extractionContext.getJdbcConnection().getCatalog();
+ }
+ catch (SQLException ignore) {
+ defaultCatalog = "";
}
catalogToUse = null;
catalogFilter = defaultCatalog;
@@ -780,7 +757,7 @@ private TableInformation locateTableInNamespace(
catalogFilter = null;
}
- if ( extractionContext.getJdbcEnvironment().getNameQualifierSupport().supportsSchemas() ) {
+ if ( nameQualifierSupport.supportsSchemas() ) {
if ( schema == null ) {
schemaToUse = null;
schemaFilter = "";
@@ -817,6 +794,10 @@ private TableInformation locateTableInNamespace(
}
}
+ private NameQualifierSupport getNameQualifierSupport() {
+ return getJdbcEnvironment().getNameQualifierSupport();
+ }
+
private TableInformation extractTableInformation(
Identifier catalog,
Identifier schema,
@@ -825,23 +806,19 @@ private TableInformation extractTableInformation(
boolean found = false;
TableInformation tableInformation = null;
-
while ( resultSet.next() ) {
-
if ( tableName.equals( Identifier.toIdentifier(
resultSet.getString( getResultSetTableNameLabel() ),
tableName.isQuoted()
) ) ) {
if ( found ) {
LOG.multipleTablesFound( tableName.render() );
- final String catalogName = catalog == null ? "" : catalog.render();
- final String schemaName = schema == null ? "" : schema.render();
throw new SchemaExtractionException(
String.format(
Locale.ENGLISH,
"More than one table found in namespace (%s, %s) : %s",
- catalogName,
- schemaName,
+ catalog == null ? "" : catalog.render(),
+ schema == null ? "" : schema.render(),
tableName.render()
)
);
@@ -882,18 +859,13 @@ protected void addColumns(TableInformation tableInformation) {
final QualifiedTableName tableName = tableInformation.getName();
final Identifier catalog = tableName.getCatalogName();
final Identifier schema = tableName.getSchemaName();
-
- final String catalogFilter = catalog == null ? "" : catalog.getText();
- final String schemaFilter = schema == null ? "" : schema.getText();
-
try {
processColumnsResultSet(
- catalogFilter,
- schemaFilter,
+ catalog == null ? "" : catalog.getText(),
+ schema == null ? "" : schema.getText(),
tableName.getTableName().getText(),
"%",
resultSet -> {
-
while ( resultSet.next() ) {
addExtractedColumnInformation( tableInformation, resultSet );
}
@@ -903,10 +875,7 @@ protected void addColumns(TableInformation tableInformation) {
}
catch (SQLException e) {
- throw convertSQLException(
- e,
- "Error accessing tables metadata"
- );
+ throw convertSQLException( e, "Error accessing tables metadata" );
}
}
@@ -942,34 +911,18 @@ public PrimaryKeyInformation getPrimaryKey(TableInformationImpl tableInformation
final QualifiedTableName tableName = tableInformation.getName();
final Identifier catalog = tableName.getCatalogName();
final Identifier schema = tableName.getSchemaName();
-
- final String catalogFilter;
- final String schemaFilter;
-
- if ( catalog == null ) {
- catalogFilter = "";
- }
- else {
- catalogFilter = catalog.getText();
- }
-
- if ( schema == null ) {
- schemaFilter = "";
- }
- else {
- schemaFilter = schema.getText();
- }
-
try {
return processPrimaryKeysResultSet(
- catalogFilter,
- schemaFilter,
+ catalog == null ? "" : catalog.getText(),
+ schema == null ? "" : schema.getText(),
tableInformation.getName().getTableName(),
resultSet -> extractPrimaryKeyInformation( tableInformation, resultSet )
);
}
catch (SQLException e) {
- throw convertSQLException( e, "Error while reading primary key meta data for " + tableInformation.getName().toString() );
+ throw convertSQLException( e,
+ "Error while reading primary key meta data for "
+ + tableInformation.getName() );
}
}
@@ -984,9 +937,7 @@ private PrimaryKeyInformation extractPrimaryKeyInformation(
while ( resultSet.next() ) {
final String currentPkName = resultSet.getString( getResultSetPrimaryKeyNameLabel() );
- final Identifier currentPkIdentifier = currentPkName == null
- ? null
- : DatabaseIdentifier.toIdentifier( currentPkName );
+ final Identifier currentPkIdentifier = currentPkName == null ? null : toIdentifier( currentPkName );
if ( firstPass ) {
pkIdentifier = currentPkIdentifier;
firstPass = false;
@@ -1003,15 +954,13 @@ private PrimaryKeyInformation extractPrimaryKeyInformation(
}
final int columnPosition = resultSet.getInt( getResultSetColumnPositionColumn() );
-
final int index = columnPosition - 1;
// Fill up the array list with nulls up to the desired index, because some JDBC drivers don't return results ordered by column position
while ( pkColumns.size() <= index ) {
pkColumns.add( null );
}
- final Identifier columnIdentifier = DatabaseIdentifier.toIdentifier(
- resultSet.getString( getResultSetColumnNameLabel() )
- );
+ final Identifier columnIdentifier =
+ toIdentifier( resultSet.getString( getResultSetColumnNameLabel() ) );
pkColumns.set( index, tableInformation.getColumn( columnIdentifier ) );
}
if ( firstPass ) {
@@ -1025,7 +974,6 @@ private PrimaryKeyInformation extractPrimaryKeyInformation(
throw new SchemaExtractionException( "Primary Key information was missing for KEY_SEQ = " + ( i+1) );
}
}
-
// build the return
return new PrimaryKeyInformationImpl( pkIdentifier, pkColumns );
}
@@ -1110,62 +1058,44 @@ protected abstract T processIndexInfoResultSet(
@Override
public Iterable getIndexes(TableInformation tableInformation) {
- final Map builders = new HashMap<>();
final QualifiedTableName tableName = tableInformation.getName();
final Identifier catalog = tableName.getCatalogName();
final Identifier schema = tableName.getSchemaName();
- final String catalogFilter;
- final String schemaFilter;
-
- if ( catalog == null ) {
- catalogFilter = "";
- }
- else {
- catalogFilter = catalog.getText();
- }
-
- if ( schema == null ) {
- schemaFilter = "";
- }
- else {
- schemaFilter = schema.getText();
- }
-
+ final Map builders = new HashMap<>();
try {
processIndexInfoResultSet(
- catalogFilter,
- schemaFilter,
+ catalog == null ? "" : catalog.getText(),
+ schema == null ? "" : schema.getText(),
tableName.getTableName().getText(),
false, // DO NOT limit to just unique
true, // DO require up-to-date results
resultSet -> {
while ( resultSet.next() ) {
- if ( resultSet.getShort( getResultSetIndexTypeLabel() ) == DatabaseMetaData.tableIndexStatistic ) {
- continue;
+ if ( resultSet.getShort( getResultSetIndexTypeLabel() )
+ != DatabaseMetaData.tableIndexStatistic ) {
+ final Identifier indexIdentifier =
+ toIdentifier( resultSet.getString( getResultSetIndexNameLabel() ) );
+ IndexInformationImpl.Builder builder = builders.get( indexIdentifier );
+ if ( builder == null ) {
+ builder = IndexInformationImpl.builder( indexIdentifier );
+ builders.put( indexIdentifier, builder );
+ }
+
+ final Identifier columnIdentifier =
+ toIdentifier( resultSet.getString( getResultSetColumnNameLabel() ) );
+ final ColumnInformation columnInformation =
+ tableInformation.getColumn( columnIdentifier );
+ if ( columnInformation == null ) {
+ // See HHH-10191: this may happen when dealing with Oracle/PostgreSQL function indexes
+ LOG.logCannotLocateIndexColumnInformation(
+ columnIdentifier.getText(),
+ indexIdentifier.getText()
+ );
+ }
+ builder.addColumn( columnInformation );
}
- final Identifier indexIdentifier = DatabaseIdentifier.toIdentifier(
- resultSet.getString( getResultSetIndexNameLabel() )
- );
- IndexInformationImpl.Builder builder = builders.get( indexIdentifier );
- if ( builder == null ) {
- builder = IndexInformationImpl.builder( indexIdentifier );
- builders.put( indexIdentifier, builder );
- }
-
- final Identifier columnIdentifier = DatabaseIdentifier.toIdentifier(
- resultSet.getString( getResultSetColumnNameLabel() )
- );
- final ColumnInformation columnInformation = tableInformation.getColumn( columnIdentifier );
- if ( columnInformation == null ) {
- // See HHH-10191: this may happen when dealing with Oracle/PostgreSQL function indexes
- LOG.logCannotLocateIndexColumnInformation(
- columnIdentifier.getText(),
- indexIdentifier.getText()
- );
- }
- builder.addColumn( columnInformation );
}
return null;
}
@@ -1173,10 +1103,9 @@ public Iterable getIndexes(TableInformation tableInformation)
}
catch (SQLException e) {
- throw convertSQLException(
- e,
- "Error accessing index information: " + tableInformation.getName().toString()
- );
+ throw convertSQLException( e,
+ "Error accessing index information: "
+ + tableInformation.getName() );
}
final List indexes = new ArrayList<>();
@@ -1348,91 +1277,41 @@ protected abstract T processCrossReferenceResultSet(
@Override
public Iterable getForeignKeys(TableInformation tableInformation) {
- final Map fkBuilders = new HashMap<>();
final QualifiedTableName tableName = tableInformation.getName();
final Identifier catalog = tableName.getCatalogName();
final Identifier schema = tableName.getSchemaName();
- final String catalogFilter;
- final String schemaFilter;
-
- if ( catalog == null ) {
- catalogFilter = "";
- }
- else {
- catalogFilter = catalog.getText();
- }
-
- if ( schema == null ) {
- schemaFilter = "";
- }
- else {
- schemaFilter = schema.getText();
- }
+ final String catalogFilter = catalog == null ? "" : catalog.getText();
+ final String schemaFilter = schema == null ? "" : schema.getText();
+ final Map fkBuilders = new HashMap<>();
try {
- ExtractionContext.ResultSetProcessor processor = resultSet -> {
- while ( resultSet.next() ) {
- // IMPL NOTE : The builder is mainly used to collect the column reference mappings
- final Identifier fkIdentifier = DatabaseIdentifier.toIdentifier(
- resultSet.getString( getResultSetForeignKeyLabel() )
- );
- ForeignKeyBuilder fkBuilder = fkBuilders.get( fkIdentifier );
- if ( fkBuilder == null ) {
- fkBuilder = generateForeignKeyBuilder( fkIdentifier );
- fkBuilders.put( fkIdentifier, fkBuilder );
- }
-
- final QualifiedTableName incomingPkTableName = extractPrimaryKeyTableName( resultSet );
-
- final TableInformation pkTableInformation = extractionContext.getDatabaseObjectAccess()
- .locateTableInformation( incomingPkTableName );
-
- if ( pkTableInformation == null ) {
- // the assumption here is that we have not seen this table already based on fully-qualified name
- // during previous step of building all table metadata so most likely this is
- // not a match based solely on schema/catalog and that another row in this result set
- // should match.
- continue;
- }
-
- final Identifier fkColumnIdentifier = DatabaseIdentifier.toIdentifier(
- resultSet.getString( getResultSetForeignKeyColumnNameLabel() )
- );
- final Identifier pkColumnIdentifier = DatabaseIdentifier.toIdentifier(
- resultSet.getString( getResultSetPrimaryKeyColumnNameLabel() )
- );
-
- fkBuilder.addColumnMapping(
- tableInformation.getColumn( fkColumnIdentifier ),
- pkTableInformation.getColumn( pkColumnIdentifier )
- );
- }
- return null;
- };
- processImportedKeysResultSet(
- catalogFilter,
- schemaFilter,
- tableInformation.getName().getTableName().getText(),
- processor);
- final Dialect dialect = extractionContext.getJdbcEnvironment().getDialect();
- if (dialect.useCrossReferenceForeignKeys()) {
+ final String table = tableInformation.getName().getTableName().getText();
+ processImportedKeysResultSet( catalogFilter, schemaFilter, table,
+ resultSet -> {
+ process( tableInformation, resultSet, fkBuilders );
+ return null;
+ } );
+ final Dialect dialect = getJdbcEnvironment().getDialect();
+ if ( dialect.useCrossReferenceForeignKeys() ) {
processCrossReferenceResultSet(
null,
null,
dialect.getCrossReferenceParentTableFilter(),
catalogFilter,
schemaFilter,
- tableInformation.getName().getTableName().getText(),
- processor
+ table,
+ resultSet -> {
+ process( tableInformation, resultSet, fkBuilders );
+ return null;
+ }
);
}
}
catch (SQLException e) {
- throw convertSQLException(
- e,
- "Error accessing column metadata: " + tableInformation.getName().toString()
- );
+ throw convertSQLException( e,
+ "Error accessing column metadata: "
+ + tableInformation.getName() );
}
final List fks = new ArrayList<>();
@@ -1443,6 +1322,37 @@ public Iterable getForeignKeys(TableInformation tableInfo
return fks;
}
+ private void process(TableInformation tableInformation, ResultSet resultSet, Map fkBuilders)
+ throws SQLException {
+ while ( resultSet.next() ) {
+ // IMPL NOTE : The builder is mainly used to collect the column reference mappings
+ final Identifier fkIdentifier = toIdentifier( resultSet.getString( getResultSetForeignKeyLabel() ) );
+ ForeignKeyBuilder fkBuilder = fkBuilders.get( fkIdentifier );
+ if ( fkBuilder == null ) {
+ fkBuilder = generateForeignKeyBuilder( fkIdentifier );
+ fkBuilders.put( fkIdentifier, fkBuilder );
+ }
+
+ final TableInformation pkTableInformation = extractionContext.getDatabaseObjectAccess()
+ .locateTableInformation( extractPrimaryKeyTableName( resultSet ) );
+ if ( pkTableInformation != null ) {
+ // the assumption here is that we have not seen this table already based on fully-qualified name
+ // during previous step of building all table metadata so most likely this is
+ // not a match based solely on schema/catalog and that another row in this result set
+ // should match.
+ final Identifier fkColumnIdentifier =
+ toIdentifier( resultSet.getString( getResultSetForeignKeyColumnNameLabel() ) );
+ final Identifier pkColumnIdentifier =
+ toIdentifier( resultSet.getString( getResultSetPrimaryKeyColumnNameLabel() ) );
+ fkBuilder.addColumnMapping(
+ tableInformation.getColumn( fkColumnIdentifier ),
+ pkTableInformation.getColumn( pkColumnIdentifier )
+ );
+ }
+
+ }
+ }
+
private ForeignKeyBuilder generateForeignKeyBuilder(Identifier fkIdentifier) {
return new ForeignKeyBuilderImpl( fkIdentifier );
}
@@ -1480,27 +1390,18 @@ public ForeignKeyInformationImpl build() {
}
private QualifiedTableName extractPrimaryKeyTableName(ResultSet resultSet) throws SQLException {
- final String incomingCatalogName = resultSet.getString( getResultSetPrimaryKeyCatalogLabel() );
- final String incomingSchemaName = resultSet.getString( getResultSetPrimaryKeySchemaLabel() );
- final String incomingTableName = resultSet.getString( getResultSetPrimaryKeyTableLabel() );
-
- final DatabaseIdentifier catalog = DatabaseIdentifier.toIdentifier( incomingCatalogName );
- final DatabaseIdentifier schema = DatabaseIdentifier.toIdentifier( incomingSchemaName );
- final DatabaseIdentifier table = DatabaseIdentifier.toIdentifier( incomingTableName );
-
- return new QualifiedTableName( catalog, schema, table );
+ return new QualifiedTableName(
+ toIdentifier( resultSet.getString( getResultSetPrimaryKeyCatalogLabel() ) ),
+ toIdentifier( resultSet.getString( getResultSetPrimaryKeySchemaLabel() ) ),
+ toIdentifier( resultSet.getString( getResultSetPrimaryKeyTableLabel() ) ) );
}
private QualifiedTableName extractTableName(ResultSet resultSet) throws SQLException {
- final String incomingCatalogName = resultSet.getString( getResultSetCatalogLabel() );
- final String incomingSchemaName = resultSet.getString( getResultSetSchemaLabel() );
- final String incomingTableName = resultSet.getString( getResultSetTableNameLabel() );
-
- final DatabaseIdentifier catalog = DatabaseIdentifier.toIdentifier( incomingCatalogName );
- final DatabaseIdentifier schema = DatabaseIdentifier.toIdentifier( incomingSchemaName );
- final DatabaseIdentifier table = DatabaseIdentifier.toIdentifier( incomingTableName );
-
- return new QualifiedTableName( catalog, schema, table );
+ return new QualifiedTableName(
+ toIdentifier( resultSet.getString( getResultSetCatalogLabel() ) ),
+ toIdentifier( resultSet.getString( getResultSetSchemaLabel() ) ),
+ toIdentifier( resultSet.getString( getResultSetTableNameLabel() ) )
+ );
}
}
diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/InformationExtractorJdbcDatabaseMetaDataImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/InformationExtractorJdbcDatabaseMetaDataImpl.java
index 0eddf5a192..5306139a2c 100644
--- a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/InformationExtractorJdbcDatabaseMetaDataImpl.java
+++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/InformationExtractorJdbcDatabaseMetaDataImpl.java
@@ -4,6 +4,7 @@
*/
package org.hibernate.tool.schema.extract.internal;
+import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
@@ -28,6 +29,10 @@ public InformationExtractorJdbcDatabaseMetaDataImpl(ExtractionContext extraction
super( extractionContext );
}
+ private DatabaseMetaData getJdbcDatabaseMetaData() {
+ return getExtractionContext().getJdbcDatabaseMetaData();
+ }
+
@Override
protected String getResultSetTableTypesPhysicalTableConstant() {
return "TABLE";
@@ -35,7 +40,7 @@ protected String getResultSetTableTypesPhysicalTableConstant() {
@Override
public T processCatalogsResultSet(ExtractionContext.ResultSetProcessor processor) throws SQLException {
- try (ResultSet resultSet = getExtractionContext().getJdbcDatabaseMetaData().getCatalogs() ) {
+ try (ResultSet resultSet = getJdbcDatabaseMetaData().getCatalogs() ) {
return processor.process( resultSet );
}
}
@@ -45,7 +50,7 @@ protected T processSchemaResultSet(
String catalog,
String schemaPattern,
ExtractionContext.ResultSetProcessor processor) throws SQLException {
- try (ResultSet resultSet = getExtractionContext().getJdbcDatabaseMetaData().getSchemas(
+ try (ResultSet resultSet = getJdbcDatabaseMetaData().getSchemas(
catalog,
schemaPattern ) ) {
return processor.process( resultSet );
@@ -60,7 +65,7 @@ protected T processTableResultSet(
String[] types,
ExtractionContext.ResultSetProcessor processor
) throws SQLException {
- try (ResultSet resultSet = getExtractionContext().getJdbcDatabaseMetaData().getTables(
+ try (ResultSet resultSet = getJdbcDatabaseMetaData().getTables(
catalog,
schemaPattern,
tableNamePattern,
@@ -76,7 +81,7 @@ protected T processColumnsResultSet(
String tableNamePattern,
String columnNamePattern,
ExtractionContext.ResultSetProcessor processor) throws SQLException {
- try (ResultSet resultSet = getExtractionContext().getJdbcDatabaseMetaData().getColumns(
+ try (ResultSet resultSet = getJdbcDatabaseMetaData().getColumns(
catalog,
schemaPattern,
tableNamePattern,
@@ -91,7 +96,7 @@ protected T processPrimaryKeysResultSet(
String schemaFilter,
Identifier tableName,
ExtractionContext.ResultSetProcessor processor) throws SQLException {
- try( ResultSet resultSet = getExtractionContext().getJdbcDatabaseMetaData().getPrimaryKeys(
+ try( ResultSet resultSet = getJdbcDatabaseMetaData().getPrimaryKeys(
catalogFilter,
schemaFilter,
tableName.getText() ) ) {
@@ -108,7 +113,7 @@ protected T processIndexInfoResultSet(
boolean approximate,
ExtractionContext.ResultSetProcessor processor) throws SQLException {
- try (ResultSet resultSet = getExtractionContext().getJdbcDatabaseMetaData().getIndexInfo(
+ try (ResultSet resultSet = getJdbcDatabaseMetaData().getIndexInfo(
catalog,
schema,
table,
@@ -124,7 +129,7 @@ protected T processImportedKeysResultSet(
String schema,
String table,
ExtractionContext.ResultSetProcessor processor) throws SQLException {
- try (ResultSet resultSet = getExtractionContext().getJdbcDatabaseMetaData().getImportedKeys(
+ try (ResultSet resultSet = getJdbcDatabaseMetaData().getImportedKeys(
catalog,
schema,
table ) ) {
@@ -141,7 +146,7 @@ protected T processCrossReferenceResultSet(
String foreignSchema,
String foreignTable,
ExtractionContext.ResultSetProcessor processor) throws SQLException {
- try (ResultSet resultSet = getExtractionContext().getJdbcDatabaseMetaData().getCrossReference(
+ try (ResultSet resultSet = getJdbcDatabaseMetaData().getCrossReference(
parentCatalog,
parentSchema,
parentTable,
@@ -153,9 +158,9 @@ protected T processCrossReferenceResultSet(
}
protected void addColumns(TableInformation tableInformation) {
- final Dialect dialect = getExtractionContext().getJdbcEnvironment().getDialect();
-
+ final Dialect dialect = getJdbcEnvironment().getDialect();
final ExtractionContext extractionContext = getExtractionContext();
+
// We use this dummy query to retrieve the table information through the ResultSetMetaData
// This is significantly better than to use the DatabaseMetaData especially on Oracle with synonyms enabled
final String tableName = extractionContext.getSqlStringGenerationContext().format(