Class Expand

All Implemented Interfaces:
Rel
Direct Known Subclasses:
ImmutableExpand

@Enclosing @Immutable public abstract class Expand extends SingleInputRel
Expands the input relation into a set of projected fields where each field is either consistent or switches among duplicate expressions.
  • Constructor Details

    • Expand

      public Expand()
  • Method Details

    • getFields

      public abstract List<Expand.ExpandField> getFields()
      Returns the fields produced by the expand operation.
      Returns:
      the list of expand fields
    • deriveRecordType

      public Type.Struct deriveRecordType()
      Derives the output record type from the expand fields.
      Specified by:
      deriveRecordType in class AbstractRel
      Returns:
      the resulting struct type
    • accept

      public <O, C extends VisitationContext, E extends Exception> O accept(RelVisitor<O,C,E> visitor, C context) throws E
      Accepts a relation visitor.
      Type Parameters:
      O - the result type
      C - the visitation context type
      E - the exception type that may be thrown
      Parameters:
      visitor - the relation visitor
      context - the visitation context
      Returns:
      the visit result
      Throws:
      E - if the visitor signals an error
    • builder

      public static ImmutableExpand.Builder builder()
      Creates a builder for Expand.
      Returns:
      a new immutable builder