Interface IDatabaseAdapter

    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      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
      void applyDistributionRules​(java.lang.String schemaName, java.lang.String tableName, DistributionContext distributionContext)
      Apply any distribution rules configured for the named table
      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.util.List<java.lang.String> columns, boolean enforced)  
      void createIndex​(java.lang.String schemaName, java.lang.String tableName, java.lang.String indexName, java.util.List<OrderedColumnDef> indexColumns)  
      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 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.util.List<ColumnBase> columns, PrimaryKeyDef primaryKey, IdentityDef identity, java.lang.String tablespaceName, java.util.List<With> withs, java.util.List<CheckConstraint> checkConstraints, DistributionContext distributionContext)
      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 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.util.List<OrderedColumnDef> indexColumns, java.util.List<java.lang.String> includeColumns, DistributionContext distributionContext)
      Create a unique index
      void createUniqueIndex​(java.lang.String schemaName, java.lang.String tableName, java.lang.String indexName, java.util.List<OrderedColumnDef> indexColumns, DistributionContext distributionContext)
      Create a unique index
      void createView​(java.lang.String schemaName, java.lang.String objectName, java.lang.String selectClause)
      Create the view as defined by the selectClause
      void disableForeignKey​(java.lang.String schemaName, java.lang.String tableName, java.lang.String constraintName)
      Disable the FK with the given constraint name
      void distributeFunction​(java.lang.String schemaName, java.lang.String functionName, int distributeByParamNumber)
      For Citus, functions can be distributed by one of their parameters (typically the first)
      boolean doesForeignKeyConstraintExist​(java.lang.String schemaName, java.lang.String tableName, java.lang.String constraintName)
      Does the named foreign key constraint exist
      boolean doesTableExist​(java.lang.String schemaName, java.lang.String objectName)
      Check if the table currently exists
      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 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
      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 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)  
      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 -
      • createTable

        void createTable​(java.lang.String schemaName,
                         java.lang.String name,
                         java.util.List<ColumnBase> columns,
                         PrimaryKeyDef primaryKey,
                         IdentityDef identity,
                         java.lang.String tablespaceName,
                         java.util.List<With> withs,
                         java.util.List<CheckConstraint> checkConstraints,
                         DistributionContext distributionContext)
        Build the create table DDL
        Parameters:
        schemaName -
        name -
        columns -
        primaryKey -
        identity -
        tablespaceName -
        withs -
        checkConstraints -
        distributionContext -
      • applyDistributionRules

        void applyDistributionRules​(java.lang.String schemaName,
                                    java.lang.String tableName,
                                    DistributionContext distributionContext)
        Apply any distribution rules configured for the named table
        Parameters:
        schemaName -
        tableName -
        distributionContext -
      • 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 -
      • 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.util.List<OrderedColumnDef> indexColumns,
                               java.util.List<java.lang.String> includeColumns,
                               DistributionContext distributionContext)
        Create a unique index
        Parameters:
        schemaName -
        tableName -
        indexName -
        indexColumns -
        includeColumns -
        distributionContext -
      • createUniqueIndex

        void createUniqueIndex​(java.lang.String schemaName,
                               java.lang.String tableName,
                               java.lang.String indexName,
                               java.util.List<OrderedColumnDef> indexColumns,
                               DistributionContext distributionContext)
        Create a unique index
        Parameters:
        schemaName -
        tableName -
        indexName -
        indexColumns -
        distributionContext -
      • createIndex

        void createIndex​(java.lang.String schemaName,
                         java.lang.String tableName,
                         java.lang.String indexName,
                         java.util.List<OrderedColumnDef> indexColumns)
        Parameters:
        schemaName -
        tableName -
        indexName -
        indexColumns -
      • 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.util.List<java.lang.String> columns,
                                        boolean enforced)
        Parameters:
        constraintName -
        schemaName -
        name -
        targetSchema -
        targetTable -
        targetColumnName -
        columns -
        enforced -
      • 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 -
      • distributeFunction

        void distributeFunction​(java.lang.String schemaName,
                                java.lang.String functionName,
                                int distributeByParamNumber)
        For Citus, functions can be distributed by one of their parameters (typically the first)
        Parameters:
        schemaName -
        functionName -
        distributeByParamNumber -
      • 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 -
      • 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 -
      • doesForeignKeyConstraintExist

        boolean doesForeignKeyConstraintExist​(java.lang.String schemaName,
                                              java.lang.String tableName,
                                              java.lang.String constraintName)
        Does the named foreign key constraint exist
        Parameters:
        schemaName -
        tableName -
        constraintName -
        Returns:
      • 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: