Class SingleColumnAliasRelDataType

java.lang.Object
org.apache.calcite.rel.type.SingleColumnAliasRelDataType
All Implemented Interfaces:
RelDataType

public class SingleColumnAliasRelDataType extends Object implements RelDataType
Specific type of RelDataType that corresponds to a single column table, where column can have alias.

For instance:

select rmp, rmp.i from table(ramp(3)) as rmp;
See Also:
  • Constructor Details

    • SingleColumnAliasRelDataType

      public SingleColumnAliasRelDataType(RelDataType original, RelDataType alias)
  • Method Details

    • isStruct

      public boolean isStruct()
      Description copied from interface: RelDataType
      Queries whether this is a structured type.
      Specified by:
      isStruct in interface RelDataType
      Returns:
      whether this type has fields; examples include rows and user-defined structured types in SQL, and classes in Java
    • getFieldList

      public List<RelDataTypeField> getFieldList()
      Description copied from interface: RelDataType
      Gets the fields in a struct type. The field count is equal to the size of the returned list.
      Specified by:
      getFieldList in interface RelDataType
      Returns:
      read-only list of fields
    • getFieldNames

      public List<String> getFieldNames()
      Description copied from interface: RelDataType
      Returns the names of the fields in a struct type. The field count is equal to the size of the returned list.
      Specified by:
      getFieldNames in interface RelDataType
      Returns:
      read-only list of field names
    • getFieldCount

      public int getFieldCount()
      Description copied from interface: RelDataType
      Returns the number of fields in a struct type.

      This method is equivalent to RelDataType.getFieldList().size().

      Specified by:
      getFieldCount in interface RelDataType
    • getStructKind

      public StructKind getStructKind()
      Description copied from interface: RelDataType
      Returns the rule for resolving the fields of a structured type, or StructKind.NONE if this is not a structured type.
      Specified by:
      getStructKind in interface RelDataType
      Returns:
      the StructKind that determines how this type's fields are resolved
    • getField

      public @Nullable RelDataTypeField getField(String fieldName, boolean caseSensitive, boolean elideRecord)
      Description copied from interface: RelDataType
      Looks up a field by name.

      NOTE: Be careful choosing the value of caseSensitive:

      • If the field name was supplied by an end-user (e.g. as a column alias in SQL), use your session's case-sensitivity setting.
      • Only hard-code true if you are sure that the field name is internally generated.
      • Hard-coding false is almost certainly wrong.
      Specified by:
      getField in interface RelDataType
      Parameters:
      fieldName - Name of field to find
      caseSensitive - Whether match is case-sensitive
      elideRecord - Whether to find fields nested within records
      Returns:
      named field, or null if not found
    • isNullable

      public boolean isNullable()
      Description copied from interface: RelDataType
      Queries whether this type allows null values.
      Specified by:
      isNullable in interface RelDataType
      Returns:
      whether type allows null values
    • getComponentType

      public @Nullable RelDataType getComponentType()
      Description copied from interface: RelDataType
      Gets the component type if this type is a collection, otherwise null.
      Specified by:
      getComponentType in interface RelDataType
      Returns:
      canonical type descriptor for components
    • getKeyType

      public @Nullable RelDataType getKeyType()
      Description copied from interface: RelDataType
      Gets the key type if this type is a map, otherwise null.
      Specified by:
      getKeyType in interface RelDataType
      Returns:
      canonical type descriptor for key
    • getValueType

      public @Nullable RelDataType getValueType()
      Description copied from interface: RelDataType
      Gets the value type if this type is a map, otherwise null.
      Specified by:
      getValueType in interface RelDataType
      Returns:
      canonical type descriptor for value
    • getCharset

      public @Nullable Charset getCharset()
      Description copied from interface: RelDataType
      Gets this type's character set, or null if this type cannot carry a character set or has no character set defined.
      Specified by:
      getCharset in interface RelDataType
      Returns:
      charset of type
    • getCollation

      public @Nullable SqlCollation getCollation()
      Description copied from interface: RelDataType
      Gets this type's collation, or null if this type cannot carry a collation or has no collation defined.
      Specified by:
      getCollation in interface RelDataType
      Returns:
      collation of type
    • getIntervalQualifier

      public @Nullable 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
      Returns:
      interval qualifier
    • 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
      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
      Returns:
      number of digits of scale
    • getSqlTypeName

      public SqlTypeName getSqlTypeName()
      Description copied from interface: RelDataType
      Gets the SqlTypeName of this type.
      Specified by:
      getSqlTypeName in interface RelDataType
      Returns:
      SqlTypeName, never null
    • getSqlIdentifier

      public @Nullable SqlIdentifier getSqlIdentifier()
      Description copied from interface: RelDataType
      Gets the SqlIdentifier associated with this type. For a predefined type, this is a simple identifier based on RelDataType.getSqlTypeName(). For a user-defined type, this is a compound identifier which uniquely names the type.
      Specified by:
      getSqlIdentifier in interface RelDataType
      Returns:
      SqlIdentifier, or null if this is not an SQL type
    • getFullTypeString

      public String getFullTypeString()
      Description copied from interface: RelDataType
      Gets a string representation of this type with full detail such as character set and nullability. The string must serve as a "digest" for this type, meaning two types can be considered identical iff their digests are equal.
      Specified by:
      getFullTypeString in interface RelDataType
      Returns:
      full type string
    • getFamily

      public RelDataTypeFamily getFamily()
      Description copied from interface: RelDataType
      Gets a canonical object representing the family of this type. Two values can be compared if and only if their types are in the same family.
      Specified by:
      getFamily in interface RelDataType
      Returns:
      canonical object representing type family, never null
    • getPrecedenceList

      public RelDataTypePrecedenceList getPrecedenceList()
      Description copied from interface: RelDataType
      Returns the precedence list for this type.
      Specified by:
      getPrecedenceList in interface RelDataType
    • getComparability

      public RelDataTypeComparability getComparability()
      Description copied from interface: RelDataType
      Returns the category of comparison operators that make sense when applied to values of this type.
      Specified by:
      getComparability in interface RelDataType
    • isDynamicStruct

      public boolean isDynamicStruct()
      Description copied from interface: RelDataType
      Returns whether this type has dynamic structure (for "schema-on-read" table).
      Specified by:
      isDynamicStruct in interface RelDataType