Class MsSql

    • Constructor Detail

      • MsSql

        public MsSql()
    • Method Detail

      • isMatchingUrl

        public boolean isMatchingUrl​(java.lang.String url)
        Description copied from interface: Backend
        Checks whether the backend belongs to the given jdbc url.
        If multiple backend implementations are provided for the same database type, only one backend should match the URL. The others must be selected via name.
        Parameters:
        url - the jdbc url
        Returns:
        true if matches
      • getName

        public java.lang.String getName()
        Description copied from interface: Backend
        Gets the name of the backend.
        Returns:
        the name
      • getDriverClassName

        public java.lang.String getDriverClassName()
        Description copied from interface: Backend
        Gets the JDBC driver class name.
        Returns:
        the class name
      • getBackendId

        public java.lang.String getBackendId​(java.sql.Connection connection)
        Description copied from interface: Backend
        Determines the unique id or name used by the backend for a given connection.

        Useful to figure out the corresponding ManagedConnection from the backend's logfiles.

        Parameters:
        connection - the jdbc connection
        Returns:
        the backend id, null if none
      • buildSelectSql

        public void buildSelectSql​(java.lang.StringBuilder sqlBuilder,
                                   boolean writeLock,
                                   int limit,
                                   int offset)
        Description copied from interface: Backend
        Creates a select statement string from an inner sql string.

        sqlBuilder is anything as FROM... WHERE... ORDER BY....
        It is decorated with a leading SELECT plus optional clauses like for the given parameters.

        Specified by:
        buildSelectSql in interface Backend
        Overrides:
        buildSelectSql in class AbstractSql2003Backend
        Parameters:
        sqlBuilder - the sql builder, initially containing the inner sql without leading SELECT.
        writeLock - true select should write lock
        limit - the limit value, ≤ 0 if no limit clause
        offset - the offset value, ≤ 0 if no offset clause
      • setTrailingSelectParameters

        public int setTrailingSelectParameters​(BackendPreparedStatement stmt,
                                               int index,
                                               int limit,
                                               int offset)
        Description copied from interface: Backend
        Sets optional parameters after applying the original parameters.
        Specified by:
        setTrailingSelectParameters in interface Backend
        Overrides:
        setTrailingSelectParameters in class AbstractSql2003Backend
        Parameters:
        stmt - the prepared statement
        index - the first parameter index
        limit - the limit value, ≤ 0 if no limit clause
        offset - the offset value, ≤ 0 if no offset clause
        Returns:
        the next parameter index
      • getMaxSize

        public int getMaxSize​(SqlType sqlType)
        Description copied from interface: Backend
        Returns the maximum size for a given SQL-type.
        Specified by:
        getMaxSize in interface Backend
        Overrides:
        getMaxSize in class AbstractBackend
        Parameters:
        sqlType - the SQL-type
        Returns:
        the maximum size, 0 if unlimited, -1 if type without size
      • sqlTypeToString

        public java.lang.String sqlTypeToString​(SqlType sqlType,
                                                int size)
        Description copied from interface: Backend
        Converts the java SQL-type to the database type name.
        Specified by:
        sqlTypeToString in interface Backend
        Overrides:
        sqlTypeToString in class AbstractBackend
        Parameters:
        sqlType - the java sql type
        size - the column's size
        Returns:
        the corresponding type string
      • jdbcTypeToSqlType

        public SqlType[] jdbcTypeToSqlType​(int jdbcType,
                                           int size,
                                           int scale)
        Description copied from interface: Backend
        Converts the JDBC data type integer to a tentackle backend SqlTypes.

        There may be more than one sqltype returned!

        Specified by:
        jdbcTypeToSqlType in interface Backend
        Overrides:
        jdbcTypeToSqlType in class AbstractBackend
        Parameters:
        jdbcType - the jdbc data type
        size - the column size
        scale - the column's scale
        Returns:
        the SqlTypes, empty array if no mapping available or no exact match (not generated by TT)
        See Also:
        Types
      • sqlRenameIndex

        public java.lang.String sqlRenameIndex​(java.lang.String tableName,
                                               java.lang.String oldIndexName,
                                               java.lang.String newIndexName)
        Description copied from interface: Backend
        Generates sql code to rename an index.
        Specified by:
        sqlRenameIndex in interface Backend
        Overrides:
        sqlRenameIndex in class AbstractBackend
        Parameters:
        tableName - the tablename
        oldIndexName - the old column name
        newIndexName - the new column name
        Returns:
        the SQL code, null if not supported by the backend and we need to drop and create
      • extractWhereClause

        protected java.lang.String extractWhereClause​(java.lang.String sql,
                                                      int whereOffset)
        Description copied from class: AbstractBackend
        Extracts the where clause from a given sql.
        Overrides:
        extractWhereClause in class AbstractBackend
        Parameters:
        sql - the sql statement
        whereOffset - the location of WHERE in sql
        Returns:
        the where clause without the keyword WHERE
      • isDropIfExistsSupported

        protected boolean isDropIfExistsSupported()
        Description copied from class: AbstractBackend
        Adds "IF EXISTS" to drop clauses, if supported by the backend.
        Makes migration a little more robust in case the same SQL scripts are applied to different databases than those used to generate the migration scripts for.
        Overrides:
        isDropIfExistsSupported in class AbstractBackend
        Returns:
        true if supported