Class AbstractReactiveInformationSchemaBasedExtractorImpl

java.lang.Object
org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
org.hibernate.reactive.provider.service.AbstractReactiveInformationSchemaBasedExtractorImpl
All Implemented Interfaces:
InformationExtractor
Direct Known Subclasses:
MySqlReactiveInformationExtractorImpl, OracleSqlReactiveInformationExtractorImpl, PostgreSqlReactiveInformationExtractorImpl, SqlServerReactiveInformationExtractorImpl

public abstract class AbstractReactiveInformationSchemaBasedExtractorImpl extends org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
An implementation of InformationExtractor that obtains metadata information from a database's information_schema.
  • Constructor Details

    • AbstractReactiveInformationSchemaBasedExtractorImpl

      public AbstractReactiveInformationSchemaBasedExtractorImpl(ExtractionContext extractionContext)
  • Method Details

    • getResultSetCatalogLabel

      protected String getResultSetCatalogLabel()
      Overrides:
      getResultSetCatalogLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetSchemaLabel

      protected String getResultSetSchemaLabel()
      Overrides:
      getResultSetSchemaLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetTableNameLabel

      protected String getResultSetTableNameLabel()
      Overrides:
      getResultSetTableNameLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetTableTypeLabel

      protected String getResultSetTableTypeLabel()
      Overrides:
      getResultSetTableTypeLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetRemarksLabel

      protected String getResultSetRemarksLabel()
      Overrides:
      getResultSetRemarksLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetColumnNameLabel

      protected String getResultSetColumnNameLabel()
      Overrides:
      getResultSetColumnNameLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetSqlTypeCodeLabel

      protected String getResultSetSqlTypeCodeLabel()
      Overrides:
      getResultSetSqlTypeCodeLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetTypeNameLabel

      protected String getResultSetTypeNameLabel()
      Overrides:
      getResultSetTypeNameLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetColumnSizeLabel

      protected String getResultSetColumnSizeLabel()
      Overrides:
      getResultSetColumnSizeLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetDecimalDigitsLabel

      protected String getResultSetDecimalDigitsLabel()
      Overrides:
      getResultSetDecimalDigitsLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetIsNullableLabel

      protected String getResultSetIsNullableLabel()
      Overrides:
      getResultSetIsNullableLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetIndexTypeLabel

      protected String getResultSetIndexTypeLabel()
      Overrides:
      getResultSetIndexTypeLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetIndexNameLabel

      protected String getResultSetIndexNameLabel()
      Overrides:
      getResultSetIndexNameLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetForeignKeyLabel

      protected String getResultSetForeignKeyLabel()
      Overrides:
      getResultSetForeignKeyLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetPrimaryKeyNameLabel

      protected String getResultSetPrimaryKeyNameLabel()
      Overrides:
      getResultSetPrimaryKeyNameLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetColumnPositionColumn

      protected String getResultSetColumnPositionColumn()
      Overrides:
      getResultSetColumnPositionColumn in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetPrimaryKeyColumnNameLabel

      protected String getResultSetPrimaryKeyColumnNameLabel()
      Overrides:
      getResultSetPrimaryKeyColumnNameLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetForeignKeyColumnNameLabel

      protected String getResultSetForeignKeyColumnNameLabel()
      Overrides:
      getResultSetForeignKeyColumnNameLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetPrimaryKeyCatalogLabel

      protected String getResultSetPrimaryKeyCatalogLabel()
      Overrides:
      getResultSetPrimaryKeyCatalogLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetPrimaryKeySchemaLabel

      protected String getResultSetPrimaryKeySchemaLabel()
      Overrides:
      getResultSetPrimaryKeySchemaLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetPrimaryKeyTableLabel

      protected String getResultSetPrimaryKeyTableLabel()
      Overrides:
      getResultSetPrimaryKeyTableLabel in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • getResultSetTableTypesPhysicalTableConstant

      protected String getResultSetTableTypesPhysicalTableConstant()
      Specified by:
      getResultSetTableTypesPhysicalTableConstant in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • processCatalogsResultSet

      protected <T> T processCatalogsResultSet(ExtractionContext.ResultSetProcessor<T> processor) throws SQLException
      Specified by:
      processCatalogsResultSet in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
      Throws:
      SQLException
    • processCrossReferenceResultSet

      protected <T> T processCrossReferenceResultSet(String parentCatalog, String parentSchema, String parentTable, String foreignCatalog, String foreignSchema, String foreignTable, ExtractionContext.ResultSetProcessor<T> processor)
      Specified by:
      processCrossReferenceResultSet in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
    • processSchemaResultSet

      protected <T> T processSchemaResultSet(String catalog, String schemaPattern, ExtractionContext.ResultSetProcessor<T> processor) throws SQLException
      Specified by:
      processSchemaResultSet in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
      Throws:
      SQLException
    • appendClauseAndParameterIfNotNullOrEmpty

      protected boolean appendClauseAndParameterIfNotNullOrEmpty(String clause, Object parameter, StringBuilder sb, List<Object> parameters)
    • parameterMarker

      protected String parameterMarker(int pos)
    • processTableResultSet

      protected <T> T processTableResultSet(String catalog, String schemaPattern, String tableNamePattern, String[] types, ExtractionContext.ResultSetProcessor<T> processor) throws SQLException
      Specified by:
      processTableResultSet in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
      Throws:
      SQLException
    • processColumnsResultSet

      protected <T> T processColumnsResultSet(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern, ExtractionContext.ResultSetProcessor<T> processor) throws SQLException
      Specified by:
      processColumnsResultSet in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
      Throws:
      SQLException
    • getInformationSchemaColumnsDataTypeColumn

      protected String getInformationSchemaColumnsDataTypeColumn()
      Gets the name of column in information_schema.columns for the database-specific column type.
      Returns:
      the name of column in information_schema.columns for the database-specific column type
    • getDatabaseCatalogColumnName

      protected 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.

      MySQL, for example, uses the schema name column in the information_schema to store the catalog name. (@see MySqlReactiveInformationExtractorImpl)

      Parameters:
      catalogColumnName - - the catalog column name
      schemaColumnName - - 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

      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.

      MySQL, for example, does not have a valid column in the information_schema to store the schema name. (@see MySqlReactiveInformationExtractorImpl)

      Parameters:
      catalogColumnName - - the catalog column name
      schemaColumnName - - the schema column name
      Returns:
      the column used for storing the schema name, or if there is no valid column containing the schema name.
    • columnInformation

      protected org.hibernate.tool.schema.extract.internal.ColumnInformationImpl columnInformation(TableInformation tableInformation, ResultSet resultSet) throws SQLException
      Overrides:
      columnInformation in class org.hibernate.tool.schema.extract.internal.AbstractInformationExtractorImpl
      Throws:
      SQLException
    • dataTypeCode

      protected int dataTypeCode(String typeName)
      Return a JDBC Type code for the given type name