Class IntervalSqlType

All Implemented Interfaces:
Serializable, Cloneable, RelDataType, RelDataTypeFamily

public class IntervalSqlType extends AbstractSqlType
IntervalSqlType represents a standard SQL datetime interval type.
See Also:
  • 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

      protected void generateTypeString(StringBuilder sb, boolean withDetail)
      Description copied from class: RelDataTypeImpl
      Generates a string representation of this type.
      Specified by:
      generateTypeString in 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;
    • getIntervalQualifier

      public SqlIntervalQualifier getIntervalQualifier()
      Description copied from interface: RelDataType
      Gets this type's interval qualifier, or null if this is not an interval type.
      Specified by:
      getIntervalQualifier in interface RelDataType
      Overrides:
      getIntervalQualifier in class RelDataTypeImpl
      Returns:
      interval qualifier
    • combine

      public IntervalSqlType combine(RelDataTypeFactoryImpl typeFactory, IntervalSqlType that)
      Combines two IntervalTypes and returns the result. E.g. the result of combining
      INTERVAL DAY TO HOUR
      with
      INTERVAL SECOND is
      INTERVAL DAY TO SECOND
    • getPrecision

      public int getPrecision()
      Description copied from interface: RelDataType
      Gets 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:
      getPrecision in interface RelDataType
      Overrides:
      getPrecision in 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
    • getScale

      public int getScale()
      Description copied from interface: RelDataType
      Gets the scale of this type. Returns RelDataType.SCALE_NOT_SPECIFIED (-1) if scale is not valid for this type.
      Specified by:
      getScale in interface RelDataType
      Overrides:
      getScale in class RelDataTypeImpl
      Returns:
      number of digits of scale