Package org.h2.value
Class DataType
java.lang.Object
org.h2.value.DataType
This class contains meta data information about data types,
and can convert between Java objects and Values.
-
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanIf this data type is case sensitive.longThe default precision.intThe default scale.longThe maximum supported precision.intThe highest possible scale.longThe minimum supported precision.intThe lowest possible scale.The list of parameters used in the column definition.The prefix required for the SQL literal representation.booleanIf precision and scale have non-standard default values.intThe SQL type.The suffix required for the SQL literal representation.booleanIf the precision parameter is supported.booleanIf the scale parameter is supported.intThe value type of this data type. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic longaddPrecision(long p1, long p2) Performs saturated addition of precision values.static booleanareStableComparable(TypeInfo type1, TypeInfo type2) Returns whether values of the specified data types have session-independent compare results.static intconvertSQLTypeToValueType(int sqlType) Convert a SQL type to a value type.static intconvertSQLTypeToValueType(int sqlType, String sqlTypeName) Convert a SQL type to a value type using SQL type name, in order to manage SQL type extension mechanism.static intconvertSQLTypeToValueType(SQLType sqlType) Convert a SQL type to a value type.static intconvertTypeToSQLType(TypeInfo type) Convert a value type to a SQL type.static DataTypecreateDate(int maxPrecision, int precision, String prefix, boolean supportsScale, int scale, int maxScale) Create a date-time data type.static DataTypecreateNumeric(int precision, int scale) Create a numeric data type without parameters.static DataTypegetDataType(int type) Get the data type object for the given value type.static ObjectgetDefaultForPrimitiveType(Class<?> clazz) Get the default value in the form of a Java object for the given Java class.static DataTypegetTypeByName(String s, Mode mode) Get a data type object from a type name.static intgetValueTypeFromResultSet(ResultSetMetaData meta, int columnIndex) Get the SQL type from the result set meta data for the given column.static booleanhasTotalOrdering(int type) Check if the given type has total ordering.static booleanisBinaryColumn(ResultSetMetaData meta, int column) Check whether the specified column needs the binary representation.static booleanisBinaryStringOrSpecialBinaryType(int type) Check if the given value type is a binary string type or a compatible special data type such as Java object, UUID, geometry object, or JSON.static booleanisBinaryStringType(int type) Check if the given value type is a binary string type.static booleanisCharacterStringType(int type) Check if the given value type is a character string type.static booleanisDateTimeType(int type) Check if the given value type is a date-time type (TIME, DATE, TIMESTAMP, TIMESTAMP_TZ).static booleanisIndexable(TypeInfo type) Returns whether columns with the specified data type may have an index.static booleanisIntervalType(int type) Check if the given value type is an interval type.static booleanisLargeObject(int type) Check if the given value type is a large object (BLOB or CLOB).static booleanisNumericType(int type) Check if the given value type is a numeric type.static booleanisStringType(int type) Check if the given value type is a String (VARCHAR,...).static booleanisYearMonthIntervalType(int type) Check if the given value type is a year-month interval type.static StringsqlTypeToString(SQLType sqlType) Convert a SQL type to a debug string.
-
Field Details
-
type
public int typeThe value type of this data type. -
sqlType
public int sqlTypeThe SQL type. -
minPrecision
public long minPrecisionThe minimum supported precision. -
maxPrecision
public long maxPrecisionThe maximum supported precision. -
minScale
public int minScaleThe lowest possible scale. -
maxScale
public int maxScaleThe highest possible scale. -
prefix
The prefix required for the SQL literal representation. -
suffix
The suffix required for the SQL literal representation. -
params
The list of parameters used in the column definition. -
caseSensitive
public boolean caseSensitiveIf this data type is case sensitive. -
supportsPrecision
public boolean supportsPrecisionIf the precision parameter is supported. -
supportsScale
public boolean supportsScaleIf the scale parameter is supported. -
defaultPrecision
public long defaultPrecisionThe default precision. -
defaultScale
public int defaultScaleThe default scale. -
specialPrecisionScale
public boolean specialPrecisionScaleIf precision and scale have non-standard default values.
-
-
Constructor Details
-
DataType
public DataType()
-
-
Method Details
-
createNumeric
Create a numeric data type without parameters.- Parameters:
precision- precisionscale- scale- Returns:
- data type
-
createDate
public static DataType createDate(int maxPrecision, int precision, String prefix, boolean supportsScale, int scale, int maxScale) Create a date-time data type.- Parameters:
maxPrecision- maximum supported precisionprecision- default precisionprefix- the prefix for SQL literal representationsupportsScale- whether the scale parameter is supportedscale- default scalemaxScale- highest possible scale- Returns:
- data type
-
getDataType
Get the data type object for the given value type.- Parameters:
type- the value type- Returns:
- the data type object
-
convertTypeToSQLType
Convert a value type to a SQL type.- Parameters:
type- the type- Returns:
- the SQL type
-
convertSQLTypeToValueType
Convert a SQL type to a value type using SQL type name, in order to manage SQL type extension mechanism.- Parameters:
sqlType- the SQL typesqlTypeName- the SQL type name- Returns:
- the value type
-
getValueTypeFromResultSet
public static int getValueTypeFromResultSet(ResultSetMetaData meta, int columnIndex) throws SQLException Get the SQL type from the result set meta data for the given column. This method uses the SQL type and type name.- Parameters:
meta- the meta datacolumnIndex- the column index (1, 2,...)- Returns:
- the value type
- Throws:
SQLException- on failure
-
isBinaryColumn
Check whether the specified column needs the binary representation.- Parameters:
meta- metadatacolumn- column index- Returns:
trueif column needs the binary representation,falseotherwise- Throws:
SQLException- on SQL exception
-
convertSQLTypeToValueType
Convert a SQL type to a value type.- Parameters:
sqlType- the SQL type- Returns:
- the value type
-
convertSQLTypeToValueType
public static int convertSQLTypeToValueType(int sqlType) Convert a SQL type to a value type.- Parameters:
sqlType- the SQL type- Returns:
- the value type
-
sqlTypeToString
Convert a SQL type to a debug string.- Parameters:
sqlType- the SQL type- Returns:
- the textual representation
-
getTypeByName
Get a data type object from a type name.- Parameters:
s- the type namemode- database mode- Returns:
- the data type object
-
isIndexable
Returns whether columns with the specified data type may have an index.- Parameters:
type- the data type- Returns:
- whether an index is allowed
-
areStableComparable
Returns whether values of the specified data types have session-independent compare results.- Parameters:
type1- the first data typetype2- the second data type- Returns:
- are values have session-independent compare results
-
isDateTimeType
public static boolean isDateTimeType(int type) Check if the given value type is a date-time type (TIME, DATE, TIMESTAMP, TIMESTAMP_TZ).- Parameters:
type- the value type- Returns:
- true if the value type is a date-time type
-
isIntervalType
public static boolean isIntervalType(int type) Check if the given value type is an interval type.- Parameters:
type- the value type- Returns:
- true if the value type is an interval type
-
isYearMonthIntervalType
public static boolean isYearMonthIntervalType(int type) Check if the given value type is a year-month interval type.- Parameters:
type- the value type- Returns:
- true if the value type is a year-month interval type
-
isLargeObject
public static boolean isLargeObject(int type) Check if the given value type is a large object (BLOB or CLOB).- Parameters:
type- the value type- Returns:
- true if the value type is a lob type
-
isNumericType
public static boolean isNumericType(int type) Check if the given value type is a numeric type.- Parameters:
type- the value type- Returns:
- true if the value type is a numeric type
-
isBinaryStringType
public static boolean isBinaryStringType(int type) Check if the given value type is a binary string type.- Parameters:
type- the value type- Returns:
- true if the value type is a binary string type
-
isCharacterStringType
public static boolean isCharacterStringType(int type) Check if the given value type is a character string type.- Parameters:
type- the value type- Returns:
- true if the value type is a character string type
-
isStringType
public static boolean isStringType(int type) Check if the given value type is a String (VARCHAR,...).- Parameters:
type- the value type- Returns:
- true if the value type is a String type
-
isBinaryStringOrSpecialBinaryType
public static boolean isBinaryStringOrSpecialBinaryType(int type) Check if the given value type is a binary string type or a compatible special data type such as Java object, UUID, geometry object, or JSON.- Parameters:
type- the value type- Returns:
- true if the value type is a binary string type or a compatible special data type
-
hasTotalOrdering
public static boolean hasTotalOrdering(int type) Check if the given type has total ordering.- Parameters:
type- the value type- Returns:
- true if the value type has total ordering
-
addPrecision
public static long addPrecision(long p1, long p2) Performs saturated addition of precision values.- Parameters:
p1- the first summandp2- the second summand- Returns:
- the sum of summands, or
Long.MAX_VALUEif either argument is negative or sum is out of range
-
getDefaultForPrimitiveType
Get the default value in the form of a Java object for the given Java class.- Parameters:
clazz- the Java class- Returns:
- the default object
-