Interface IDatabaseAdapter

  • All Known Implementing Classes:
    CommonDatabaseAdapter, Db2Adapter, DerbyAdapter, PostgresAdapter

    public interface IDatabaseAdapter
    Abstraction of the SQL to use for a given database. This allows us to hide as much as possible the differences in syntax and support between DB2 and Derby (which is used for unit-testing). Derby is pretty close to DB2 in most cases, but notably does not support partitioning, variables or SPL stored procedures.
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      void activateRowAccessControl​(java.lang.String schemaName, java.lang.String tableName)
      ALTER TABLE ACTIVATE ROW ACCESS CONTROL
      void addNewTenantPartitions​(java.util.Collection<Table> tables, java.lang.String schemaName, int newTenantId)
      Add a new tenant partition to each of the tables in the collection.
      int allocateTenant​(java.lang.String adminSchemaName, java.lang.String schemaName, java.lang.String tenantName, java.lang.String tenantKey, java.lang.String tenantSalt, java.lang.String idSequenceName)
      Allocate a new tenant
      void alterSequenceRestartWith​(java.lang.String schemaName, java.lang.String sequenceName, long restartWith, int cache, int incrementBy)
      Sets/resets the sequence to start with the given value.
      void alterTableAddColumn​(java.lang.String schemaName, java.lang.String tableName, ColumnBase column)
      Add a new column to an existing table
      void alterTableColumnIdentityCache​(java.lang.String schemaName, java.lang.String objectName, java.lang.String columnName, int cache)
      Change the CACHE value of the named identity generated always column
      boolean checkCompatibility​(java.lang.String adminSchema)
      checks connectivity to the database and that it is compatible
      void createArrType​(java.lang.String schemaName, java.lang.String typeName, java.lang.String valueType, int arraySize)
      Create ARRAY type used for passing values to stored procedures e.g.: CREATE OR REPLACE TYPE .t_str_values_arr AS .t_str_values ARRAY[256]
      void createForeignKeyConstraint​(java.lang.String constraintName, java.lang.String schemaName, java.lang.String name, java.lang.String targetSchema, java.lang.String targetTable, java.lang.String targetColumnName, java.lang.String tenantColumnName, java.util.List<java.lang.String> columns, boolean enforced)  
      void createIndex​(java.lang.String schemaName, java.lang.String tableName, java.lang.String indexName, java.lang.String tenantColumnName, java.util.List<OrderedColumnDef> indexColumns)  
      void createIntVariable​(java.lang.String schemaName, java.lang.String variableName)
      CREATE VARIABLE ptng.session_tenant INT DEFAULT NULL;
      void createOrReplaceFunction​(java.lang.String schemaName, java.lang.String objectName, java.util.function.Supplier<java.lang.String> supplier)
      creates or replaces the SQL function
      void createOrReplacePermission​(java.lang.String schemaName, java.lang.String permissionName, java.lang.String tableName, java.lang.String predicate)
      CREATE OR REPLACE PERMISSION ROW_ACCESS ON ptng.patients FOR ROWS WHERE patients.mt_id = ptng.session_tenant ENFORCED FOR ALL ACCESS ENABLE;
      void createOrReplaceProcedure​(java.lang.String schemaName, java.lang.String procedureName, java.util.function.Supplier<java.lang.String> supplier)
      Create the stored procedure using the DDL text provided by the supplier
      void createOrReplaceView​(java.lang.String schemaName, java.lang.String objectName, java.lang.String selectClause)
      Create or replace the view
      void createRowType​(java.lang.String schemaName, java.lang.String typeName, java.util.List<ColumnBase> columns)
      Create ROW type used for passing values to stored procedures e.g.:
      void createSchema​(java.lang.String schemaName)
      Create a database schema
      void createSequence​(java.lang.String schemaName, java.lang.String sequenceName, long startWith, int cache, int incrementBy)  
      void createTable​(java.lang.String schemaName, java.lang.String name, java.lang.String tenantColumnName, java.util.List<ColumnBase> columns, PrimaryKeyDef primaryKey, IdentityDef identity, java.lang.String tablespaceName, java.util.List<With> withs, java.util.List<CheckConstraint> checkConstraints)
      Build the create table DDL
      void createTablespace​(java.lang.String tablespaceName)
      Create a new tablespace with the given name
      void createTablespace​(java.lang.String tablespaceName, int extentSizeKB)
      Create a new tablespace using the given extent size
      void createTenantPartitions​(java.util.Collection<Table> tables, java.lang.String schemaName, int newTenantId, int extentSizeKB)
      Create the partitions on each of these tables
      void createUniqueConstraint​(java.lang.String constraintName, java.util.List<java.lang.String> columns, java.lang.String schemaName, java.lang.String name)
      create a unique constraint on a table.
      void createUniqueIndex​(java.lang.String schemaName, java.lang.String tableName, java.lang.String indexName, java.lang.String tenantColumnName, java.util.List<OrderedColumnDef> indexColumns)  
      void createUniqueIndex​(java.lang.String schemaName, java.lang.String tableName, java.lang.String indexName, java.lang.String tenantColumnName, java.util.List<OrderedColumnDef> indexColumns, java.util.List<java.lang.String> includeColumns)  
      void createView​(java.lang.String schemaName, java.lang.String objectName, java.lang.String selectClause)
      Create the view as defined by the selectClause
      void deactivateRowAccessControl​(java.lang.String schemaName, java.lang.String tableName)
      Deactivate row access control on a table ALTER TABLE DEACTIVATE ROW ACCESS CONTROL
      void deleteTenantMeta​(java.lang.String adminSchemaName, int tenantId)
      Delete all the metadata associated with the given tenant identifier, as long as the tenant status is DROPPED.
      void detachPartition​(java.lang.String schemaName, java.lang.String tableName, java.lang.String partitionName, java.lang.String newTableName)
      Detach the partition
      void disableForeignKey​(java.lang.String schemaName, java.lang.String tableName, java.lang.String constraintName)
      Disable the FK with the given constraint name
      boolean doesTableExist​(java.lang.String schemaName, java.lang.String objectName)
      Check if the table currently exists
      void dropDetachedPartitions​(java.util.Collection<Table> tables, java.lang.String schemaName, int tenantId)
      Drop the tables which were created by the detach partition operation (as part of tenant deprovisioning).
      void dropForeignKey​(java.lang.String schemaName, java.lang.String tableName, java.lang.String constraintName)
      Drop the FK on the table with the given constraint name
      void dropFunction​(java.lang.String schemaName, java.lang.String functionName)
      drops a given function
      void dropIndex​(java.lang.String schemaName, java.lang.String indexName)
      Drop the named index
      void dropPermission​(java.lang.String schemaName, java.lang.String permissionName)
      Drop permission object from the schema
      void dropProcedure​(java.lang.String schemaName, java.lang.String procedureName)
      Drop the given procedure
      void dropSequence​(java.lang.String schemaName, java.lang.String sequenceName)  
      void dropTable​(java.lang.String schemaName, java.lang.String name)
      Drop table from the schema
      void dropTablespace​(java.lang.String tablespaceName)
      Drop an existing tablespace, including all of its contents
      void dropTenantTablespace​(int tenantId)
      Drop the tablespace associated with the given tenantId
      void dropType​(java.lang.String schemaName, java.lang.String typeName)
      Drop the type object from the schema
      void dropVariable​(java.lang.String schemaName, java.lang.String variableName)  
      void dropView​(java.lang.String schemaName, java.lang.String objectName)
      Drop the view from the database
      void enableForeignKey​(java.lang.String schemaName, java.lang.String tableName, java.lang.String constraintName)
      Enable the FK with the given constraint name
      int findTenantId​(java.lang.String adminSchemaName, java.lang.String tenantName)
      Get the tenant id for the given schema and tenant name
      IDatabaseTranslator getTranslator()
      Get the IDatabaseTranslator associated with this adapter
      void grantAllSequenceUsage​(java.lang.String schemaName, java.lang.String grantToUser)
      Grant access to all sequences in the named schema
      void grantFunctionPrivileges​(java.lang.String schemaName, java.lang.String functionName, java.util.Collection<Privilege> privileges, java.lang.String toUser)
      grants permissions on a given function
      void grantObjectPrivileges​(java.lang.String schemaName, java.lang.String tableName, java.util.Collection<Privilege> privileges, java.lang.String toUser)
      Grant the list of privileges on the named object to the user.
      void grantProcedurePrivileges​(java.lang.String schemaName, java.lang.String procedureName, java.util.Collection<Privilege> privileges, java.lang.String toUser)
      Grant the collection of privileges on the named procedure to the user
      void grantSchemaUsage​(java.lang.String schemaName, java.lang.String grantToUser)
      Grants USAGE on the given schemaName to the given user
      void grantSequencePrivileges​(java.lang.String schemaName, java.lang.String objectName, java.util.Collection<Privilege> group, java.lang.String toUser)
      Grant the collection of privileges on the named variable to the user
      void grantVariablePrivileges​(java.lang.String schemaName, java.lang.String variableName, java.util.Collection<Privilege> privileges, java.lang.String toUser)
      Grant the collection of privileges on the named variable to the user
      java.util.List<SchemaInfoObject> listSchemaObjects​(java.lang.String schemaName)
      List the objects present in the given schema
      void removeTenantPartitions​(java.util.Collection<Table> tables, java.lang.String schemaName, int tenantId)
      Detach the partition associated with the tenantId from each of the given tables
      void reorgTable​(java.lang.String schemaName, java.lang.String tableName)
      Reorg the table if the underlying database supports it.
      void runStatement​(IDatabaseStatement statement)
      Run the given statement against the database represented by this adapter
      <T> T runStatement​(IDatabaseSupplier<T> supplier)
      Run the given supplier statement against the database represented by this adapter
      void setIntegrityOff​(java.lang.String schemaName, java.lang.String tableName)  
      void setIntegrityUnchecked​(java.lang.String schemaName, java.lang.String tableName)  
      void setIntVariable​(java.lang.String schemaName, java.lang.String variableName, int value)
      Build the DML statement for setting a session variable
      void updateTenantStatus​(java.lang.String adminSchemaName, int tenantId, TenantStatus status)
      Update the tenant status
      default boolean useSessionVariable()  
    • Method Detail

      • createTablespace

        void createTablespace​(java.lang.String tablespaceName)
        Create a new tablespace with the given name
        Parameters:
        tablespaceName -
      • createTablespace

        void createTablespace​(java.lang.String tablespaceName,
                              int extentSizeKB)
        Create a new tablespace using the given extent size
        Parameters:
        tablespaceName -
        extentSizeKB -
      • dropTablespace

        void dropTablespace​(java.lang.String tablespaceName)
        Drop an existing tablespace, including all of its contents
        Parameters:
        tablespaceName -
      • detachPartition

        void detachPartition​(java.lang.String schemaName,
                             java.lang.String tableName,
                             java.lang.String partitionName,
                             java.lang.String newTableName)
        Detach the partition
        Parameters:
        schemaName -
        tableName -
        partitionName -
        newTableName -
      • createTable

        void createTable​(java.lang.String schemaName,
                         java.lang.String name,
                         java.lang.String tenantColumnName,
                         java.util.List<ColumnBase> columns,
                         PrimaryKeyDef primaryKey,
                         IdentityDef identity,
                         java.lang.String tablespaceName,
                         java.util.List<With> withs,
                         java.util.List<CheckConstraint> checkConstraints)
        Build the create table DDL
        Parameters:
        schemaName -
        name -
        tenantColumnName - optional column name to enable multi-tenancy
        columns -
        primaryKey -
        identity -
        tablespaceName -
        withs -
        checkConstraints -
      • alterTableAddColumn

        void alterTableAddColumn​(java.lang.String schemaName,
                                 java.lang.String tableName,
                                 ColumnBase column)
        Add a new column to an existing table
        Parameters:
        schemaName -
        tableName -
        column -
      • reorgTable

        void reorgTable​(java.lang.String schemaName,
                        java.lang.String tableName)
        Reorg the table if the underlying database supports it. Required after columns are added/removed from a table.
        Parameters:
        schemaName -
        tableName -
      • createRowType

        void createRowType​(java.lang.String schemaName,
                           java.lang.String typeName,
                           java.util.List<ColumnBase> columns)
        Create ROW type used for passing values to stored procedures e.g.:
         CREATE OR REPLACE TYPE .t_str_values AS ROW (parameter_name_id INTEGER,
         str_value VARCHAR(511 OCTETS), str_value_lcase VARCHAR(511 OCTETS))
         
        Parameters:
        schemaName -
        typeName -
        columns -
      • createArrType

        void createArrType​(java.lang.String schemaName,
                           java.lang.String typeName,
                           java.lang.String valueType,
                           int arraySize)
        Create ARRAY type used for passing values to stored procedures e.g.: CREATE OR REPLACE TYPE .t_str_values_arr AS .t_str_values ARRAY[256]
        Parameters:
        schemaName -
        typeName -
        valueType -
        arraySize -
      • dropType

        void dropType​(java.lang.String schemaName,
                      java.lang.String typeName)
        Drop the type object from the schema
        Parameters:
        schemaName -
        typeName -
      • createOrReplaceProcedure

        void createOrReplaceProcedure​(java.lang.String schemaName,
                                      java.lang.String procedureName,
                                      java.util.function.Supplier<java.lang.String> supplier)
        Create the stored procedure using the DDL text provided by the supplier
        Parameters:
        schemaName -
        procedureName -
        supplier -
      • dropProcedure

        void dropProcedure​(java.lang.String schemaName,
                           java.lang.String procedureName)
        Drop the given procedure
        Parameters:
        schemaName -
        procedureName -
      • createUniqueIndex

        void createUniqueIndex​(java.lang.String schemaName,
                               java.lang.String tableName,
                               java.lang.String indexName,
                               java.lang.String tenantColumnName,
                               java.util.List<OrderedColumnDef> indexColumns,
                               java.util.List<java.lang.String> includeColumns)
        Parameters:
        schemaName -
        tableName -
        indexName -
        tenantColumnName -
        indexColumns -
        includeColumns -
      • createUniqueIndex

        void createUniqueIndex​(java.lang.String schemaName,
                               java.lang.String tableName,
                               java.lang.String indexName,
                               java.lang.String tenantColumnName,
                               java.util.List<OrderedColumnDef> indexColumns)
        Parameters:
        schemaName -
        tableName -
        indexName -
        tenantColumnName -
        indexColumns -
      • createIndex

        void createIndex​(java.lang.String schemaName,
                         java.lang.String tableName,
                         java.lang.String indexName,
                         java.lang.String tenantColumnName,
                         java.util.List<OrderedColumnDef> indexColumns)
        Parameters:
        schemaName -
        tableName -
        indexName -
        tenantColumnName -
        indexColumns -
      • createIntVariable

        void createIntVariable​(java.lang.String schemaName,
                               java.lang.String variableName)
         CREATE VARIABLE ptng.session_tenant INT DEFAULT NULL;
         
        Parameters:
        schemaName -
        variableName -
      • createOrReplacePermission

        void createOrReplacePermission​(java.lang.String schemaName,
                                       java.lang.String permissionName,
                                       java.lang.String tableName,
                                       java.lang.String predicate)
         CREATE OR REPLACE PERMISSION ROW_ACCESS ON ptng.patients FOR ROWS WHERE patients.mt_id =
         ptng.session_tenant ENFORCED FOR ALL ACCESS ENABLE;
         
        Parameters:
        schemaName -
        permissionName -
        tableName -
        predicate -
      • activateRowAccessControl

        void activateRowAccessControl​(java.lang.String schemaName,
                                      java.lang.String tableName)
         ALTER TABLE  ACTIVATE ROW ACCESS CONTROL
         
        Parameters:
        schemaName -
        tableName -
      • deactivateRowAccessControl

        void deactivateRowAccessControl​(java.lang.String schemaName,
                                        java.lang.String tableName)
        Deactivate row access control on a table ALTER TABLE DEACTIVATE ROW ACCESS CONTROL
        Parameters:
        schemaName -
        tableName -
      • setIntVariable

        void setIntVariable​(java.lang.String schemaName,
                            java.lang.String variableName,
                            int value)
        Build the DML statement for setting a session variable
        Parameters:
        schemaName -
        variableName -
        value -
      • dropTable

        void dropTable​(java.lang.String schemaName,
                       java.lang.String name)
        Drop table from the schema
        Parameters:
        schemaName -
        name -
      • dropPermission

        void dropPermission​(java.lang.String schemaName,
                            java.lang.String permissionName)
        Drop permission object from the schema
        Parameters:
        schemaName -
        permissionName -
      • dropVariable

        void dropVariable​(java.lang.String schemaName,
                          java.lang.String variableName)
        Parameters:
        schemaName -
        variableName -
      • createForeignKeyConstraint

        void createForeignKeyConstraint​(java.lang.String constraintName,
                                        java.lang.String schemaName,
                                        java.lang.String name,
                                        java.lang.String targetSchema,
                                        java.lang.String targetTable,
                                        java.lang.String targetColumnName,
                                        java.lang.String tenantColumnName,
                                        java.util.List<java.lang.String> columns,
                                        boolean enforced)
        Parameters:
        constraintName -
        schemaName -
        name -
        targetSchema -
        targetTable -
        targetColumnName -
        tenantColumnName -
        columns -
        enforced -
      • allocateTenant

        int allocateTenant​(java.lang.String adminSchemaName,
                           java.lang.String schemaName,
                           java.lang.String tenantName,
                           java.lang.String tenantKey,
                           java.lang.String tenantSalt,
                           java.lang.String idSequenceName)
        Allocate a new tenant
        Parameters:
        adminSchemaName -
        schemaName -
        tenantName -
        tenantKey -
        tenantSalt -
        idSequenceName -
        Returns:
      • deleteTenantMeta

        void deleteTenantMeta​(java.lang.String adminSchemaName,
                              int tenantId)
        Delete all the metadata associated with the given tenant identifier, as long as the tenant status is DROPPED.
        Parameters:
        tenantId -
      • findTenantId

        int findTenantId​(java.lang.String adminSchemaName,
                         java.lang.String tenantName)
        Get the tenant id for the given schema and tenant name
        Parameters:
        adminSchemaName -
        tenantName -
        Returns:
      • createTenantPartitions

        void createTenantPartitions​(java.util.Collection<Table> tables,
                                    java.lang.String schemaName,
                                    int newTenantId,
                                    int extentSizeKB)
        Create the partitions on each of these tables
        Parameters:
        tables -
        schemaName -
        newTenantId -
        extentSizeKB -
      • addNewTenantPartitions

        void addNewTenantPartitions​(java.util.Collection<Table> tables,
                                    java.lang.String schemaName,
                                    int newTenantId)
        Add a new tenant partition to each of the tables in the collection. Idempotent, so can be run to add partitions for existing tenants to new tables
        Parameters:
        tables -
        schemaName -
        newTenantId -
      • removeTenantPartitions

        void removeTenantPartitions​(java.util.Collection<Table> tables,
                                    java.lang.String schemaName,
                                    int tenantId)
        Detach the partition associated with the tenantId from each of the given tables
        Parameters:
        tables -
        schemaName -
        tenantId -
        tenantStagingTable -
      • dropDetachedPartitions

        void dropDetachedPartitions​(java.util.Collection<Table> tables,
                                    java.lang.String schemaName,
                                    int tenantId)
        Drop the tables which were created by the detach partition operation (as part of tenant deprovisioning).
        Parameters:
        tables -
        schemaName -
        tenantId -
      • updateTenantStatus

        void updateTenantStatus​(java.lang.String adminSchemaName,
                                int tenantId,
                                TenantStatus status)
        Update the tenant status
        Parameters:
        adminSchemaName -
        tenantId -
        status -
      • createSequence

        void createSequence​(java.lang.String schemaName,
                            java.lang.String sequenceName,
                            long startWith,
                            int cache,
                            int incrementBy)
        Parameters:
        schemaName -
        sequenceName -
        startWith - the START WITH value for the sequence
        cache - the sequence CACHE value
      • dropSequence

        void dropSequence​(java.lang.String schemaName,
                          java.lang.String sequenceName)
        Parameters:
        schemaName -
        sequenceName -
      • alterSequenceRestartWith

        void alterSequenceRestartWith​(java.lang.String schemaName,
                                      java.lang.String sequenceName,
                                      long restartWith,
                                      int cache,
                                      int incrementBy)
        Sets/resets the sequence to start with the given value.
        Parameters:
        schemaName -
        sequenceName -
        restartWith -
        cache -
      • grantObjectPrivileges

        void grantObjectPrivileges​(java.lang.String schemaName,
                                   java.lang.String tableName,
                                   java.util.Collection<Privilege> privileges,
                                   java.lang.String toUser)
        Grant the list of privileges on the named object to the user. This is a general purpose method which can be used to specify privileges for any object type which doesn't need the object type to be specified in the grant DDL.
        Parameters:
        schemaName -
        tableName -
        privileges -
        toUser -
      • grantProcedurePrivileges

        void grantProcedurePrivileges​(java.lang.String schemaName,
                                      java.lang.String procedureName,
                                      java.util.Collection<Privilege> privileges,
                                      java.lang.String toUser)
        Grant the collection of privileges on the named procedure to the user
        Parameters:
        schemaName -
        procedureName -
        privileges -
        toUser -
      • grantVariablePrivileges

        void grantVariablePrivileges​(java.lang.String schemaName,
                                     java.lang.String variableName,
                                     java.util.Collection<Privilege> privileges,
                                     java.lang.String toUser)
        Grant the collection of privileges on the named variable to the user
        Parameters:
        schemaName -
        variableName -
        privileges -
        toUser -
      • grantSequencePrivileges

        void grantSequencePrivileges​(java.lang.String schemaName,
                                     java.lang.String objectName,
                                     java.util.Collection<Privilege> group,
                                     java.lang.String toUser)
        Grant the collection of privileges on the named variable to the user
        Parameters:
        schemaName -
        objectName -
        group -
        toUser -
      • grantSchemaUsage

        void grantSchemaUsage​(java.lang.String schemaName,
                              java.lang.String grantToUser)
        Grants USAGE on the given schemaName to the given user
        Parameters:
        schemaName -
      • grantAllSequenceUsage

        void grantAllSequenceUsage​(java.lang.String schemaName,
                                   java.lang.String grantToUser)
        Grant access to all sequences in the named schema
        Parameters:
        schemaName -
        grantToUser -
      • runStatement

        <T> T runStatement​(IDatabaseSupplier<T> supplier)
        Run the given supplier statement against the database represented by this adapter
        Type Parameters:
        T -
        Parameters:
        supplier -
        Returns:
      • runStatement

        void runStatement​(IDatabaseStatement statement)
        Run the given statement against the database represented by this adapter
        Parameters:
        statement -
      • doesTableExist

        boolean doesTableExist​(java.lang.String schemaName,
                               java.lang.String objectName)
        Check if the table currently exists
        Parameters:
        schemaName -
        objectName -
        Returns:
      • createSchema

        void createSchema​(java.lang.String schemaName)
        Create a database schema
        Parameters:
        schemaName -
      • createUniqueConstraint

        void createUniqueConstraint​(java.lang.String constraintName,
                                    java.util.List<java.lang.String> columns,
                                    java.lang.String schemaName,
                                    java.lang.String name)
        create a unique constraint on a table.
        Parameters:
        constraintName -
        columns -
        schemaName -
        name -
      • checkCompatibility

        boolean checkCompatibility​(java.lang.String adminSchema)
        checks connectivity to the database and that it is compatible
        Parameters:
        adminSchema -
        Returns:
      • useSessionVariable

        default boolean useSessionVariable()
        Returns:
        a false, if not used, or true if used with the persistence layer.
      • createOrReplaceFunction

        void createOrReplaceFunction​(java.lang.String schemaName,
                                     java.lang.String objectName,
                                     java.util.function.Supplier<java.lang.String> supplier)
        creates or replaces the SQL function
        Parameters:
        schemaName -
        objectName -
        supplier -
      • dropFunction

        void dropFunction​(java.lang.String schemaName,
                          java.lang.String functionName)
        drops a given function
        Parameters:
        schemaName -
        functionName -
      • grantFunctionPrivileges

        void grantFunctionPrivileges​(java.lang.String schemaName,
                                     java.lang.String functionName,
                                     java.util.Collection<Privilege> privileges,
                                     java.lang.String toUser)
        grants permissions on a given function
        Parameters:
        schemaName -
        functionName -
        privileges -
        toUser -
      • dropTenantTablespace

        void dropTenantTablespace​(int tenantId)
        Drop the tablespace associated with the given tenantId
        Parameters:
        tenantId -
      • disableForeignKey

        void disableForeignKey​(java.lang.String schemaName,
                               java.lang.String tableName,
                               java.lang.String constraintName)
        Disable the FK with the given constraint name
        Parameters:
        tableName -
        constraintName -
      • dropForeignKey

        void dropForeignKey​(java.lang.String schemaName,
                            java.lang.String tableName,
                            java.lang.String constraintName)
        Drop the FK on the table with the given constraint name
        Parameters:
        schemaName -
        tableName -
        constraintName -
      • enableForeignKey

        void enableForeignKey​(java.lang.String schemaName,
                              java.lang.String tableName,
                              java.lang.String constraintName)
        Enable the FK with the given constraint name
        Parameters:
        schemaName -
        tableName -
        constraintName -
      • setIntegrityOff

        void setIntegrityOff​(java.lang.String schemaName,
                             java.lang.String tableName)
        Parameters:
        schemaName -
        tableName -
      • setIntegrityUnchecked

        void setIntegrityUnchecked​(java.lang.String schemaName,
                                   java.lang.String tableName)
        Parameters:
        schemaName -
        tableName -
      • alterTableColumnIdentityCache

        void alterTableColumnIdentityCache​(java.lang.String schemaName,
                                           java.lang.String objectName,
                                           java.lang.String columnName,
                                           int cache)
        Change the CACHE value of the named identity generated always column
        Parameters:
        schemaName -
        objectName -
        columnName -
        cache -
      • dropIndex

        void dropIndex​(java.lang.String schemaName,
                       java.lang.String indexName)
        Drop the named index
        Parameters:
        schemaName -
        indexName -
      • createView

        void createView​(java.lang.String schemaName,
                        java.lang.String objectName,
                        java.lang.String selectClause)
        Create the view as defined by the selectClause
        Parameters:
        schemaName -
        objectName -
        selectClause -
      • dropView

        void dropView​(java.lang.String schemaName,
                      java.lang.String objectName)
        Drop the view from the database
        Parameters:
        schemaName -
        objectName -
      • createOrReplaceView

        void createOrReplaceView​(java.lang.String schemaName,
                                 java.lang.String objectName,
                                 java.lang.String selectClause)
        Create or replace the view
        Parameters:
        schemaName -
        objectName -
        selectClause -
      • listSchemaObjects

        java.util.List<SchemaInfoObject> listSchemaObjects​(java.lang.String schemaName)
        List the objects present in the given schema
        Parameters:
        schemaName -
        Returns: