Package org.h2.engine

Class Mode

java.lang.Object
org.h2.engine.Mode

public class Mode extends Object
The compatibility modes. There is a fixed set of modes (for example PostgreSQL, MySQL). Each mode has different settings.
  • Field Details

    • aliasColumnName

      public boolean aliasColumnName
      When enabled, aliased columns (as in SELECT ID AS I FROM TEST) return the alias (I in this case) in ResultSetMetaData.getColumnName() and 'null' in getTableName(). If disabled, the real column name (ID in this case) and table name is returned.
    • convertOnlyToSmallerScale

      public boolean convertOnlyToSmallerScale
      When converting the scale of decimal data, the number is only converted if the new scale is smaller than the current scale. Usually, the scale is converted and 0s are added if required.
    • indexDefinitionInCreateTable

      public boolean indexDefinitionInCreateTable
      Creating indexes in the CREATE TABLE statement is allowed using INDEX(..) or KEY(..). Example: create table test(id int primary key, name varchar(255), key idx_name(name));
    • squareBracketQuotedNames

      public boolean squareBracketQuotedNames
      Identifiers may be quoted using square brackets as in [Test].
    • systemColumns

      public boolean systemColumns
      The system columns 'ctid' and 'oid' are supported.
    • nullsDistinct

      public NullsDistinct nullsDistinct
      Determines how rows with NULL values in indexed columns are handled in unique indexes and constraints by default.
    • treatEmptyStringsAsNull

      public boolean treatEmptyStringsAsNull
      Empty strings are treated like NULL values. Useful for Oracle emulation.
    • greatestLeastIgnoreNulls

      public boolean greatestLeastIgnoreNulls
      If true GREATEST and LEAST ignore nulls
    • sysDummy1

      public boolean sysDummy1
      Support the pseudo-table SYSIBM.SYSDUMMY1.
    • allowPlusForStringConcat

      public boolean allowPlusForStringConcat
      Text can be concatenated using '+'.
    • logIsLogBase10

      public boolean logIsLogBase10
      The single-argument function LOG() uses base 10 instead of E.
    • swapLogFunctionParameters

      public boolean swapLogFunctionParameters
      Swap the parameters of LOG() function.
    • regexpReplaceBackslashReferences

      public boolean regexpReplaceBackslashReferences
      The function REGEXP_REPLACE() uses \ for back-references.
    • swapConvertFunctionParameters

      public boolean swapConvertFunctionParameters
      Swap the parameters of the CONVERT function.
    • isolationLevelInSelectOrInsertStatement

      public boolean isolationLevelInSelectOrInsertStatement
      can set the isolation level using WITH {RR|RS|CS|UR}
    • onDuplicateKeyUpdate

      public boolean onDuplicateKeyUpdate
      MySQL style INSERT ... ON DUPLICATE KEY UPDATE ... and INSERT IGNORE.
    • replaceInto

      public boolean replaceInto
      MySQL style REPLACE INTO.
    • insertOnConflict

      public boolean insertOnConflict
      PostgreSQL style INSERT ... ON CONFLICT DO NOTHING.
    • supportedClientInfoPropertiesRegEx

      public Pattern supportedClientInfoPropertiesRegEx
      Pattern describing the keys the java.sql.Connection.setClientInfo() method accepts.
    • supportPoundSymbolForColumnNames

      public boolean supportPoundSymbolForColumnNames
      Support the # for column names
    • allowEmptyInPredicate

      public boolean allowEmptyInPredicate
      Whether IN predicate may have an empty value list.
    • charPadding

      public Mode.CharPadding charPadding
      How to pad or trim CHAR values.
    • allowDB2TimestampFormat

      public boolean allowDB2TimestampFormat
      Whether DB2 TIMESTAMP formats are allowed.
    • discardWithTableHints

      public boolean discardWithTableHints
      Discard SQLServer table hints (e.g. "SELECT * FROM table WITH (NOLOCK)")
    • dateTimeValueWithinTransaction

      public boolean dateTimeValueWithinTransaction
      If true, datetime value function return the same value within a transaction, if false datetime value functions return the same value within a command.
    • zeroExLiteralsAreBinaryStrings

      public boolean zeroExLiteralsAreBinaryStrings
      If true 0x-prefixed numbers are parsed as binary string literals, if false they are parsed as hexadecimal numeric values.
    • allowUnrelatedOrderByExpressionsInDistinctQueries

      public boolean allowUnrelatedOrderByExpressionsInDistinctQueries
      If true unrelated ORDER BY expression are allowed in DISTINCT queries, if false they are disallowed.
    • alterTableExtensionsMySQL

      public boolean alterTableExtensionsMySQL
      If true some additional non-standard ALTER TABLE commands are allowed.
    • alterTableModifyColumn

      public boolean alterTableModifyColumn
      If true non-standard ALTER TABLE MODIFY COLUMN is allowed.
    • alterTableModifyColumnPreserveNullability

      public boolean alterTableModifyColumnPreserveNullability
      If true non-standard ALTER TABLE MODIFY COLUMN preserves nullability when changing data type.
    • mySqlTableOptions

      public boolean mySqlTableOptions
      If true MySQL table and column options are allowed
    • deleteIdentifierFrom

      public boolean deleteIdentifierFrom
      If true DELETE identifier FROM is allowed
    • truncateTableRestartIdentity

      public boolean truncateTableRestartIdentity
      If true TRUNCATE TABLE uses RESTART IDENTITY by default.
    • decimalSequences

      public boolean decimalSequences
      If true NEXT VALUE FOR SEQUENCE, CURRENT VALUE FOR SEQUENCE, SEQUENCE.NEXTVAL, and SEQUENCE.CURRVAL return values with DECIMAL/NUMERIC data type instead of BIGINT.
    • allowEmptySchemaValuesAsDefaultSchema

      public boolean allowEmptySchemaValuesAsDefaultSchema
      If true constructs like 'CREATE TABLE CATALOG..TABLE_NAME' are allowed, the default schema is used.
    • allNumericTypesHavePrecision

      public boolean allNumericTypesHavePrecision
      If true all numeric data types may have precision and 'UNSIGNED' clause.
    • forBitData

      public boolean forBitData
      If true 'FOR BIT DATA' clauses are allowed for character string data types.
    • charAndByteLengthUnits

      public boolean charAndByteLengthUnits
      If true 'CHAR' and 'BYTE' length units are allowed.
    • nextvalAndCurrvalPseudoColumns

      public boolean nextvalAndCurrvalPseudoColumns
      If true, sequence.NEXTVAL and sequence.CURRVAL pseudo columns are supported.
    • nextValueReturnsDifferentValues

      public boolean nextValueReturnsDifferentValues
      If true, the next value expression returns different values when invoked multiple times within a row. This setting does not affect NEXTVAL() function.
    • updateSequenceOnManualIdentityInsertion

      public boolean updateSequenceOnManualIdentityInsertion
      If true, sequences of generated by default identity columns are updated when value is provided by user.
    • takeInsertedIdentity

      public boolean takeInsertedIdentity
      If true, last identity of the session is updated on insertion of a new value into identity column.
    • takeGeneratedSequenceValue

      public boolean takeGeneratedSequenceValue
      If true, last identity of the session is updated on generation of a new sequence value.
    • identityColumnsHaveDefaultOnNull

      public boolean identityColumnsHaveDefaultOnNull
      If true, identity columns have DEFAULT ON NULL clause.
    • mergeWhere

      public boolean mergeWhere
      If true, merge when matched clause may have WHERE clause.
    • allowUsingFromClauseInUpdateStatement

      public boolean allowUsingFromClauseInUpdateStatement
      If true, allow using from clause in update statement.
    • createUniqueConstraintForReferencedColumns

      public boolean createUniqueConstraintForReferencedColumns
      If true, referential constraints will create a unique constraint on referenced columns if it doesn't exist instead of throwing an exception.
    • expressionNames

      public Mode.ExpressionNames expressionNames
      How column names are generated for expressions.
    • viewExpressionNames

      public Mode.ViewExpressionNames viewExpressionNames
      How column names are generated for views.
    • topInSelect

      public boolean topInSelect
      Whether TOP clause in SELECT queries is supported.
    • topInDML

      public boolean topInDML
      Whether TOP clause in DML commands is supported.
    • limit

      public boolean limit
      Whether LIMIT / OFFSET clauses are supported.
    • minusIsExcept

      public boolean minusIsExcept
      Whether MINUS can be used as EXCEPT.
    • identityDataType

      public boolean identityDataType
      Whether IDENTITY pseudo data type is supported.
    • serialDataTypes

      public boolean serialDataTypes
      Whether SERIAL and BIGSERIAL pseudo data types are supported.
    • identityClause

      public boolean identityClause
      Whether SQL Server-style IDENTITY clause is supported.
    • autoIncrementClause

      public boolean autoIncrementClause
      Whether MySQL-style AUTO_INCREMENT clause is supported.
    • dateIsTimestamp0

      public boolean dateIsTimestamp0
      Whether DATE data type is parsed as TIMESTAMP(0).
    • numericIsDecfloat

      public boolean numericIsDecfloat
      Whether NUMERIC and DECIMAL/DEC without parameters are parsed as DECFLOAT.
    • disallowedTypes

      public Set<String> disallowedTypes
      An optional Set of hidden/disallowed column types. Certain DBMSs don't support all column types provided by H2, such as "NUMBER" when using PostgreSQL mode.
    • typeByNameMap

      public HashMap<String,org.h2.value.DataType> typeByNameMap
      Custom mappings from type names to data types.
    • groupByColumnIndex

      public boolean groupByColumnIndex
      Allow to use GROUP BY n, where n is column index in the SELECT list, similar to ORDER BY
    • numericWithBooleanComparison

      public boolean numericWithBooleanComparison
      Allow to compare numeric with BOOLEAN.
    • acceptsCommaAsJsonKeyValueSeparator

      public boolean acceptsCommaAsJsonKeyValueSeparator
      Accepts comma ',' as key/value separator in JSON_OBJECT and JSON_OBJECTAGG functions.
  • Method Details

    • getInstance

      public static Mode getInstance(String name)
      Get the mode with the given name.
      Parameters:
      name - the name of the mode
      Returns:
      the mode object
    • getRegular

      public static Mode getRegular()
    • getName

      public String getName()
    • getEnum

      public Mode.ModeEnum getEnum()
    • toString

      public String toString()
      Overrides:
      toString in class Object