Class OracleDatabaseSchema

All Implemented Interfaces:
DatabaseSchema<TableId>, HistorizedDatabaseSchema<TableId>, AutoCloseable

public class OracleDatabaseSchema extends HistorizedRelationalDatabaseSchema
The schema of an Oracle database.
Author:
Gunnar Morling
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • ddlParser

      private final OracleDdlParser ddlParser
    • lobColumnsByTableId

      private final ConcurrentMap<TableId,List<Column>> lobColumnsByTableId
    • valueConverters

      private final OracleValueConverters valueConverters
    • storageInitializationExecuted

      private boolean storageInitializationExecuted
  • Constructor Details

  • Method Details

    • getTables

      public Tables getTables()
    • getValueConverters

      public OracleValueConverters getValueConverters()
    • getDdlParser

      public OracleDdlParser getDdlParser()
      Specified by:
      getDdlParser in class HistorizedRelationalDatabaseSchema
    • applySchemaChange

      public void applySchemaChange(SchemaChangeEvent schemaChange)
    • initializeStorage

      public void initializeStorage()
      Specified by:
      initializeStorage in interface HistorizedDatabaseSchema<TableId>
      Overrides:
      initializeStorage in class HistorizedRelationalDatabaseSchema
    • isStorageInitializationExecuted

      public boolean isStorageInitializationExecuted()
    • historyExists

      public boolean historyExists()
      Return true if the database schema history entity exists
    • removeSchema

      protected void removeSchema(TableId id)
      Overrides:
      removeSchema in class RelationalDatabaseSchema
    • buildAndRegisterSchema

      protected void buildAndRegisterSchema(Table table)
      Overrides:
      buildAndRegisterSchema in class RelationalDatabaseSchema
    • getLobColumnsForTable

      public List<Column> getLobColumnsForTable(TableId id)
      Get a list of large object (LOB) columns for the specified relational table identifier.
      Parameters:
      id - the relational table identifier
      Returns:
      a list of LOB columns, may be empty if the table has no LOB columns
    • isColumnUnavailableValuePlaceholder

      public boolean isColumnUnavailableValuePlaceholder(Column column, Object value)
      Returns whether the specified value is the unavailable value placeholder for an LOB column.
    • isLobColumn

      public static boolean isLobColumn(Column column)
      Return whether the provided relational column model is a LOB data type.
    • isClobColumn

      private static boolean isClobColumn(Column column)
      Returns whether the provided relational column model is a CLOB or NCLOB data type.
    • isBlobColumn

      private static boolean isBlobColumn(Column column)
      Returns whether the provided relational column model is a CLOB data type.
    • buildAndRegisterTableLobColumns

      private void buildAndRegisterTableLobColumns(Table table)