Class DBAdaptor

    • Method Detail

      • dropTable

        public final void dropTable​(Connection conn,
                                    TableElement t)
        Deletes table from RDBMS.
        Parameters:
        conn - Connection to use.
        t - TableElement metadata of deleting table provided by Celesta.
      • userTablesExist

        public final boolean userTablesExist()
        Returns true in that and only that case if DB contains user tables (i.e. DB is not empty).
      • createSchemaIfNotExists

        public final void createSchemaIfNotExists​(String name)
        Creates DB schema with the specified name if such didn't exist before.
        Parameters:
        name - schema name.
      • createColumn

        public final void createColumn​(Connection conn,
                                       Column<?> c)
        Adds a new column to the table.
        Parameters:
        conn - DB connection
        c - column
      • getUpdateRecordStatement

        public final PreparedStatement getUpdateRecordStatement​(Connection conn,
                                                                BasicTable t,
                                                                boolean[] equalsMask,
                                                                boolean[] nullsMask,
                                                                List<ParameterSetter> program,
                                                                String where)
        Builds prepared statement for records UPDATE.

        equalsMask[columnIndex] should contain true for the column with index equal to columnIndex to take part in the evaluation.
        If nullsMask[columnIndex] contains true IS NULL check has a priority above program[columnIndex] check - column = ?.
        Parameters:
        conn - DB connection
        t - updatable table
        equalsMask - equals mask
        nullsMask - nulls mask
        program - collects parameter predicates
        where - WHERE clause
      • createIndex

        public final void createIndex​(Connection conn,
                                      Index index)
        Creates a table index in the DB.
        Parameters:
        conn - DB connection
        index - table index
      • createFK

        public final void createFK​(Connection conn,
                                   ForeignKey fk)
        Creates a foreign key in the DB.
        Parameters:
        conn - DB connection
        fk - foreign key
      • dropIndex

        public final void dropIndex​(Grain g,
                                    DbIndexInfo dBIndexInfo)
        Removes table index in the grain.
        Parameters:
        g - Grain
        dBIndexInfo - Information on index
      • getRecordSetStatement

        public final PreparedStatement getRecordSetStatement​(Connection conn,
                                                             FromClause from,
                                                             String whereClause,
                                                             String orderBy,
                                                             long offset,
                                                             long rowCount,
                                                             Set<String> fields)
        Returns PreparedStatement containing a filtered set of entries.
        Parameters:
        conn - Connection
        from - Object for forming FROM part of the query
        whereClause - Where clause
        orderBy - Sort order
        offset - Number of entries to skip
        rowCount - Number of entries to return (limit filter)
        fields - Requested columns. If none are provided all columns are requested
      • getSetCountStatement

        public final PreparedStatement getSetCountStatement​(Connection conn,
                                                            FromClause from,
                                                            String whereClause)
        Builds a SELECT COUNT statement.
        Parameters:
        conn - Connection
        from - From clause
        whereClause - Where clause
      • dropTrigger

        public final void dropTrigger​(Connection conn,
                                      TriggerQuery query)
        Drops a trigger from DB.
        Parameters:
        conn - Connection
        query - Trigger query
      • createPK

        public final void createPK​(Connection conn,
                                   TableElement t)
        Creates primary key on a table.
        Parameters:
        conn - DB connection
        t - table
      • createView

        public final void createView​(Connection conn,
                                     View v)
        Creates a view in the DB based on metadata.
        Parameters:
        conn - DB connection
        v - View
      • dropTableTriggersForMaterializedViews

        public final void dropTableTriggersForMaterializedViews​(Connection conn,
                                                                BasicTable t)
      • createTableTriggersForMaterializedViews

        public final void createTableTriggersForMaterializedViews​(Connection conn,
                                                                  BasicTable t)
      • executeNative

        public final void executeNative​(Connection conn,
                                        String sql)
      • isValidConnection

        public boolean isValidConnection​(Connection conn,
                                         int timeout)
        Checking for connection validity.
        Parameters:
        conn - connection
        timeout - time-out
        Returns:
        true if connection is valid, otherwise false
      • tableString

        public String tableString​(String schemaName,
                                  String tableName)
        Returns template by table name.
        Parameters:
        schemaName - schema name
        tableName - table name
      • sequenceString

        public String sequenceString​(String schemaName,
                                     String sequenceName)
        Returns template by sequence name.
        Parameters:
        schemaName - schema name
        sequenceName - sequence name
      • pkConstraintString

        public String pkConstraintString​(TableElement tableElement)
        Returns DB specific PK constraint name for a table element.
        Parameters:
        tableElement - table element
      • createTable

        public void createTable​(Connection conn,
                                TableElement te)
        Creates a table "from scratch" in the database.
        Parameters:
        conn - Connection
        te - Table for creation. tables also in case if such table exists.
      • getColumns

        public Set<String> getColumns​(Connection conn,
                                      TableElement t)
        Returns a set of column names for a specific table.
        Parameters:
        conn - DB connection
        t - Table to look the columns in.
      • dropFK

        public void dropFK​(Connection conn,
                           String schemaName,
                           String tableName,
                           String fkName)
        Drops a foreign key from the database.
        Parameters:
        conn - DB connection
        schemaName - schema name
        tableName - table possessing the foreign key
        fkName - name of foreign key
      • dropParameterizedView

        public void dropParameterizedView​(Connection conn,
                                          String schemaName,
                                          String viewName)
        Drops parameterized view from the database.
        Parameters:
        conn - DB connection
        schemaName - schema name
        viewName - view name
      • getViewList

        public List<String> getViewList​(Connection conn,
                                        Grain g)
        Returns list of view names in the grain.
        Parameters:
        conn - DB connection
        g - Grain for which the list of view names have to be returned.
      • getCallFunctionSql

        public String getCallFunctionSql​(ParameterizedView pv)
        Prepares a function call expression.
        Parameters:
        pv - current parameterized view
      • createSequence

        public void createSequence​(Connection conn,
                                   SequenceElement s)
        Creates a sequence in the database.
        Parameters:
        conn - DB connection
        s - sequence element
      • alterSequence

        public void alterSequence​(Connection conn,
                                  SequenceElement s)
        Alters sequence in the database.
        Parameters:
        conn - DB connection
        s - sequence element
      • dropSequence

        public void dropSequence​(Connection conn,
                                 SequenceElement s)
        Drops sequence from the database.
        Parameters:
        conn - DB connection
        s - sequence element
      • dropView

        public void dropView​(Connection conn,
                             String schemaName,
                             String viewName)
        Drops view.
        Parameters:
        conn - DB connection
        schemaName - grain name
        viewName - view name
      • createSysObjects

        public void createSysObjects​(Connection conn,
                                     String sysSchemaName)
        Creates or recreates other system objects (stored procedures, functions) needed for Celesta functioning on current RDBMS.
        Parameters:
        conn - DB connection
        sysSchemaName - system schema name
      • translateDate

        public String translateDate​(String date)
        Translates Celesta date literal to the one from specific database.
        Specified by:
        translateDate in interface QueryBuildingHelper
        Parameters:
        date - Date literal
      • getTriggerBody

        public Optional<String> getTriggerBody​(Connection conn,
                                               TriggerQuery query)
        Returns body of the trigger existing in the database.
        Parameters:
        conn - Connection
        query - Trigger query
        Returns:
        Trigger body or empty optional if not exists.
      • initDataForMaterializedView

        public void initDataForMaterializedView​(Connection conn,
                                                MaterializedView mv)
        Initializes data for a newly crated materialized view.
        Parameters:
        conn - connection
        mv - current materialized view
      • selectStaticStrings

        public List<String> selectStaticStrings​(List<String> data,
                                                String columnName,
                                                String orderByDirection)
        Returned strings ordered by the database according to the current collation. This method is required for operations that depend on collation rules.
        Specified by:
        selectStaticStrings in interface StaticDataAdaptor
        Parameters:
        data - List of String to select
        columnName - name of result column
        orderByDirection - expression to concatenate after "ORDER BY" (ASC or DESC)
        Returns:
        list of strings sorted according to the current collation rule.
      • compareStrings

        public int compareStrings​(String left,
                                  String right)
        Compare strings using database according to current collation rules.
        Specified by:
        compareStrings in interface StaticDataAdaptor
        Parameters:
        left - left string
        right - right string
        Returns:
        result of comparison
      • dropPk

        public void dropPk​(Connection conn,
                           TableElement t,
                           String pkName)
        Drops primary key from the table by using known name of the primary key.
        Parameters:
        conn - DB connection
        t - Table
        pkName - name of the primary key
      • updateColumn

        public void updateColumn​(Connection conn,
                                 Column<?> c,
                                 DbColumnInfo actual)
        Updates a table column.
        Parameters:
        conn - DB connection
        c - Column to update
        actual - Actual column info
      • getNavigationStatement

        public abstract PreparedStatement getNavigationStatement​(Connection conn,
                                                                 FromClause from,
                                                                 String orderBy,
                                                                 String navigationWhereClause,
                                                                 Set<String> fields,
                                                                 long offset)
        Returns navigable PreparedStatement by a filtered set of records.
        Parameters:
        conn - Connection
        from - From clause
        orderBy - Sorting order (ascending or descending)
        navigationWhereClause - Navigable set condition (from current record)
        fields - Fields of selection
        offset - First record offset
      • tableExists

        public abstract boolean tableExists​(Connection conn,
                                            String schema,
                                            String name)
        Checks if table exists in the DB.
        Parameters:
        conn - DB connection
        schema - schema name
        name - table name
      • triggerExists

        public abstract boolean triggerExists​(Connection conn,
                                              TriggerQuery query)
                                       throws SQLException
        Checks if trigger exists in the DB.
        Parameters:
        conn - DB connection.
        query - trigger query parameters
        Throws:
        SQLException - thrown if resulting query fails
      • getOneRecordStatement

        public abstract PreparedStatement getOneRecordStatement​(Connection conn,
                                                                TableElement t,
                                                                String where,
                                                                Set<String> fields)
        Creates a PreparedStatement object for a SELECT statement containing at most one record.
        Parameters:
        conn - DB connection
        t - table
        where - WHERE condition
        fields - fields of selection
      • getOneFieldStatement

        public abstract PreparedStatement getOneFieldStatement​(Connection conn,
                                                               Column<?> c,
                                                               String where)
        Creates a PreparedStatement object for a SELECT statement of a single column containing at most one record.
        Parameters:
        conn - DB connection
        c - column to select
        where - WHERE condition
      • deleteRecordSetStatement

        public abstract PreparedStatement deleteRecordSetStatement​(Connection conn,
                                                                   TableElement t,
                                                                   String where)
        Creates a PreparedStatement object for a DELETE statement for deleting a set of records that satisfy a condition.
        Parameters:
        conn - DB connection
        t - table
        where - condition
      • getInsertRecordStatement

        public abstract PreparedStatement getInsertRecordStatement​(Connection conn,
                                                                   BasicTable t,
                                                                   boolean[] nullsMask,
                                                                   List<ParameterSetter> program)
        Creates a PreparedStatement object for an INSERT statement to insert a record into a table.
        Parameters:
        conn - DB connection
        t - table
        nullsMask - null-flags (if set the corresponding field at n-th position becomes null)
        program - collects parameters that can be set with the query
      • getCurrentIdent

        public abstract int getCurrentIdent​(Connection conn,
                                            BasicTable t)
        Returns current identity value for the table.
        Parameters:
        conn - DB connection
        t - table
      • getDeleteRecordStatement

        public abstract PreparedStatement getDeleteRecordStatement​(Connection conn,
                                                                   TableElement t,
                                                                   String where)
        Creates a PreparedStatement object for a DELETE statement for deleting a set of records that satisfy a condition.
        Parameters:
        conn - DB connection
        t - table
        where - condition (can be null)
      • getColumnInfo

        public abstract DbColumnInfo getColumnInfo​(Connection conn,
                                                   Column<?> c)
        Returns information on a column.
        Parameters:
        conn - DB connection
        c - column
      • getPKInfo

        public abstract DbPkInfo getPKInfo​(Connection conn,
                                           TableElement t)
        Returns information on the primary key of a table.
        Parameters:
        conn - DB connection
        t - Table that the information on the primary key has to be returned from
      • getFKInfo

        public abstract List<DbFkInfo> getFKInfo​(Connection conn,
                                                 Grain g)
        Returns information on the foreign keys from grain.
        Parameters:
        conn - DB connection
        g - grain name
        Returns:
        list where each item contain information on a separate foreign key
      • getIndices

        public abstract Map<String,​DbIndexInfo> getIndices​(Connection conn,
                                                                 Grain g)
        Returns a set of indices referring to tables specified in the indicated grain.
        Parameters:
        conn - DB connection
        g - Grain the tables of which have to be traversed for the indices.
      • getParameterizedViewList

        public abstract List<String> getParameterizedViewList​(Connection conn,
                                                              Grain g)
        Get names of existing parameterized views.
        Parameters:
        conn - connection
        g - current grain
      • getDBPid

        public abstract int getDBPid​(Connection conn)
        Returns process id of current database connection.
        Parameters:
        conn - DB connection
      • getType

        public abstract DBType getType()
        Returns current database type. E.g. H2, POSTGRESQL etc.
      • nextSequenceValue

        public abstract long nextSequenceValue​(Connection conn,
                                               SequenceElement s)
        Retrieves next value from the sequence.
        Parameters:
        conn - DB connection
        s - sequence
      • sequenceExists

        public abstract boolean sequenceExists​(Connection conn,
                                               String schema,
                                               String name)
        Checks if sequence exists in the DB.
        Parameters:
        conn - DB connection
        schema - schema name
        name - sequence name