Package 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 Modifier and Type Class Description static class
Mode.CharPadding
When CHAR values are right-padded with spaces.static class
Mode.ExpressionNames
Generation of column names for expressions.static class
Mode.ModeEnum
static class
Mode.UniqueIndexNullsHandling
Determines how rows withNULL
values in indexed columns are handled in unique indexes.static class
Mode.ViewExpressionNames
Generation of column names for expressions to be used in a view.
-
Field Summary
Fields Modifier and Type Field Description 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
allNumericTypesHavePrecision
Iftrue
all numeric data types may have precision and 'UNSIGNED' clause.boolean
allowDB2TimestampFormat
Whether DB2 TIMESTAMP formats are allowed.boolean
allowEmptyInPredicate
Whether IN predicate may have an empty value list.boolean
allowEmptySchemaValuesAsDefaultSchema
Iftrue
constructs like 'CREATE TABLE CATALOG..TABLE_NAME' are allowed, the default schema is used.boolean
allowPlusForStringConcat
Text can be concatenated using '+'.boolean
allowUnrelatedOrderByExpressionsInDistinctQueries
Iftrue
unrelated ORDER BY expression are allowed in DISTINCT queries, iffalse
they are disallowed.boolean
allowUsingFromClauseInUpdateStatement
Iftrue
, allow using from clause in update statement.boolean
alterTableExtensionsMySQL
Iftrue
some additional non-standard ALTER TABLE commands are allowed.boolean
alterTableModifyColumn
Iftrue
non-standard ALTER TABLE MODIFY COLUMN is allowed.boolean
autoIncrementClause
Whether MySQL-style AUTO_INCREMENT clause is supported.boolean
charAndByteLengthUnits
Iftrue
'CHAR' and 'BYTE' length units are allowed.Mode.CharPadding
charPadding
How to pad or trim CHAR values.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
createUniqueConstraintForReferencedColumns
Iftrue
, referential constraints will create a unique constraint on referenced columns if it doesn't exist instead of throwing an exception.boolean
dateTimeValueWithinTransaction
Iftrue
, datetime value function return the same value within a transaction, iffalse
datetime value functions return the same value within a command.boolean
decimalSequences
Iftrue
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.Mode.ExpressionNames
expressionNames
How column names are generated for expressions.boolean
forBitData
Iftrue
'FOR BIT DATA' clauses are allowed for character string data types.boolean
groupByColumnIndex
Allow to use GROUP BY n, where n is column index in the SELECT list, similar to ORDER BYboolean
identityClause
Whether SQL Server-style IDENTITY clause is supported.boolean
identityColumnsHaveDefaultOnNull
Iftrue
, identity columns have DEFAULT ON NULL clause.boolean
identityDataType
Whether IDENTITY pseudo data type is supported.boolean
indexDefinitionInCreateTable
Creating indexes in the CREATE TABLE statement is allowed usingINDEX(..)
orKEY(..)
.boolean
insertOnConflict
PostgreSQL style INSERT ...boolean
isolationLevelInSelectOrInsertStatement
can set the isolation level using WITH {RR|RS|CS|UR}boolean
limit
Whether LIMIT / OFFSET clauses are supported.boolean
logIsLogBase10
The single-argument function LOG() uses base 10 instead of E.boolean
mergeWhere
Iftrue
, merge when matched clause may have WHERE clause.boolean
minusIsExcept
Whether MINUS can be used as EXCEPT.private Mode.ModeEnum
modeEnum
private static java.util.HashMap<java.lang.String,Mode>
MODES
private java.lang.String
name
boolean
nextvalAndCurrvalPseudoColumns
Iftrue
, sequence.NEXTVAL and sequence.CURRVAL pseudo columns are supported.boolean
nextValueReturnsDifferentValues
Iftrue
, the next value expression returns different values when invoked multiple times within a row.boolean
numericWithBooleanComparison
Allow to compare numeric with BOOLEAN.boolean
onDuplicateKeyUpdate
MySQL style INSERT ...boolean
regexpReplaceBackslashReferences
The function REGEXP_REPLACE() uses \ for back-references.boolean
replaceInto
MySQL style REPLACE INTO.boolean
serialDataTypes
Whether SERIAL and BIGSERIAL pseudo data types are supported.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 namesboolean
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
takeGeneratedSequenceValue
Iftrue
, last identity of the session is updated on generation of a new sequence value.boolean
takeInsertedIdentity
Iftrue
, last identity of the session is updated on insertion of a new value into identity column.boolean
topInDML
Whether TOP clause in DML commands is supported.boolean
topInSelect
Whether TOP clause in SELECT queries is supported.boolean
treatEmptyStringsAsNull
Empty strings are treated like NULL values.boolean
truncateTableRestartIdentity
Iftrue
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 withNULL
values in indexed columns are handled in unique indexes.boolean
updateSequenceOnManualIdentityInsertion
Iftrue
, sequences of generated by default identity columns are updated when value is provided by user.Mode.ViewExpressionNames
viewExpressionNames
How column names are generated for views.boolean
zeroExLiteralsAreBinaryStrings
Iftrue
0x
-prefixed numbers are parsed as binary string literals, iffalse
they are parsed as hexadecimal numeric values.
-
Constructor Summary
Constructors Modifier Constructor Description private
Mode(Mode.ModeEnum modeEnum)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static void
add(Mode mode)
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()
-
-
-
Field Detail
-
MODES
private static final java.util.HashMap<java.lang.String,Mode> MODES
-
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 usingINDEX(..)
orKEY(..)
. 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.
-
uniqueIndexNullsHandling
public Mode.UniqueIndexNullsHandling uniqueIndexNullsHandling
Determines how rows withNULL
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.
-
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.
-
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
Iftrue
, datetime value function return the same value within a transaction, iffalse
datetime value functions return the same value within a command.
-
zeroExLiteralsAreBinaryStrings
public boolean zeroExLiteralsAreBinaryStrings
Iftrue
0x
-prefixed numbers are parsed as binary string literals, iffalse
they are parsed as hexadecimal numeric values.
-
allowUnrelatedOrderByExpressionsInDistinctQueries
public boolean allowUnrelatedOrderByExpressionsInDistinctQueries
Iftrue
unrelated ORDER BY expression are allowed in DISTINCT queries, iffalse
they are disallowed.
-
alterTableExtensionsMySQL
public boolean alterTableExtensionsMySQL
Iftrue
some additional non-standard ALTER TABLE commands are allowed.
-
alterTableModifyColumn
public boolean alterTableModifyColumn
Iftrue
non-standard ALTER TABLE MODIFY COLUMN is allowed.
-
truncateTableRestartIdentity
public boolean truncateTableRestartIdentity
Iftrue
TRUNCATE TABLE uses RESTART IDENTITY by default.
-
decimalSequences
public boolean decimalSequences
Iftrue
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
Iftrue
constructs like 'CREATE TABLE CATALOG..TABLE_NAME' are allowed, the default schema is used.
-
allNumericTypesHavePrecision
public boolean allNumericTypesHavePrecision
Iftrue
all numeric data types may have precision and 'UNSIGNED' clause.
-
forBitData
public boolean forBitData
Iftrue
'FOR BIT DATA' clauses are allowed for character string data types.
-
charAndByteLengthUnits
public boolean charAndByteLengthUnits
Iftrue
'CHAR' and 'BYTE' length units are allowed.
-
nextvalAndCurrvalPseudoColumns
public boolean nextvalAndCurrvalPseudoColumns
Iftrue
, sequence.NEXTVAL and sequence.CURRVAL pseudo columns are supported.
-
nextValueReturnsDifferentValues
public boolean nextValueReturnsDifferentValues
Iftrue
, 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
Iftrue
, sequences of generated by default identity columns are updated when value is provided by user.
-
takeInsertedIdentity
public boolean takeInsertedIdentity
Iftrue
, last identity of the session is updated on insertion of a new value into identity column.
-
takeGeneratedSequenceValue
public boolean takeGeneratedSequenceValue
Iftrue
, last identity of the session is updated on generation of a new sequence value.
-
identityColumnsHaveDefaultOnNull
public boolean identityColumnsHaveDefaultOnNull
Iftrue
, identity columns have DEFAULT ON NULL clause.
-
mergeWhere
public boolean mergeWhere
Iftrue
, merge when matched clause may have WHERE clause.
-
allowUsingFromClauseInUpdateStatement
public boolean allowUsingFromClauseInUpdateStatement
Iftrue
, allow using from clause in update statement.
-
createUniqueConstraintForReferencedColumns
public boolean createUniqueConstraintForReferencedColumns
Iftrue
, 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.
-
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.
-
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.
-
name
private final java.lang.String name
-
modeEnum
private final Mode.ModeEnum modeEnum
-
-
Constructor Detail
-
Mode
private Mode(Mode.ModeEnum modeEnum)
-
-
Method Detail
-
add
private static void add(Mode mode)
-
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 classjava.lang.Object
-
-