Class DB2390Dialect

  • All Implemented Interfaces:
    ConversionContext
    Direct Known Subclasses:
    DB2390V8Dialect

    public class DB2390Dialect
    extends DB2Dialect
    An SQL dialect for DB2/390. This class provides support for DB2 Universal Database for OS/390, also known as DB2/390.
    • Constructor Detail

      • DB2390Dialect

        public DB2390Dialect()
    • Method Detail

      • supportsSequences

        public boolean supportsSequences()
        Description copied from class: Dialect
        Does this dialect support sequences?
        Overrides:
        supportsSequences in class DB2Dialect
        Returns:
        True if sequences supported; false otherwise.
      • getQuerySequencesString

        public java.lang.String getQuerySequencesString()
        Description copied from class: Dialect
        Get the select command used retrieve the names of all sequences.
        Overrides:
        getQuerySequencesString in class DB2Dialect
        Returns:
        The select command; or null if sequences are not supported.
        See Also:
        SchemaUpdate
      • supportsLimit

        public boolean supportsLimit()
        Description copied from class: Dialect
        Does this dialect support some form of limiting query results via a SQL clause?
        Overrides:
        supportsLimit in class DB2Dialect
        Returns:
        True if this dialect supports some form of LIMIT.
      • supportsLimitOffset

        public boolean supportsLimitOffset()
        Description copied from class: Dialect
        Does this dialect's LIMIT support (if any) additionally support specifying an offset?
        Overrides:
        supportsLimitOffset in class Dialect
        Returns:
        True if the dialect supports an offset within the limit support.
      • useMaxForLimit

        public boolean useMaxForLimit()
        Description copied from class: Dialect
        Does the LIMIT clause take a "maximum" row number instead of a total number of returned rows?

        This is easiest understood via an example. Consider you have a table with 20 rows, but you only want to retrieve rows number 11 through 20. Generally, a limit with offset would say that the offset = 11 and the limit = 10 (we only want 10 rows at a time); this is specifying the total number of returned rows. Some dialects require that we instead specify offset = 11 and limit = 20, where 20 is the "last" row we want relative to offset (i.e. total number of rows = 20 - 11 = 9)

        So essentially, is limit relative from offset? Or is limit absolute?

        Overrides:
        useMaxForLimit in class DB2Dialect
        Returns:
        True if limit is relative from offset; false otherwise.
      • supportsVariableLimit

        public boolean supportsVariableLimit()
        Description copied from class: Dialect
        Does this dialect support bind variables (i.e., prepared statement parameters) for its limit/offset?
        Overrides:
        supportsVariableLimit in class DB2Dialect
        Returns:
        True if bind variables can be used; false otherwise.
      • getLimitString

        public java.lang.String getLimitString​(java.lang.String sql,
                                               int offset,
                                               int limit)
        Description copied from class: Dialect
        Given a limit and an offset, apply the limit clause to the query.
        Overrides:
        getLimitString in class DB2Dialect
        Parameters:
        sql - The query to which to apply the limit.
        offset - The offset of the limit
        limit - The limit of the limit ;)
        Returns:
        The modified query statement with the limit applied.
      • getLimitHandler

        public LimitHandler getLimitHandler()
        Description copied from class: Dialect
        Returns the delegate managing LIMIT clause.
        Overrides:
        getLimitHandler in class DB2Dialect
        Returns:
        LIMIT clause delegate.