Class MySqlReactiveInformationExtractorImpl
java.lang.Object
org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
org.hibernate.reactive.provider.service.AbstractReactiveInformationSchemaBasedExtractorImpl
org.hibernate.reactive.provider.service.MySqlReactiveInformationExtractorImpl
- All Implemented Interfaces:
InformationExtractor
public class MySqlReactiveInformationExtractorImpl
extends AbstractReactiveInformationSchemaBasedExtractorImpl
An implementation of
AbstractReactiveInformationSchemaBasedExtractorImpl
specifically for MySQL that obtains metadata from MySQL's non-standard
information_schema tables.
MySQL's schema is actually a catalog. MySQL's implementation of
DatabaseMetaData automatically changes catalog
arguments to refer to schema columns instead. Unfortunately,
MySQL's information_schema stores catalog names in
a schema name column. This class works around that idiosyncrasy.-
Nested Class Summary
Nested classes/interfaces inherited from class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl.ForeignKeyBuilder, org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl.ForeignKeyBuilderImpl -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected intdataTypeCode(String typeName) Return a JDBC Type code for the given type nameprotected StringgetDatabaseCatalogColumnName(String catalogColumnName, String schemaColumnName) Given a catalog column name and a schema column name in an information_schema table/view, this method returns the column used for storing the catalog name, or, if there is no valid column containing the catalog name.protected StringgetDatabaseSchemaColumnName(String catalogColumnName, String schemaColumnName) Given a catalog column name and a schema column name in an information_schema table/view, this method returns the column used for storing the schema name, or, if there is no valid column containing the schema name.protected <T> TprocessCatalogsResultSet(ExtractionContext.ResultSetProcessor<T> processor) protected <T> TprocessImportedKeysResultSet(String catalog, String schema, String table, ExtractionContext.ResultSetProcessor<T> processor) protected <T> TprocessIndexInfoResultSet(String catalog, String schema, String table, boolean unique, boolean approximate, ExtractionContext.ResultSetProcessor<T> processor) protected <T> TprocessPrimaryKeysResultSet(String catalogFilter, String schemaFilter, Identifier tableName, ExtractionContext.ResultSetProcessor<T> processor) Methods inherited from class org.hibernate.reactive.provider.service.AbstractReactiveInformationSchemaBasedExtractorImpl
appendClauseAndParameterIfNotNullOrEmpty, columnInformation, getInformationSchemaColumnsDataTypeColumn, getResultSetCatalogLabel, getResultSetColumnNameLabel, getResultSetColumnPositionColumn, getResultSetColumnSizeLabel, getResultSetDecimalDigitsLabel, getResultSetForeignKeyColumnNameLabel, getResultSetForeignKeyLabel, getResultSetIndexNameLabel, getResultSetIndexTypeLabel, getResultSetIsNullableLabel, getResultSetPrimaryKeyCatalogLabel, getResultSetPrimaryKeyColumnNameLabel, getResultSetPrimaryKeyNameLabel, getResultSetPrimaryKeySchemaLabel, getResultSetPrimaryKeyTableLabel, getResultSetRemarksLabel, getResultSetSchemaLabel, getResultSetSqlTypeCodeLabel, getResultSetTableNameLabel, getResultSetTableTypeLabel, getResultSetTableTypesPhysicalTableConstant, getResultSetTypeNameLabel, parameterMarker, processColumnsResultSet, processCrossReferenceResultSet, processSchemaResultSet, processTableResultSetMethods inherited from class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
addColumns, catalogExists, convertSQLException, getExtractionContext, getForeignKeys, getIndexes, getJdbcEnvironment, getPrimaryKey, getTable, getTables, interpretTruthValue, isPhysicalTableType, schemaExists, toMetaDataObjectName
-
Constructor Details
-
MySqlReactiveInformationExtractorImpl
-
-
Method Details
-
dataTypeCode
Description copied from class:AbstractReactiveInformationSchemaBasedExtractorImplReturn a JDBC Type code for the given type name- Overrides:
dataTypeCodein classAbstractReactiveInformationSchemaBasedExtractorImpl
-
getDatabaseCatalogColumnName
Description copied from class:AbstractReactiveInformationSchemaBasedExtractorImplGiven a catalog column name and a schema column name in an information_schema table/view, this method returns the column used for storing the catalog name, or, if there is no valid column containing the catalog name. MySQL, for example, uses the schema name column in the information_schema to store the catalog name. (@see MySqlReactiveInformationExtractorImpl)- Overrides:
getDatabaseCatalogColumnNamein classAbstractReactiveInformationSchemaBasedExtractorImpl- Parameters:
catalogColumnName- - the catalog column nameschemaColumnName- - the schema column name- Returns:
- the column used for storing the catalog name,
or
if there is no valid column containing the catalog name.
-
getDatabaseSchemaColumnName
Description copied from class:AbstractReactiveInformationSchemaBasedExtractorImplGiven a catalog column name and a schema column name in an information_schema table/view, this method returns the column used for storing the schema name, or, if there is no valid column containing the schema name. MySQL, for example, does not have a valid column in the information_schema to store the schema name. (@see MySqlReactiveInformationExtractorImpl)- Overrides:
getDatabaseSchemaColumnNamein classAbstractReactiveInformationSchemaBasedExtractorImpl- Parameters:
catalogColumnName- - the catalog column nameschemaColumnName- - the schema column name- Returns:
- the column used for storing the schema name,
or
if there is no valid column containing the schema name.
-
processPrimaryKeysResultSet
protected <T> T processPrimaryKeysResultSet(String catalogFilter, String schemaFilter, Identifier tableName, ExtractionContext.ResultSetProcessor<T> processor) - Specified by:
processPrimaryKeysResultSetin classorg.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
-
processCatalogsResultSet
protected <T> T processCatalogsResultSet(ExtractionContext.ResultSetProcessor<T> processor) throws SQLException - Overrides:
processCatalogsResultSetin classAbstractReactiveInformationSchemaBasedExtractorImpl- Throws:
SQLException
-
processIndexInfoResultSet
protected <T> T processIndexInfoResultSet(String catalog, String schema, String table, boolean unique, boolean approximate, ExtractionContext.ResultSetProcessor<T> processor) throws SQLException - Specified by:
processIndexInfoResultSetin classorg.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl- Throws:
SQLException
-
processImportedKeysResultSet
protected <T> T processImportedKeysResultSet(String catalog, String schema, String table, ExtractionContext.ResultSetProcessor<T> processor) throws SQLException - Specified by:
processImportedKeysResultSetin classorg.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl- Throws:
SQLException
-