org.h2.engine

## Class Mode

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

    public class Mode
    extends java.lang.Object

The compatibility modes. There is a fixed set of modes (for example PostgreSQL, MySQL). Each mode has different settings.

### Nested Class Summary

Nested Classes
`static class` `Mode.ModeEnum`
`static class` `Mode.UniqueIndexNullsHandling` Determines how rows with `NULL` values in indexed columns are handled in unique indexes.

### Field Summary

Fields
`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().
`boolean` `allowAffinityKey` Whether AFFINITY KEY keywords are supported.
`boolean` `allowDB2TimestampFormat` Whether DB2 TIMESTAMP formats are allowed.
`boolean` `allowEmptyInPredicate` Whether IN predicate may have an empty value list.
`boolean` `allowEmptySchemaValuesAsDefaultSchema` If `true` constructs like 'CREATE TABLE CATALOG..TABLE_NAME' are allowed, the default schema is used.
`boolean` `allowPlusForStringConcat` Text can be concatenated using '+'.
`boolean` `allowUnrelatedOrderByExpressionsInDistinctQueries` If `true` unrelated ORDER BY expression are allowed in DISTINCT queries, if `false` they are disallowed.
`boolean` `alterTableExtensionsMySQL` If `true` some additional non-standard ALTER TABLE commands are allowed.
`boolean` `alterTableModifyColumn` If `true` non-standard ALTER TABLE MODIFY COLUMN is allowed.
`boolean` `charToBinaryInUtf8` Convert (VAR)CHAR to VAR(BINARY) and vice versa with UTF-8 encoding instead of HEX.
`boolean` `convertOnlyToSmallerScale` When converting the scale of decimal data, the number is only converted if the new scale is smaller than the current scale.
`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.
`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.
`java.util.Set<java.lang.String>` `disallowedTypes` An optional Set of hidden/disallowed column types.
`boolean` `discardWithTableHints` Discard SQLServer table hints (e.g.
`boolean` `indexDefinitionInCreateTable` Creating indexes in the CREATE TABLE statement is allowed using `INDEX(..)` or `KEY(..)`.
`boolean` `insertOnConflict` PostgreSQL style INSERT ...
`boolean` `isolationLevelInSelectOrInsertStatement` can set the isolation level using WITH {RR|RS|CS|UR}
`boolean` `logIsLogBase10` The single-argument function LOG() uses base 10 instead of E.
`boolean` `nullConcatIsNull` Concatenation with NULL results in NULL.
`boolean` `onDuplicateKeyUpdate` MySQL style INSERT ...
`boolean` `padFixedLengthStrings` Whether to right-pad fixed strings with spaces.
`boolean` `regexpReplaceBackslashReferences` The function REGEXP_REPLACE() uses \ for back-references.
`boolean` `replaceInto` MySQL style REPLACE INTO.
`boolean` `serialColumnIsNotPK` SERIAL and BIGSERIAL columns are not automatically primary keys.
`boolean` `squareBracketQuotedNames` Identifiers may be quoted using square brackets as in [Test].
`java.util.regex.Pattern` `supportedClientInfoPropertiesRegEx` Pattern describing the keys the java.sql.Connection.setClientInfo() method accepts.
`boolean` `supportPoundSymbolForColumnNames` Support the # for column names
`boolean` `swapConvertFunctionParameters` Swap the parameters of the CONVERT function.
`boolean` `swapLogFunctionParameters` Swap the parameters of LOG() function.
`boolean` `sysDummy1` Support the pseudo-table SYSIBM.SYSDUMMY1.
`boolean` `systemColumns` The system columns 'CTID' and 'OID' are supported.
`boolean` `treatEmptyStringsAsNull` Empty strings are treated like NULL values.
`boolean` `truncateTableRestartIdentity` If `true` TRUNCATE TABLE uses RESTART IDENTITY by default.
`java.util.HashMap<java.lang.String,DataType>` `typeByNameMap` Custom mappings from type names to data types.
`Mode.UniqueIndexNullsHandling` `uniqueIndexNullsHandling` Determines how rows with `NULL` values in indexed columns are handled in unique indexes.
`boolean` `useIdentityAsAutoIncrement` Use "IDENTITY" as an alias for "auto_increment" (SQLServer style)
`boolean` `zeroExLiteralsAreBinaryStrings` If `true` `0x`-prefixed numbers are parsed as binary string literals, if `false` they are parsed as hexadecimal numeric values.

### Method Summary

Methods
`Mode.ModeEnum` `getEnum()`
`static Mode` `getInstance(java.lang.String name)` Get the mode with the given name.
`java.lang.String` `getName()`
`static Mode` `getRegular()`
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### 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));`

#### nullConcatIsNull

    public boolean nullConcatIsNull

Concatenation with NULL results in NULL. Usually, NULL is treated as an empty string if only one of the operands is NULL, and NULL is only returned if both operands are NULL.

#### 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.

#### uniqueIndexNullsHandling

    public Mode.UniqueIndexNullsHandling uniqueIndexNullsHandling

Determines how rows with `NULL` values in indexed columns are handled in unique indexes.

#### treatEmptyStringsAsNull

    public boolean treatEmptyStringsAsNull

Empty strings are treated like NULL values. Useful for Oracle emulation.

#### 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.

#### serialColumnIsNotPK

    public boolean serialColumnIsNotPK

SERIAL and BIGSERIAL columns are not automatically primary keys.

#### 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 java.util.regex.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.

#### allowAffinityKey

    public boolean allowAffinityKey

Whether AFFINITY KEY keywords are supported.

#### padFixedLengthStrings

    public boolean padFixedLengthStrings

Whether to right-pad fixed strings with spaces.

#### 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)")

#### useIdentityAsAutoIncrement

    public boolean useIdentityAsAutoIncrement

Use "IDENTITY" as an alias for "auto_increment" (SQLServer style)

#### charToBinaryInUtf8

    public boolean charToBinaryInUtf8

Convert (VAR)CHAR to VAR(BINARY) and vice versa with UTF-8 encoding instead of HEX.

#### 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.

#### 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.

#### disallowedTypes

    public java.util.Set<java.lang.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 java.util.HashMap<java.lang.String,DataType> typeByNameMap

Custom mappings from type names to data types.

### Method Detail

#### getInstance

    public static Mode getInstance(java.lang.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 java.lang.String getName()

#### getEnum

    public Mode.ModeEnum getEnum()

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`