Package org.apache.calcite.sql.type
Class BasicSqlType
java.lang.Object
org.apache.calcite.rel.type.RelDataTypeImpl
org.apache.calcite.sql.type.AbstractSqlType
org.apache.calcite.sql.type.BasicSqlType
- All Implemented Interfaces:
- Serializable,- Cloneable,- RelDataType,- RelDataTypeFamily
BasicSqlType represents a standard atomic SQL type (excluding interval
 types).
 
Instances of this class are immutable.
- See Also:
- 
Field SummaryFieldsFields inherited from class org.apache.calcite.sql.type.AbstractSqlTypeisNullable, typeNameFields inherited from class org.apache.calcite.rel.type.RelDataTypeImpldigest, fieldList, NON_NULLABLE_SUFFIXFields inherited from interface org.apache.calcite.rel.type.RelDataTypePRECISION_NOT_SPECIFIED, SCALE_NOT_SPECIFIED
- 
Constructor SummaryConstructorsModifierConstructorDescriptionBasicSqlType(RelDataTypeSystem typeSystem, SqlTypeName typeName) Constructs a type with no parameters.protectedBasicSqlType(RelDataTypeSystem typeSystem, SqlTypeName typeName, boolean nullable) BasicSqlType(RelDataTypeSystem typeSystem, SqlTypeName typeName, int precision) Constructs a type with precision/length but no scale.BasicSqlType(RelDataTypeSystem typeSystem, SqlTypeName typeName, int precision, int scale) Constructs a type with precision/length and scale.
- 
Method SummaryModifier and TypeMethodDescriptionprotected static voidcheckPrecScale(SqlTypeName typeName, boolean precisionSpecified, boolean scaleSpecified) Throws iftypeNamedoes not allow the given combination of precision and scale.createWithNullability(boolean nullable) Constructs a type with nullablity.protected voidgenerateTypeString(StringBuilder sb, boolean withDetail) Generates a string representation of this type.@Nullable CharsetGets this type's character set, or null if this type cannot carry a character set or has no character set defined.@Nullable SqlCollationGets this type's collation, or null if this type cannot carry a collation or has no collation defined.@Nullable ObjectgetLimit(boolean sign, SqlTypeName.Limit limit, boolean beyond) Returns a value which is a limit for this type.intGets the JDBC-defined precision for values of this type.intgetScale()Gets the scale of this type.Methods inherited from class org.apache.calcite.sql.type.AbstractSqlTypegetFamily, getPrecedenceList, getSqlTypeName, isNullableMethods inherited from class org.apache.calcite.rel.type.RelDataTypeImplcomputeDigest, equals, extra, getComparability, getComponentType, getField, getFieldCount, getFieldList, getFieldMap, getFieldNames, getFullTypeString, getIntervalQualifier, getKeyType, getSqlIdentifier, getStructKind, getValueType, hashCode, isDynamicStruct, isStruct, proto, proto, proto, proto, toStringMethods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.calcite.rel.type.RelDataTypeequalsSansFieldNames, equalsSansFieldNamesAndNullability, getMeasureElementType, isMeasure
- 
Field Details- 
typeSystem
 
- 
- 
Constructor Details- 
BasicSqlTypeConstructs a type with no parameters. This should only be called from a factory method.- Parameters:
- typeSystem- Type system
- typeName- Type name
 
- 
BasicSqlType
- 
BasicSqlTypeConstructs a type with precision/length but no scale.- Parameters:
- typeSystem- Type system
- typeName- Type name
- precision- Precision (called length for some types)
 
- 
BasicSqlTypeConstructs a type with precision/length and scale.- Parameters:
- typeSystem- Type system
- typeName- Type name
- precision- Precision (called length for some types)
- scale- Scale
 
 
- 
- 
Method Details- 
checkPrecScaleprotected static void checkPrecScale(SqlTypeName typeName, boolean precisionSpecified, boolean scaleSpecified) Throws iftypeNamedoes not allow the given combination of precision and scale.
- 
createWithNullabilityConstructs a type with nullablity.
- 
getPrecisionpublic int getPrecision()Description copied from interface:RelDataTypeGets the JDBC-defined precision for values of this type. Note that this is not always the same as the user-specified precision. For example, the type INTEGER has no user-specified precision, but this method returns 10 for an INTEGER type.Returns RelDataType.PRECISION_NOT_SPECIFIED(-1) if precision is not applicable for this type.- Specified by:
- getPrecisionin interface- RelDataType
- Overrides:
- getPrecisionin class- RelDataTypeImpl
- Returns:
- number of decimal digits for exact numeric types; number of decimal digits in mantissa for approximate numeric types; number of decimal digits for fractional seconds of datetime types; length in characters for character types; length in bytes for binary types; length in bits for bit types; 1 for BOOLEAN; -1 if precision is not valid for this type
 
- 
getScalepublic int getScale()Description copied from interface:RelDataTypeGets the scale of this type. ReturnsRelDataType.SCALE_NOT_SPECIFIED(-1) if scale is not valid for this type.- Specified by:
- getScalein interface- RelDataType
- Overrides:
- getScalein class- RelDataTypeImpl
- Returns:
- number of digits of scale
 
- 
getCharsetDescription copied from interface:RelDataTypeGets this type's character set, or null if this type cannot carry a character set or has no character set defined.- Specified by:
- getCharsetin interface- RelDataType
- Overrides:
- getCharsetin class- RelDataTypeImpl
- Returns:
- charset of type
 
- 
getCollationDescription copied from interface:RelDataTypeGets this type's collation, or null if this type cannot carry a collation or has no collation defined.- Specified by:
- getCollationin interface- RelDataType
- Overrides:
- getCollationin class- RelDataTypeImpl
- Returns:
- collation of type
 
- 
generateTypeStringDescription copied from class:RelDataTypeImplGenerates a string representation of this type.- Specified by:
- generateTypeStringin class- RelDataTypeImpl
- Parameters:
- sb- StringBuilder into which to generate the string
- withDetail- when true, all detail information needed to compute a unique digest (and return from getFullTypeString) should be included;
 
- 
getLimitReturns a value which is a limit for this type.For example, Limits Datatype sign limit beyond precision scale Returns Integer true true false -1 -1 2147483647 (2 ^ 31 -1 = MAXINT) Integer true true true -1 -1 2147483648 (2 ^ 31 = MAXINT + 1) Integer false true false -1 -1 -2147483648 (-2 ^ 31 = MININT) Boolean true true false -1 -1 TRUE Varchar true true false 10 -1 'ZZZZZZZZZZ' - Parameters:
- sign- If true, returns upper limit, otherwise lower limit
- limit- If true, returns value at or near to overflow; otherwise value at or near to underflow
- beyond- If true, returns the value just beyond the limit, otherwise the value at the limit
- Returns:
- Limit value
 
 
-