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
AbstractInformationExtractorImpl.ForeignKeyBuilder, AbstractInformationExtractorImpl.ForeignKeyBuilderImpl
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected int
dataTypeCode
(String typeName) Return a JDBC Type code for the given type nameprotected String
getDatabaseCatalogColumnName
(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 String
getDatabaseSchemaColumnName
(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> T
processCatalogsResultSet
(ExtractionContext.ResultSetProcessor<T> processor) protected <T> T
processImportedKeysResultSet
(String catalog, String schema, String table, ExtractionContext.ResultSetProcessor<T> processor) protected <T> T
processIndexInfoResultSet
(String catalog, String schema, String table, boolean unique, boolean approximate, ExtractionContext.ResultSetProcessor<T> processor) protected <T> T
processPrimaryKeysResultSet
(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, processTableResultSet
Methods 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:AbstractReactiveInformationSchemaBasedExtractorImpl
Return a JDBC Type code for the given type name- Overrides:
dataTypeCode
in classAbstractReactiveInformationSchemaBasedExtractorImpl
-
getDatabaseCatalogColumnName
Description copied from class:AbstractReactiveInformationSchemaBasedExtractorImpl
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. MySQL, for example, uses the schema name column in the information_schema to store the catalog name. (@see MySqlReactiveInformationExtractorImpl)
- Overrides:
getDatabaseCatalogColumnName
in 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:AbstractReactiveInformationSchemaBasedExtractorImpl
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. MySQL, for example, does not have a valid column in the information_schema to store the schema name. (@see MySqlReactiveInformationExtractorImpl)
- Overrides:
getDatabaseSchemaColumnName
in 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:
processPrimaryKeysResultSet
in classAbstractInformationExtractorImpl
-
processCatalogsResultSet
protected <T> T processCatalogsResultSet(ExtractionContext.ResultSetProcessor<T> processor) throws SQLException - Overrides:
processCatalogsResultSet
in 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:
processIndexInfoResultSet
in classAbstractInformationExtractorImpl
- Throws:
SQLException
-
processImportedKeysResultSet
protected <T> T processImportedKeysResultSet(String catalog, String schema, String table, ExtractionContext.ResultSetProcessor<T> processor) throws SQLException - Specified by:
processImportedKeysResultSet
in classAbstractInformationExtractorImpl
- Throws:
SQLException
-