Class DBDictionary

    • Field Detail

      • blobBufferSize

        public int blobBufferSize
      • clobBufferSize

        public int clobBufferSize
      • platform

        public String platform
      • databaseProductName

        public String databaseProductName
      • databaseProductVersion

        public String databaseProductVersion
      • driverVendor

        public String driverVendor
      • createPrimaryKeys

        public boolean createPrimaryKeys
      • constraintNameMode

        public String constraintNameMode
      • maxTableNameLength

        public int maxTableNameLength
      • maxColumnNameLength

        public int maxColumnNameLength
      • maxConstraintNameLength

        public int maxConstraintNameLength
      • maxIndexNameLength

        public int maxIndexNameLength
      • maxIndexesPerTable

        public int maxIndexesPerTable
      • supportsForeignKeys

        public boolean supportsForeignKeys
      • supportsParameterInSelect

        public boolean supportsParameterInSelect
      • supportsForeignKeysComposite

        public boolean supportsForeignKeysComposite
      • supportsUniqueConstraints

        public boolean supportsUniqueConstraints
      • supportsDeferredConstraints

        public boolean supportsDeferredConstraints
      • supportsRestrictDeleteAction

        public boolean supportsRestrictDeleteAction
      • supportsCascadeDeleteAction

        public boolean supportsCascadeDeleteAction
      • supportsNullDeleteAction

        public boolean supportsNullDeleteAction
      • supportsNullUniqueColumn

        public boolean supportsNullUniqueColumn
      • supportsDefaultDeleteAction

        public boolean supportsDefaultDeleteAction
      • supportsRestrictUpdateAction

        public boolean supportsRestrictUpdateAction
      • supportsCascadeUpdateAction

        public boolean supportsCascadeUpdateAction
      • supportsNullUpdateAction

        public boolean supportsNullUpdateAction
      • supportsDefaultUpdateAction

        public boolean supportsDefaultUpdateAction
      • supportsAlterTableWithAddColumn

        public boolean supportsAlterTableWithAddColumn
      • supportsAlterTableWithDropColumn

        public boolean supportsAlterTableWithDropColumn
      • supportsComments

        public boolean supportsComments
      • supportsGetGeneratedKeys

        public Boolean supportsGetGeneratedKeys
      • reservedWords

        public String reservedWords
      • systemSchemas

        public String systemSchemas
      • systemTables

        public String systemTables
      • selectWords

        public String selectWords
      • fixedSizeTypeNames

        public String fixedSizeTypeNames
      • schemaCase

        public String schemaCase
      • javaToDbColumnNameProcessing

        public String javaToDbColumnNameProcessing
      • setStringRightTruncationOn

        public boolean setStringRightTruncationOn
      • fullResultCollectionInOrderByRelation

        public boolean fullResultCollectionInOrderByRelation
      • disableSchemaFactoryColumnTypeErrors

        public boolean disableSchemaFactoryColumnTypeErrors
      • disableAlterSeqenceIncrementBy

        public boolean disableAlterSeqenceIncrementBy
      • validationSQL

        public String validationSQL
      • closePoolSQL

        public String closePoolSQL
      • initializationSQL

        public String initializationSQL
      • joinSyntax

        public int joinSyntax
      • outerJoinClause

        public String outerJoinClause
      • innerJoinClause

        public String innerJoinClause
      • crossJoinClause

        public String crossJoinClause
      • requiresConditionForCrossJoin

        public boolean requiresConditionForCrossJoin
      • forUpdateClause

        public String forUpdateClause
      • tableForUpdateClause

        public String tableForUpdateClause
      • distinctCountColumnSeparator

        public String distinctCountColumnSeparator
      • supportsSelectForUpdate

        public boolean supportsSelectForUpdate
      • supportsLockingWithDistinctClause

        public boolean supportsLockingWithDistinctClause
      • supportsLockingWithMultipleTables

        public boolean supportsLockingWithMultipleTables
      • supportsLockingWithOrderClause

        public boolean supportsLockingWithOrderClause
      • supportsLockingWithOuterJoin

        public boolean supportsLockingWithOuterJoin
      • supportsLockingWithInnerJoin

        public boolean supportsLockingWithInnerJoin
      • supportsLockingWithSelectRange

        public boolean supportsLockingWithSelectRange
      • supportsQueryTimeout

        public boolean supportsQueryTimeout
      • allowQueryTimeoutOnFindUpdate

        public boolean allowQueryTimeoutOnFindUpdate
      • simulateLocking

        public boolean simulateLocking
      • supportsSubselect

        public boolean supportsSubselect
      • supportsCorrelatedSubselect

        public boolean supportsCorrelatedSubselect
      • supportsHaving

        public boolean supportsHaving
      • supportsSelectStartIndex

        public boolean supportsSelectStartIndex
      • supportsSelectEndIndex

        public boolean supportsSelectEndIndex
      • rangePosition

        public int rangePosition
      • requiresAliasForSubselect

        public boolean requiresAliasForSubselect
      • requiresTargetForDelete

        public boolean requiresTargetForDelete
      • allowsAliasInBulkClause

        public boolean allowsAliasInBulkClause
      • supportsMultipleNontransactionalResultSets

        public boolean supportsMultipleNontransactionalResultSets
      • requiresSearchStringEscapeForLike

        public boolean requiresSearchStringEscapeForLike
      • searchStringEscape

        public String searchStringEscape
      • requiresCastForMathFunctions

        public boolean requiresCastForMathFunctions
      • requiresCastForComparisons

        public boolean requiresCastForComparisons
      • supportsModOperator

        public boolean supportsModOperator
      • supportsXMLColumn

        public boolean supportsXMLColumn
      • supportsCaseConversionForLob

        public boolean supportsCaseConversionForLob
      • reportsSuccessNoInfoOnBatchUpdates

        public boolean reportsSuccessNoInfoOnBatchUpdates
      • supportsSelectFromFinalTable

        public boolean supportsSelectFromFinalTable
      • supportsSimpleCaseExpression

        public boolean supportsSimpleCaseExpression
      • supportsGeneralCaseExpression

        public boolean supportsGeneralCaseExpression
      • useWildCardForCount

        public boolean useWildCardForCount
      • trimSchemaName

        public boolean trimSchemaName
        Some Databases append whitespace after the schema name
      • castFunction

        public String castFunction
      • toLowerCaseFunction

        public String toLowerCaseFunction
      • toUpperCaseFunction

        public String toUpperCaseFunction
      • stringLengthFunction

        public String stringLengthFunction
      • bitLengthFunction

        public String bitLengthFunction
      • trimLeadingFunction

        public String trimLeadingFunction
      • trimTrailingFunction

        public String trimTrailingFunction
      • trimBothFunction

        public String trimBothFunction
      • concatenateFunction

        public String concatenateFunction
      • concatenateDelimiter

        public String concatenateDelimiter
      • substringFunctionName

        public String substringFunctionName
      • currentDateFunction

        public String currentDateFunction
      • currentTimeFunction

        public String currentTimeFunction
      • currentTimestampFunction

        public String currentTimestampFunction
      • dropTableSQL

        public String dropTableSQL
      • extractDateTimeFieldFunction

        public String extractDateTimeFieldFunction
      • storageLimitationsFatal

        public boolean storageLimitationsFatal
      • storeLargeNumbersAsStrings

        public boolean storeLargeNumbersAsStrings
      • storeCharsAsNumbers

        public boolean storeCharsAsNumbers
      • trimStringColumns

        public boolean trimStringColumns
      • useGetBytesForBlobs

        public boolean useGetBytesForBlobs
      • useSetBytesForBlobs

        public boolean useSetBytesForBlobs
      • useGetObjectForBlobs

        public boolean useGetObjectForBlobs
      • useGetStringForClobs

        public boolean useGetStringForClobs
      • useSetStringForClobs

        public boolean useSetStringForClobs
      • useJDBC4SetBinaryStream

        public boolean useJDBC4SetBinaryStream
      • maxEmbeddedBlobSize

        public int maxEmbeddedBlobSize
      • maxEmbeddedClobSize

        public int maxEmbeddedClobSize
      • inClauseLimit

        public int inClauseLimit
      • roundTimeToMillisec

        @Deprecated
        public boolean roundTimeToMillisec
        Deprecated.
        Use 'dateMillisecondBehavior' instead.
      • booleanRepresentation

        protected BooleanRepresentation booleanRepresentation
        Defines how Boolean and boolean values get represented in OpenJPA. Default to INT_10. for backward compatibility.
      • indexPhysicalForeignKeys

        public boolean indexPhysicalForeignKeys
        Whether an index is generated for a relation that is also a foreign key. Some database systems (e.g. MySQL) will automatically create an index for a foreign key, others (e.g. Oracle, MS-SQL-Server) do not. See also MappingDefaultsImpl._indexPhysicalFK which may disable this feature for backwards compatibility.
      • characterColumnSize

        public int characterColumnSize
      • arrayTypeName

        public String arrayTypeName
      • bigintTypeName

        public String bigintTypeName
      • binaryTypeName

        public String binaryTypeName
      • bitTypeName

        public String bitTypeName
      • blobTypeName

        public String blobTypeName
      • booleanTypeName

        public String booleanTypeName
      • charTypeName

        public String charTypeName
      • clobTypeName

        public String clobTypeName
      • dateTypeName

        public String dateTypeName
      • decimalTypeName

        public String decimalTypeName
      • distinctTypeName

        public String distinctTypeName
      • doubleTypeName

        public String doubleTypeName
      • floatTypeName

        public String floatTypeName
      • integerTypeName

        public String integerTypeName
      • javaObjectTypeName

        public String javaObjectTypeName
      • longVarbinaryTypeName

        public String longVarbinaryTypeName
      • longVarcharTypeName

        public String longVarcharTypeName
      • nullTypeName

        public String nullTypeName
      • numericTypeName

        public String numericTypeName
      • otherTypeName

        public String otherTypeName
      • realTypeName

        public String realTypeName
      • refTypeName

        public String refTypeName
      • smallintTypeName

        public String smallintTypeName
      • structTypeName

        public String structTypeName
      • timeTypeName

        public String timeTypeName
      • timestampTypeName

        public String timestampTypeName
      • timeWithZoneTypeName

        public String timeWithZoneTypeName
      • timestampWithZoneTypeName

        public String timestampWithZoneTypeName
      • tinyintTypeName

        public String tinyintTypeName
      • varbinaryTypeName

        public String varbinaryTypeName
      • varcharTypeName

        public String varcharTypeName
      • xmlTypeName

        public String xmlTypeName
      • xmlTypeEncoding

        public String xmlTypeEncoding
      • uuidTypeName

        public String uuidTypeName
      • getStringVal

        public String getStringVal
      • useSchemaName

        public boolean useSchemaName
      • tableTypes

        public String tableTypes
      • supportsSchemaForGetTables

        public boolean supportsSchemaForGetTables
      • supportsSchemaForGetColumns

        public boolean supportsSchemaForGetColumns
      • supportsNullTableForGetColumns

        public boolean supportsNullTableForGetColumns
      • supportsNullTableForGetPrimaryKeys

        public boolean supportsNullTableForGetPrimaryKeys
      • supportsNullTableForGetIndexInfo

        public boolean supportsNullTableForGetIndexInfo
      • supportsNullTableForGetImportedKeys

        public boolean supportsNullTableForGetImportedKeys
      • useGetBestRowIdentifierForPrimaryKeys

        public boolean useGetBestRowIdentifierForPrimaryKeys
      • requiresAutoCommitForMetaData

        public boolean requiresAutoCommitForMetaData
      • tableLengthIncludesSchema

        public boolean tableLengthIncludesSchema
      • maxAutoAssignNameLength

        public int maxAutoAssignNameLength
      • autoAssignClause

        public String autoAssignClause
      • autoAssignTypeName

        public String autoAssignTypeName
      • supportsAutoAssign

        public boolean supportsAutoAssign
      • lastGeneratedKeyQuery

        public String lastGeneratedKeyQuery
      • nextSequenceQuery

        public String nextSequenceQuery
      • sequenceSQL

        public String sequenceSQL
      • sequenceSchemaSQL

        public String sequenceSchemaSQL
      • sequenceNameSQL

        public String sequenceNameSQL
      • nativeSequenceType

        public int nativeSequenceType
      • invalidColumnWordSet

        public Set<String> invalidColumnWordSet
        reservedWordSet subset that CANNOT be used as valid column names (i.e., without surrounding them with double-quotes).
      • useNativeSequenceCache

        @Deprecated
        public boolean useNativeSequenceCache
        Deprecated.
        This variable was used in 2.1.x and prior releases to indicate that OpenJPA should not use the CACHE clause when getting a native sequence; instead the INCREMENT BY clause gets its value equal to the allocationSize property. Post 2.1.x, code was added to allow said functionality by default (see OPENJPA-1376). For forward compatibility, this variable should not be removed.
      • log

        protected Log log
      • connected

        protected boolean connected
      • isJDBC3

        protected boolean isJDBC3
      • isJDBC4

        protected boolean isJDBC4
      • reservedWordSet

        protected final Set<String> reservedWordSet
      • systemSchemaSet

        protected final Set<String> systemSchemaSet
      • systemTableSet

        protected final Set<String> systemTableSet
      • fixedSizeTypeNameSet

        protected final Set<String> fixedSizeTypeNameSet
      • fractionalTypeNameSet

        public final Set<String> fractionalTypeNameSet
        set of types that might have an optional fraction (sub-second) part.
      • dateFractionDigits

        public int dateFractionDigits
        Default amount of digits for fractional Types. This is not supported/required by every database. This value is only being used if no explicit @Column(scale=n) is set or n is zero. Use @Column(scale=-1) to disable the explicit fraction part in the SQL generator.
        See Also:
        fractionalTypeNameSet, getDateFractionDigits(Column, String)
      • typeModifierSet

        protected final Set<String> typeModifierSet
      • supportsDelimitedIdentifiers

        public Boolean supportsDelimitedIdentifiers
      • leadingDelimiter

        public String leadingDelimiter
      • trailingDelimiter

        public String trailingDelimiter
      • nameConcatenator

        public String nameConcatenator
      • delimitedCase

        public String delimitedCase
      • catalogSeparator

        public String catalogSeparator
      • defaultSchemaName

        protected String defaultSchemaName
      • supportsUuidType

        public boolean supportsUuidType
      • selectWordSet

        protected final Set<String> selectWordSet
        If a native query begins with any of the values found here then it will be treated as a select statement.
      • batchLimit

        public int batchLimit
    • Constructor Detail

      • DBDictionary

        public DBDictionary()
    • Method Detail

      • connectedConfiguration

        public void connectedConfiguration​(Connection conn)
                                    throws SQLException
        This method is called when the dictionary first sees any connection. It is used to initialize dictionary metadata if needed. If you override this method, be sure to call super.connectedConfiguration.
        Throws:
        SQLException
      • configureNamingRules

        protected void configureNamingRules()
        Configures the naming rules for this dictionary. Subclasses should override this method, providing their own naming rules.
      • getNumber

        public Number getNumber​(ResultSet rs,
                                int column)
                         throws SQLException
        Returns the specified column value as an unknown numeric type; we try from the most generic to the least generic.
        Throws:
        SQLException
      • getBoolean

        public boolean getBoolean​(ResultSet rs,
                                  int column)
                           throws SQLException
        Convert the specified column of the SQL ResultSet to the proper java type.
        Throws:
        SQLException
      • getByte

        public byte getByte​(ResultSet rs,
                            int column)
                     throws SQLException
        Convert the specified column of the SQL ResultSet to the proper java type.
        Throws:
        SQLException
      • getBytes

        public byte[] getBytes​(ResultSet rs,
                               int column)
                        throws SQLException
        Convert the specified column of the SQL ResultSet to the proper java type.
        Throws:
        SQLException
      • getChar

        public char getChar​(ResultSet rs,
                            int column)
                     throws SQLException
        Convert the specified column of the SQL ResultSet to the proper java type.
        Throws:
        SQLException
      • getCharacterStream

        public Reader getCharacterStream​(ResultSet rs,
                                         int column)
                                  throws SQLException
        Convert the specified column of the SQL ResultSet to the proper java type.
        Throws:
        SQLException
      • getDouble

        public double getDouble​(ResultSet rs,
                                int column)
                         throws SQLException
        Convert the specified column of the SQL ResultSet to the proper java type.
        Throws:
        SQLException
      • getFloat

        public float getFloat​(ResultSet rs,
                              int column)
                       throws SQLException
        Convert the specified column of the SQL ResultSet to the proper java type.
        Throws:
        SQLException
      • getInt

        public int getInt​(ResultSet rs,
                          int column)
                   throws SQLException
        Convert the specified column of the SQL ResultSet to the proper java type.
        Throws:
        SQLException
      • getLong

        public long getLong​(ResultSet rs,
                            int column)
                     throws SQLException
        Convert the specified column of the SQL ResultSet to the proper java type.
        Throws:
        SQLException
      • getShort

        public short getShort​(ResultSet rs,
                              int column)
                       throws SQLException
        Convert the specified column of the SQL ResultSet to the proper java type.
        Throws:
        SQLException
      • setTyped

        public void setTyped​(PreparedStatement stmnt,
                             int idx,
                             Object val,
                             Column col,
                             int type,
                             JDBCStore store)
                      throws SQLException
        Set a column value into a prepared statement.
        Parameters:
        stmnt - the prepared statement to parameterize
        idx - the index of the parameter in the prepared statement
        val - the value of the column
        col - the column being set
        type - the field mapping type code for the value
        store - the store manager for the current context
        Throws:
        SQLException
      • putBytes

        public void putBytes​(Blob blob,
                             byte[] data)
                      throws SQLException
        Invoke the JDK 1.4 setBytes method on the given BLOB object.
        Throws:
        SQLException
      • putChars

        public void putChars​(Clob clob,
                             char[] data)
                      throws SQLException
        Invoke the JDK 1.4 setCharacterStream method on the given CLOB object.
        Throws:
        SQLException
      • storageWarning

        protected void storageWarning​(Object orig,
                                      Object converted)
        Warn that a particular value could not be stored precisely. After the first warning for a particular type, messages will be turned into trace messages.
      • getJDBCType

        public int getJDBCType​(int metaTypeCode,
                               boolean lob)
        Return the preferred Types constant for the given JavaTypes or JavaSQLTypes constant.
      • getJDBCType

        public int getJDBCType​(int metaTypeCode,
                               boolean lob,
                               int precis,
                               int scale,
                               boolean xml)
        Return the preferred Types constant for the given JavaTypes or JavaSQLTypes constant.
      • getJDBCType

        public int getJDBCType​(int metaTypeCode,
                               boolean lob,
                               int precis,
                               int scale)
        Return the preferred Types constant for the given JavaTypes or JavaSQLTypes constant.
      • getPreferredType

        public int getPreferredType​(int type)
        Return the preferred Types type for the given one. Returns the given type by default.
      • getTypeName

        public String getTypeName​(Column col)
        Return the preferred database type name for the given column's type from Types.
      • getTypeName

        public String getTypeName​(int type)
        Returns the type name for the specific constant as defined by Types.
        Parameters:
        type - the type
        Returns:
        the name for the type
      • appendSize

        protected String appendSize​(Column col,
                                    String typeName)
        Helper method to add size properties to the specified type. If present, the string "{0}" will be replaced with the size definition; otherwise the size definition will be appended to the type name. If your database has column types that don't allow size definitions, override this method to return the unaltered type name for columns of those types (or add the type names to the fixedSizeTypeNameSet).

        Some databases support "type modifiers", for example the unsigned "modifier" in MySQL. In these cases the size should go between the type and the "modifier", instead of after the modifier. For example CREATE table FOO ( myint INT (10) UNSIGNED . . .) instead of CREATE table FOO ( myint INT UNSIGNED (10) . . .). Type modifiers should be added to typeModifierSet in subclasses.

      • getDateFractionDigits

        protected int getDateFractionDigits​(Column col,
                                            String typeName)
        Only get's used if no explicit scale is used (@{code @Column(scale=0)} which is the default). Attention! @{code @Column(scale=-1)} disables the scale of a column
        Returns:
        the fraction length of types which have a fraction
        See Also:
        fractionalTypeNameSet
      • insertSize

        protected String insertSize​(String typeName,
                                    String size)
        Helper method that inserts a size clause for a given SQL type.
        Parameters:
        typeName - The SQL type e.g. INT
        size - The size clause e.g. (10)
        Returns:
        The typeName + size clause. Usually the size clause will be appended to typeName. If the typeName contains a marker : {0} or if typeName contains a modifier the size clause will be inserted appropriately.
      • setJoinSyntax

        public void setJoinSyntax​(String syntax)
        Set the name of the join syntax to use: sql92, traditional, database.
      • isImplicitJoin

        public boolean isImplicitJoin()
      • getPlaceholderValueString

        public String getPlaceholderValueString​(Column col)
        Return a SQL string to act as a placeholder for the given column.
      • toSelectCount

        public SQLBuffer toSelectCount​(Select sel)
        Create a SELECT COUNT statement in the proper join syntax for the given instance.
      • toDelete

        public SQLBuffer toDelete​(ClassMapping mapping,
                                  Select sel,
                                  Object[] params)
        Create a DELETE statement for the specified Select. If the database does not support the bulk delete statement (such as cases where a subselect is required and the database doesn't support subselects), this method should return null.
      • toBulkOperation

        protected SQLBuffer toBulkOperation​(ClassMapping mapping,
                                            Select sel,
                                            JDBCStore store,
                                            Object[] params,
                                            Map updateParams)
        Returns the SQL for a bulk operation, either a DELETE or an UPDATE.
        Parameters:
        mapping - the mapping against which we are operating
        sel - the Select that will constitute the WHERE clause
        store - the current store
        updateParams - the Map that holds the update parameters; a null value indicates that this is a delete operation
        Returns:
        the SQLBuffer for the update, or null if it is not possible to perform the bulk update
      • getDeleteTableContentsSQL

        public String[] getDeleteTableContentsSQL​(Table[] tables,
                                                  Connection conn)
        Create SQL to delete the contents of the specified tables. The default implementation drops all non-deferred RESTRICT foreign key constraints involving the specified tables, issues DELETE statements against the tables, and then adds the dropped constraints back in. Databases with more optimal ways of deleting the contents of several tables should override this method.
      • getFrom

        protected SQLBuffer getFrom​(Select sel,
                                    boolean forUpdate)
        Return the portion of the select statement between the FROM keyword and the WHERE keyword.
      • getFromSelect

        protected SQLBuffer getFromSelect​(Select sel,
                                          boolean forUpdate)
        Return the FROM clause for a select that selects from a tmp table created by an inner select.
      • getWhere

        protected SQLBuffer getWhere​(Select sel,
                                     boolean forUpdate)
        Return the WHERE portion of the select statement, or null if no where conditions.
      • toTraditionalJoin

        public SQLBuffer toTraditionalJoin​(Join join)
        Use the given join instance to create SQL joining its tables in the traditional style.
      • toSQL92Join

        public SQLBuffer toSQL92Join​(Select sel,
                                     Join join,
                                     boolean forUpdate,
                                     boolean first)
        Use the given join instance to create SQL joining its tables in the SQL92 style.
      • toNativeJoin

        public SQLBuffer toNativeJoin​(Join join)
        Use the given join instance to create SQL joining its tables in the database's native syntax. Throws an exception by default.
      • canOuterJoin

        public boolean canOuterJoin​(int syntax,
                                    ForeignKey fk)
        Returns if the given foreign key can be eagerly loaded using other joins.
      • getForUpdateClause

        protected String getForUpdateClause​(JDBCFetchConfiguration fetch,
                                            boolean isForUpdate,
                                            Select sel)
        Get the update clause for the query based on the updateClause and isolationLevel hints
      • supportsIsolationForUpdate

        public boolean supportsIsolationForUpdate()
        Return true if the dictionary uses isolation level to compute the returned getForUpdateClause() SQL clause.
      • getSelectOperation

        public String getSelectOperation​(JDBCFetchConfiguration fetch)
        Return the "SELECT" operation clause, adding any available hints, etc.
      • appendSelectRange

        protected void appendSelectRange​(SQLBuffer buf,
                                         long start,
                                         long end,
                                         boolean subselect)
        If this dictionary can select ranges, use this method to append the range SQL.
      • getSelects

        protected SQLBuffer getSelects​(Select sel,
                                       boolean distinctIdentifiers,
                                       boolean forUpdate)
        Return the portion of the select statement between the SELECT keyword and the FROM keyword.
      • appendSelect

        protected void appendSelect​(SQLBuffer selectSQL,
                                    Object elem,
                                    Select sel,
                                    int idx)
        Append elem to selectSQL.
        Parameters:
        selectSQL - The SQLBuffer to append to.
        elem - A SQLBuffer or a String to append.
        Since:
        1.1.0
      • supportsLocking

        public boolean supportsLocking​(Select sel)
        Returns true if a "FOR UPDATE" clause can be used for the specified Select object.
      • supportsRandomAccessResultSet

        public boolean supportsRandomAccessResultSet​(Select sel,
                                                     boolean forUpdate)
        Return false if the given select requires a forward-only result set.
      • assertSupport

        public void assertSupport​(boolean feature,
                                  String property)
        Assert that the given dictionary flag is true. If it is not true, throw an error saying that the given setting needs to return true for the current operation to work.
      • substring

        public void substring​(SQLBuffer buf,
                              FilterValue str,
                              FilterValue start,
                              FilterValue length)
        Invoke this database's substring function. Numeric parameters are inlined if possible. This is to handle grouping by SUBSTRING - most databases do not allow parameter binding in this case.
        Parameters:
        buf - the SQL buffer to write the substring invocation to
        str - a query value representing the target string
        start - a query value representing the start index
        length - a query value representing the length of substring, or null for none
      • indexOf

        public void indexOf​(SQLBuffer buf,
                            FilterValue str,
                            FilterValue find,
                            FilterValue start)
        Invoke this database's indexOf function.
        Parameters:
        buf - the SQL buffer to write the indexOf invocation to
        str - a query value representing the target string
        find - a query value representing the search string
        start - a query value representing the start index, or null to start at the beginning
      • mathFunction

        public void mathFunction​(SQLBuffer buf,
                                 String op,
                                 FilterValue lhs,
                                 FilterValue rhs)
        Append the numeric parts of a mathematical function.
        Parameters:
        buf - the SQL buffer to write the math function
        op - the mathematical operation to perform
        lhs - the left hand side of the math function
        rhs - the right hand side of the math function
      • comparison

        public void comparison​(SQLBuffer buf,
                               String op,
                               FilterValue lhs,
                               FilterValue rhs)
        Append a comparison.
        Parameters:
        buf - the SQL buffer to write the comparison
        op - the comparison operation to perform
        lhs - the left hand side of the comparison
        rhs - the right hand side of the comparison
      • appendXmlComparison

        public void appendXmlComparison​(SQLBuffer buf,
                                        String op,
                                        FilterValue lhs,
                                        FilterValue rhs,
                                        boolean lhsxml,
                                        boolean rhsxml)
        If this dictionary supports XML type, use this method to append xml predicate.
      • appendNumericCast

        protected void appendNumericCast​(SQLBuffer buf,
                                         FilterValue val)
        Append SQL for the given numeric value to the buffer, casting as needed.
      • appendCast

        public void appendCast​(SQLBuffer buf,
                               Object val,
                               int type)
        Cast the specified value to the specified type.
        Parameters:
        buf - the buffer to append the cast to
        val - the value to cast
        type - the type of the case, e.g. Types.NUMERIC
      • appendLength

        protected void appendLength​(SQLBuffer buf,
                                    int type)
      • addCastAsType

        public String addCastAsType​(String func,
                                    Val val)
        add CAST for a function operator where operand is a param
        Parameters:
        func - function name
        val -
        Returns:
        updated func
      • refSchemaComponents

        public void refSchemaComponents​(Table table)
        Increment the reference count of any table components that this dictionary adds that are not used by mappings. Does nothing by default.
      • getColumnIdentifier

        public DBIdentifier getColumnIdentifier​(Column column)
        Returns the name of the column using database specific delimiters.
      • getColumnDBName

        public String getColumnDBName​(Column column)
      • getFullIdentifier

        public DBIdentifier getFullIdentifier​(Table table,
                                              boolean logical)
        Returns the full name of the table, including the schema (delimited by catalogSeparator).
      • getFullName

        public String getFullName​(Table table,
                                  boolean logical)
      • getFullName

        public String getFullName​(Index index)
        Returns the full name of the index, including the schema (delimited by the result of catalogSeparator).
      • getFullName

        public String getFullName​(Sequence seq)
        Returns the full name of the sequence, including the schema (delimited by the result of catalogSeparator).
      • getValidTableName

        @Deprecated
        public String getValidTableName​(String name,
                                        Schema schema)
        Deprecated.
        Make any necessary changes to the given table name to make it valid for the current DB.
      • getValidTableName

        public DBIdentifier getValidTableName​(DBIdentifier name,
                                              Schema schema)
        Make any necessary changes to the given table name to make it valid for the current DB.
      • getValidSequenceName

        @Deprecated
        public String getValidSequenceName​(String name,
                                           Schema schema)
        Deprecated.
        Make any necessary changes to the given sequence name to make it valid for the current DB.
      • getValidSequenceName

        public DBIdentifier getValidSequenceName​(DBIdentifier name,
                                                 Schema schema)
        Make any necessary changes to the given sequence name to make it valid for the current DB.
      • getValidColumnName

        @Deprecated
        public String getValidColumnName​(String name,
                                         Table table)
        Deprecated.
        Make any necessary changes to the given column name to make it valid for the current DB. The column name will be made unique for the specified table.
      • getValidColumnName

        public DBIdentifier getValidColumnName​(DBIdentifier name,
                                               Table table)
        Make any necessary changes to the given column name to make it valid for the current DB. The column name will be made unique for the specified table.
      • getValidColumnName

        @Deprecated
        public String getValidColumnName​(String name,
                                         Table table,
                                         boolean checkForUniqueness)
        Deprecated.
        Make any necessary changes to the given column name to make it valid for the current DB. If checkForUniqueness is true, the column name will be made unique for the specified table.
      • getValidColumnName

        public DBIdentifier getValidColumnName​(DBIdentifier name,
                                               Table table,
                                               boolean checkForUniqueness)
        Make any necessary changes to the given column name to make it valid for the current DB. If checkForUniqueness is true, the column name will be made unique for the specified table.
      • getValidPrimaryKeyName

        public String getValidPrimaryKeyName​(String name,
                                             Table table)
        Make any necessary changes to the given primary key name to make it valid for the current DB.
      • getValidForeignKeyName

        @Deprecated
        public String getValidForeignKeyName​(String name,
                                             Table table,
                                             Table toTable)
        Deprecated.
        Make any necessary changes to the given foreign key name to make it valid for the current DB.
      • getValidForeignKeyName

        public DBIdentifier getValidForeignKeyName​(DBIdentifier name,
                                                   Table table,
                                                   Table toTable)
        Make any necessary changes to the given foreign key name to make it valid for the current DB.
      • getValidIndexName

        @Deprecated
        public String getValidIndexName​(String name,
                                        Table table)
        Deprecated.
        Make any necessary changes to the given index name to make it valid for the current DB.
      • getValidIndexName

        public DBIdentifier getValidIndexName​(DBIdentifier name,
                                              Table table)
        Make any necessary changes to the given index name to make it valid for the current DB.
      • getValidUniqueName

        @Deprecated
        public String getValidUniqueName​(String name,
                                         Table table)
        Deprecated.
        Make any necessary changes to the given unique constraint name to make it valid for the current DB.
      • getValidUniqueName

        public DBIdentifier getValidUniqueName​(DBIdentifier name,
                                               Table table)
        Make any necessary changes to the given unique constraint name to make it valid for the current DB.
      • shorten

        public static String shorten​(String name,
                                     int targetLength)
        Shorten the specified name to the specified target name. This will be done by first stripping out the vowels, and then removing characters from the middle of the word until it reaches the target length.
      • makeNameValid

        @Deprecated
        protected String makeNameValid​(String name,
                                       NameSet set,
                                       int maxLen,
                                       int nameType)
        Deprecated.
        Shortens the given name to the given maximum length, then checks that it is not a reserved word. If it is reserved, appends a "0". If the name conflicts with an existing schema component, the last character is replace with '0', then '1', etc. Note that the given max len may be 0 if the database metadata is incomplete.
      • makeNameValid

        protected DBIdentifier makeNameValid​(DBIdentifier name,
                                             NameSet set,
                                             int maxLen,
                                             int nameType)
        Shortens the given name to the given maximum length, then checks that it is not a reserved word. If it is reserved, appends a "0". If the name conflicts with an existing schema component, the last character is replace with '0', then '1', etc. Note that the given max len may be 0 if the database metadata is incomplete.
      • makeNameValid

        protected String makeNameValid​(String name,
                                       NameSet set,
                                       int maxLen,
                                       int nameType,
                                       boolean checkForUniqueness)
        Shortens the given name to the given maximum length, then checks that it is not a reserved word. If it is reserved, appends a "0". If the name conflicts with an existing schema component and uniqueness checking is enabled, the last character is replace with '0', then '1', etc. Note that the given max len may be 0 if the database metadata is incomplete. Note: If the name is delimited, make sure the ending delimiter is not stripped off.
      • makeNameValid

        protected DBIdentifier makeNameValid​(DBIdentifier name,
                                             NameSet set,
                                             int maxLen,
                                             int nameType,
                                             boolean checkForUniqueness)
        Shortens the given name to the given maximum length, then checks that it is not a reserved word. If it is reserved, appends a "0". If the name conflicts with an existing schema component and uniqueness checking is enabled, the last character is replace with '0', then '1', etc. Note that the given max len may be 0 if the database metadata is incomplete. Note: If the name is delimited, make sure the ending delimiter is not stripped off.
      • getCreateTableSQL

        public String[] getCreateTableSQL​(Table table,
                                          SchemaGroup group)
        Return a series of SQL statements to create the given table, complete with columns. Indexes and constraints will be created separately.
      • getCreateTableSQL

        public String[] getCreateTableSQL​(Table table)
        Return a series of SQL statements to create the given table, complete with columns. Indexes and constraints will be created separately.
      • getBatchFetchSize

        public int getBatchFetchSize​(int batchFetchSize)
      • getDropTableSQL

        public String[] getDropTableSQL​(Table table)
        Return a series of SQL statements to drop the given table. Indexes will be dropped separately. Returns DROP TABLE <table name> by default.
      • getCreateSequenceSQL

        public String[] getCreateSequenceSQL​(Sequence seq)
        Return a series of SQL statements to create the given sequence. Returns CREATE SEQUENCE <sequence name>[ START WITH <start>] [ INCREMENT BY <increment>] by default.
      • getAlterSequenceSQL

        public String getAlterSequenceSQL​(Sequence seq)
      • getDropSequenceSQL

        public String[] getDropSequenceSQL​(Sequence seq)
        Return a series of SQL statements to drop the given sequence. Returns DROP SEQUENCE <sequence name> by default.
      • getCreateIndexSQL

        public String[] getCreateIndexSQL​(Index index)
        Return a series of SQL statements to create the given index. Returns CREATE [UNIQUE] INDEX <index name> ON <table name> (<col list>) by default.
      • getDropIndexSQL

        public String[] getDropIndexSQL​(Index index)
        Return a series of SQL statements to drop the given index. Returns DROP INDEX <index name> by default.
      • getAddColumnSQL

        public String[] getAddColumnSQL​(Column column)
        Return a series of SQL statements to add the given column to its table. Return an empty array if operation not supported. Returns ALTER TABLE <table name> ADD (<col dec>) by default.
      • getDropColumnSQL

        public String[] getDropColumnSQL​(Column column)
        Return a series of SQL statements to drop the given column from its table. Return an empty array if operation not supported. Returns ALTER TABLE <table name> DROP COLUMN <col name> by default.
      • getAddPrimaryKeySQL

        public String[] getAddPrimaryKeySQL​(PrimaryKey pk)
        Return a series of SQL statements to add the given primary key to its table. Return an empty array if operation not supported. Returns ALTER TABLE <table name> ADD <pk cons sql > by default.
      • getDropPrimaryKeySQL

        public String[] getDropPrimaryKeySQL​(PrimaryKey pk)
        Return a series of SQL statements to drop the given primary key from its table. Return an empty array if operation not supported. Returns ALTER TABLE <table name> DROP CONSTRAINT <pk name> by default.
      • getAddForeignKeySQL

        public String[] getAddForeignKeySQL​(ForeignKey fk)
        Return a series of SQL statements to add the given foreign key to its table. Return an empty array if operation not supported. Returns ALTER TABLE <table name> ADD <fk cons sql > by default.
      • getDropForeignKeySQL

        public String[] getDropForeignKeySQL​(ForeignKey fk,
                                             Connection conn)
        Return a series of SQL statements to drop the given foreign key from its table. Return an empty array if operation not supported. Returns ALTER TABLE <table name> DROP CONSTRAINT <fk name> by default.
      • supportsDeferredForeignKeyConstraints

        protected boolean supportsDeferredForeignKeyConstraints()
        Whether or not this dictionary supports deferred foreign key constraints. This implementation returns supportsUniqueConstraints.
        Since:
        1.1.0
      • supportsDeleteAction

        public boolean supportsDeleteAction​(int action)
        Whether this database supports the given foreign key delete action.
      • supportsUpdateAction

        public boolean supportsUpdateAction​(int action)
        Whether this database supports the given foreign key update action.
      • supportsDeferredUniqueConstraints

        protected boolean supportsDeferredUniqueConstraints()
        Whether or not this dictionary supports deferred unique constraints. This implementation returns supportsUniqueConstraints.
        Since:
        1.1.0
      • isSystemTable

        @Deprecated
        public boolean isSystemTable​(String name,
                                     String schema,
                                     boolean targetSchema)
        Deprecated.
        This method is used to filter system tables from database metadata. Return true if the given table name represents a system table that should not appear in the schema definition. By default, returns true only if the given table is in the internal list of system tables, or if the given schema is in the list of system schemas and is not the target schema.
        Parameters:
        name - the table name
        schema - the table schema; may be null
        targetSchema - if true, then the given schema was listed by the user as one of his schemas
      • isSystemTable

        public boolean isSystemTable​(DBIdentifier name,
                                     DBIdentifier schema,
                                     boolean targetSchema)
        This method is used to filter system tables from database metadata. Return true if the given table name represents a system table that should not appear in the schema definition. By default, returns true only if the given table is in the internal list of system tables, or if the given schema is in the list of system schemas and is not the target schema.
        Parameters:
        name - the table name
        schema - the table schema; may be null
        targetSchema - if true, then the given schema was listed by the user as one of his schemas
      • isSystemIndex

        @Deprecated
        public boolean isSystemIndex​(String name,
                                     Table table)
        Deprecated.
        This method is used to filter system indexes from database metadata. Return true if the given index name represents a system index that should not appear in the schema definition. Returns false by default.
        Parameters:
        name - the index name
        table - the index table
      • isSystemIndex

        public boolean isSystemIndex​(DBIdentifier name,
                                     Table table)
        This method is used to filter system indexes from database metadata. Return true if the given index name represents a system index that should not appear in the schema definition. Returns false by default.
        Parameters:
        name - the index name
        table - the index table
      • isSystemSequence

        @Deprecated
        public boolean isSystemSequence​(String name,
                                        String schema,
                                        boolean targetSchema)
        Deprecated.
        This method is used to filter system sequences from database metadata. Return true if the given sequence represents a system sequence that should not appear in the schema definition. Returns true if system schema by default.
        Parameters:
        name - the table name
        schema - the table schema; may be null
        targetSchema - if true, then the given schema was listed by the user as one of his schemas
      • isSystemSequence

        public boolean isSystemSequence​(DBIdentifier name,
                                        DBIdentifier schema,
                                        boolean targetSchema)
        This method is used to filter system sequences from database metadata. Return true if the given sequence represents a system sequence that should not appear in the schema definition. Returns true if system schema by default.
        Parameters:
        name - the table name
        schema - the table schema; may be null
        targetSchema - if true, then the given schema was listed by the user as one of his schemas
      • isSystemSequence

        public boolean isSystemSequence​(DBIdentifier name,
                                        DBIdentifier schema,
                                        boolean targetSchema,
                                        Connection conn)
        This method is used to filter system sequences from database metadata. Return true if the given sequence represents a system sequence that should not appear in the schema definition. Returns true if system schema by default.
        Parameters:
        name - the table name
        schema - the table schema; may be null
        targetSchema - if true, then the given schema was listed by the user as one of his schemas
        conn - connection to the database
      • getSequencesSQL

        @Deprecated
        protected String getSequencesSQL​(String schemaName,
                                         String sequenceName)
        Deprecated.
        Return the SQL needed to select the list of sequences.
      • getTableNameForMetadata

        protected String getTableNameForMetadata​(String tableName)
        Returns the table name that will be used for obtaining information from DatabaseMetaData.
      • getTableNameForMetadata

        protected String getTableNameForMetadata​(DBIdentifier tableName)
        Returns the table name that will be used for obtaining information from DatabaseMetaData.
      • getSchemaNameForMetadata

        protected String getSchemaNameForMetadata​(String schemaName)
        Returns the schema name that will be used for obtaining information from DatabaseMetaData.
      • getSchemaNameForMetadata

        protected String getSchemaNameForMetadata​(DBIdentifier schemaName)
        Returns the schema name that will be used for obtaining information from DatabaseMetaData.
      • getCatalogNameForMetadata

        protected String getCatalogNameForMetadata​(String catalogName)
        Returns the catalog name that will be used for obtaining information from DatabaseMetaData.
      • getCatalogNameForMetadata

        protected String getCatalogNameForMetadata​(DBIdentifier catalogName)
        Returns the catalog name that will be used for obtaining information from DatabaseMetaData.
      • getColumnNameForMetadata

        protected String getColumnNameForMetadata​(String columnName)
        Returns the column name that will be used for obtaining information from DatabaseMetaData.
      • getColumnNameForMetadata

        protected String getColumnNameForMetadata​(DBIdentifier columnName)
        Returns the column name that will be used for obtaining information from DatabaseMetaData.
      • convertSchemaCase

        public String convertSchemaCase​(String objectName)
        Convert the specified schema name to a name that the database will be able to understand.
      • convertSchemaCase

        public String convertSchemaCase​(DBIdentifier objectName)
        Convert the specified schema name to a name that the database will be able to understand.
      • getGeneratedKeySequenceName

        protected String getGeneratedKeySequenceName​(Column col)
        Return the sequence name used by databases for the given autoassigned column. This is only used by databases that require an explicit name to be used for auto-assign support.
      • getStoredProcedure

        public StoredProcedure getStoredProcedure​(DatabaseMetaData meta,
                                                  DBIdentifier catalog,
                                                  DBIdentifier schema,
                                                  String procedure)
                                           throws SQLException
        Gets the metadata of the stored procedure by the given name either from the cached version or by enquiring the database.
        Parameters:
        meta - the database meta data
        catalog - the catalog name or null
        schema - the schema name or null
        procedure - the procedure name
        Returns:
        metadata about the named procedure or null
        Throws:
        SQLException - when metadata query goes wrong
      • startConfiguration

        public void startConfiguration()
        Description copied from interface: Configurable
        Invoked before bean property configuration is begun on this object.
        Specified by:
        startConfiguration in interface Configurable
      • endConfiguration

        public void endConfiguration()
        Description copied from interface: Configurable
        Invoked upon completion of bean property configuration for this object.
        Specified by:
        endConfiguration in interface Configurable
      • addErrorCode

        public void addErrorCode​(int errorType,
                                 String errorCode)
      • setTimeouts

        public void setTimeouts​(PreparedStatement stmnt,
                                JDBCFetchConfiguration fetch,
                                boolean forUpdate)
                         throws SQLException
        FIXME - OPENJPA-957 - lockTimeout is a server-side function and shouldn't be using client-side setQueryTimeout for lock timeouts. This method is to provide override for non-JDBC or JDBC-like implementation of setting query and lock timeouts.
        Parameters:
        stmnt -
        fetch - - optional lock and query timeouts in milliseconds
        forUpdate - - true if we should also try setting a lock timeout
        Throws:
        SQLException
      • setTimeouts

        public void setTimeouts​(PreparedStatement stmnt,
                                JDBCConfiguration conf,
                                boolean forUpdate)
                         throws SQLException
        FIXME - OPENJPA-957 - lockTimeout is a server-side function and shouldn't be using client-side setQueryTimeout for lock timeouts. This method is to provide override for non-JDBC or JDBC-like implementation of setting query and lock timeouts.
        Parameters:
        stmnt -
        conf - - optional lock and query timeouts in milliseconds
        forUpdate - - true if we should also try setting a lock timeout
        Throws:
        SQLException
      • setQueryTimeout

        public void setQueryTimeout​(PreparedStatement stmnt,
                                    int timeout)
                             throws SQLException
        Provides the default validation handling of setting a query timeout.
        Parameters:
        stmnt -
        timeout - in milliseconds
        Throws:
        SQLException
      • setStatementQueryTimeout

        protected void setStatementQueryTimeout​(PreparedStatement stmnt,
                                                int timeout)
                                         throws SQLException
        Allow subclasses to provide DB unique override implementations of setting query timeouts, while preserving the default timeout logic in the public setQueryTimeout method.
        Parameters:
        stmnt -
        timeout - in milliseconds
        Throws:
        SQLException
      • newStoreException

        public OpenJPAException newStoreException​(String msg,
                                                  SQLException[] causes,
                                                  Object failed)
        Return a new exception that wraps causes. However, the details of exactly what type of exception is returned can be determined by the implementation. This may take into account DB-specific exception information in causes.
      • matchErrorState

        protected int matchErrorState​(Map<Integer,​Set<String>> errorStates,
                                      SQLException ex)
        Determine the more appropriate type of store exception by matching the SQL Error State of the the given SQLException to the given Error States categorized by error types. Dictionary subclass can override this method and extract SQLException data to figure out if the exception is recoverable.
        Parameters:
        errorStates - classification of SQL error states by their specific nature. The keys of the map represent one of the constants defined in StoreException. The value corresponding to a key represent the set of SQL Error States representing specific category of database error. This supplied map is sourced from sql-error-state-codes.xml and filtered the error states for the current database.
        ex - original SQL Exception as raised by the database driver.
        Returns:
        A constant indicating the category of error as defined in StoreException.
      • isFatalException

        public boolean isFatalException​(int subtype,
                                        SQLException ex)
        Determine if the given SQL Exception is fatal or recoverable (such as a timeout). This implementation always returns true (i.e. all exceptions are fatal). The current dictionary implementation can overwrite this method to mark certain exception conditions as recoverable error.
        Parameters:
        subtype - A constant indicating the category of error as defined in StoreException.
        ex - original SQL Exception as raised by the database driver.
        Returns:
        false if the error is fatal.
      • closeDataSource

        public void closeDataSource​(DataSource dataSource)
        Closes the specified DataSource and releases any resources associated with it.
        Parameters:
        dataSource - the DataSource to close
      • getVersionColumn

        public String getVersionColumn​(Column column,
                                       String tableAlias)
        Return version column name
        Parameters:
        column -
        tableAlias - : this is needed for platform specific version column
      • getCastFunction

        public String getCastFunction​(Val val,
                                      String func)
        Attach CAST to the current function if necessary
        Parameters:
        val - operand value
        Returns:
        a String with the correct CAST function syntax
      • getCastFunction

        public String getCastFunction​(Val val,
                                      String func,
                                      Column col)
        Return the correct CAST function syntax. This should be overriden by subclasses that need access to the Column information.
        Parameters:
        val - operand of cast
        func - original string
        col - database column
        Returns:
        a String with the correct CAST function syntax
      • createIndexIfNecessary

        @Deprecated
        public void createIndexIfNecessary​(Schema schema,
                                           String table,
                                           Column pkColumn)
        Deprecated.
        Create an index if necessary for some database tables
      • getBatchLimit

        public int getBatchLimit()
        Return the batchLimit
      • setBatchLimit

        public void setBatchLimit​(int limit)
        Set the batchLimit value
      • validateBatchProcess

        public boolean validateBatchProcess​(RowImpl row,
                                            Column[] autoAssign,
                                            OpenJPAStateManager sm,
                                            ClassMapping cmd)
        Validate the batch process. In some cases, we can't batch the statements due to some restrictions. For example, if the GeneratedType=IDENTITY, we have to disable the batch process because we need to get the ID value right away for the in-memory entity to use.
      • validateDBSpecificBatchProcess

        public boolean validateDBSpecificBatchProcess​(boolean disableBatch,
                                                      RowImpl row,
                                                      Column[] autoAssign,
                                                      OpenJPAStateManager sm,
                                                      ClassMapping cmd)
        Allow each Dictionary to validate its own batch process.
      • getSequence

        protected Sequence[] getSequence​(ResultSet rs)
                                  throws SQLException
        This method is to provide override for non-JDBC or JDBC-like implementation of getting sequence from the result set.
        Throws:
        SQLException
      • calculateValue

        protected void calculateValue​(Val val,
                                      Select sel,
                                      ExpContext ctx,
                                      ExpState state,
                                      Path path,
                                      ExpState pathState)
        This method is to provide override for non-JDBC or JDBC-like implementation of calculating value.
      • isSelect

        public boolean isSelect​(String sql)
        Determine whether the provided sql may be treated as a select statement on this database.
        Parameters:
        sql - A sql statement.
        Returns:
        true if sql represents a select statement.
      • needsToCreateIndex

        public boolean needsToCreateIndex​(Index idx,
                                          Table table,
                                          Unique[] uniques)
      • needsToCreateIndex

        public boolean needsToCreateIndex​(Index idx,
                                          Table table)
      • getBatchUpdateCount

        public int getBatchUpdateCount​(PreparedStatement ps)
                                throws SQLException
        Return batched statements update success count
        Parameters:
        ps - A PreparedStatement
        Returns:
        return update count
        Throws:
        SQLException
      • getTrimSchemaName

        public boolean getTrimSchemaName()
      • setTrimSchemaName

        public void setTrimSchemaName​(boolean trimSchemaName)
      • setDelimitedCase

        protected void setDelimitedCase​(DatabaseMetaData metaData)
      • setSupportsDelimitedIdentifiers

        public void setSupportsDelimitedIdentifiers​(boolean supportsDelimitedIds)
        Parameters:
        supportsDelimitedIds - the supportsDelimitedIds to set
      • getDelimitIdentifiers

        public boolean getDelimitIdentifiers()
        Returns:
        the delimitIds
      • setDelimitIdentifiers

        public void setDelimitIdentifiers​(boolean delimitIds)
        Parameters:
        delimitIds - the delimitIds to set
      • getSupportsXMLColumn

        public boolean getSupportsXMLColumn()
        Returns:
        supportsXMLColumn
      • setSupportsXMLColumn

        public void setSupportsXMLColumn​(boolean b)
        Parameters:
        b - boolean representing if XML columns are supported
      • getXMLTypeEncoding

        public String getXMLTypeEncoding()
        Returns:
        xmlTypeEncoding
      • setXMLTypeEncoding

        public void setXMLTypeEncoding​(String encoding)
        Parameters:
        encoding - database required JAXB encoding for the XML value
      • getLog

        public Log getLog()
      • setLeadingDelimiter

        public void setLeadingDelimiter​(String delim)
      • setTrailingDelimiter

        public void setTrailingDelimiter​(String delim)
      • getNamingUtil

        public DBIdentifierUtil getNamingUtil()
        Returns the naming utility used by this dictionary instance
      • setDefaultSchemaName

        public void setDefaultSchemaName​(String defaultSchemaName)
      • getDefaultSchemaName

        public String getDefaultSchemaName()
      • getConversionKey

        public String getConversionKey()
        Description copied from interface: IdentifierConfiguration
        Returns a key that can be used to determine whether conversion should take place. Id configurations should create a key unique to their configuration. The typical key is: leading delimiter (") + name separator(.) + trailing delimiter(")
        Specified by:
        getConversionKey in interface IdentifierConfiguration
      • getMarkerForInsertUpdate

        public String getMarkerForInsertUpdate​(Column col,
                                               Object val)
        Return parameter marker for INSERT and UPDATE statements. Usually it is ? but some database-specific types might require customization.
        Parameters:
        col - column definition
        val - value to be inserted/updated
        Returns:
        parameter marker
      • getIsNullSQL

        public String getIsNullSQL​(String colAlias,
                                   int colType)
      • getIsNotNullSQL

        public String getIsNotNullSQL​(String colAlias,
                                      int colType)
      • getIdentityColumnName

        public String getIdentityColumnName()
      • setDateMillisecondBehavior

        public void setDateMillisecondBehavior​(String str)
      • setBooleanRepresentation

        public void setBooleanRepresentation​(String booleanRepresentationKey)
      • isUsingRange

        protected boolean isUsingRange​(long start,
                                       long end)
      • isUsingOffset

        protected boolean isUsingOffset​(long start)
      • isUsingLimit

        protected boolean isUsingLimit​(long end)
      • isUsingOrderBy

        protected boolean isUsingOrderBy​(SQLBuffer sql)
      • versionEqualOrLaterThan

        protected boolean versionEqualOrLaterThan​(int maj,
                                                  int min)
      • versionEqualOrEarlierThan

        protected boolean versionEqualOrEarlierThan​(int maj,
                                                    int min)
      • versionLaterThan

        protected boolean versionLaterThan​(int maj)
      • getMajorVersion

        public final int getMajorVersion()
        Gets major version of the database server.
      • setMajorVersion

        public void setMajorVersion​(int maj)
        Sets major version of the database server.
      • getMinorVersion

        public final int getMinorVersion()
        Gets minor version of the database server.
      • setMinorVersion

        public void setMinorVersion​(int min)
        Sets minor version of the database server.
      • applyRange

        public int applyRange​(Select select,
                              int count)