Package org.apache.calcite.sql.type
Class IntervalSqlType
java.lang.Object
org.apache.calcite.rel.type.RelDataTypeImpl
org.apache.calcite.sql.type.AbstractSqlType
org.apache.calcite.sql.type.IntervalSqlType
- All Implemented Interfaces:
Serializable,Cloneable,RelDataType,RelDataTypeFamily
IntervalSqlType represents a standard SQL datetime interval type.
- See Also:
-
Field Summary
Fields inherited from class org.apache.calcite.sql.type.AbstractSqlType
isNullable, typeNameFields inherited from class org.apache.calcite.rel.type.RelDataTypeImpl
digest, fieldList, NON_NULLABLE_SUFFIXFields inherited from interface org.apache.calcite.rel.type.RelDataType
PRECISION_NOT_SPECIFIED, SCALE_NOT_SPECIFIED -
Constructor Summary
ConstructorsConstructorDescriptionIntervalSqlType(RelDataTypeSystem typeSystem, SqlIntervalQualifier intervalQualifier, boolean isNullable) Constructs an IntervalSqlType. -
Method Summary
Modifier and TypeMethodDescriptioncombine(RelDataTypeFactoryImpl typeFactory, IntervalSqlType that) Combines two IntervalTypes and returns the result.protected voidgenerateTypeString(StringBuilder sb, boolean withDetail) Generates a string representation of this type.Gets this type's interval qualifier, or null if this is not an interval 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.AbstractSqlType
getFamily, getPrecedenceList, getSqlTypeName, isNullableMethods inherited from class org.apache.calcite.rel.type.RelDataTypeImpl
computeDigest, equals, extra, getCharset, getCollation, getComparability, getComponentType, getField, getFieldCount, getFieldList, getFieldMap, getFieldNames, getFullTypeString, getKeyType, getSqlIdentifier, getStructKind, getValueType, hashCode, isDynamicStruct, isStruct, proto, proto, proto, proto, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.calcite.rel.type.RelDataType
equalsSansFieldNames, equalsSansFieldNamesAndNullability, getMeasureElementType, isMeasure
-
Constructor Details
-
IntervalSqlType
public IntervalSqlType(RelDataTypeSystem typeSystem, SqlIntervalQualifier intervalQualifier, boolean isNullable) Constructs an IntervalSqlType. This should only be called from a factory method.
-
-
Method Details
-
generateTypeString
Description copied from class:RelDataTypeImplGenerates a string representation of this type.- Specified by:
generateTypeStringin classRelDataTypeImpl- Parameters:
sb- StringBuilder into which to generate the stringwithDetail- when true, all detail information needed to compute a unique digest (and return from getFullTypeString) should be included;
-
getIntervalQualifier
Description copied from interface:RelDataTypeGets this type's interval qualifier, or null if this is not an interval type.- Specified by:
getIntervalQualifierin interfaceRelDataType- Overrides:
getIntervalQualifierin classRelDataTypeImpl- Returns:
- interval qualifier
-
combine
Combines two IntervalTypes and returns the result. E.g. the result of combining
INTERVAL DAY TO HOUR
with
INTERVAL SECONDis
INTERVAL DAY TO SECOND -
getPrecision
public 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 interfaceRelDataType- Overrides:
getPrecisionin classRelDataTypeImpl- 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
-
getScale
public 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 interfaceRelDataType- Overrides:
getScalein classRelDataTypeImpl- Returns:
- number of digits of scale
-