Class AbstractDdlRel

All Implemented Interfaces:
HasExtension, Rel
Direct Known Subclasses:
ExtensionDdl, NamedDdl

public abstract class AbstractDdlRel extends ZeroInputRel implements HasExtension
Base class for DDL relations with no inputs.

Defines schema/defaults, DDL object and operation, and optional view definition.

  • Constructor Details

    • AbstractDdlRel

      public AbstractDdlRel()
  • Method Details

    • getTableSchema

      public abstract NamedStruct getTableSchema()
      Returns the target table/view schema (names + types).
      Returns:
      target NamedStruct
    • getTableDefaults

      public abstract Expression.StructLiteral getTableDefaults()
      Returns default values for the table columns.
      Returns:
      defaults as Expression.StructLiteral
    • getObject

      public abstract AbstractDdlRel.DdlObject getObject()
      Returns the DDL object kind (table or view).
      Returns:
      DDL object
    • getOperation

      public abstract AbstractDdlRel.DdlOp getOperation()
      Returns the DDL operation (create/alter/drop, etc.).
      Returns:
      DDL operation
    • getViewDefinition

      public abstract Optional<Rel> getViewDefinition()
      Returns the view definition when the object is a view.
      Returns:
      optional view definition relation
    • deriveRecordType

      public Type.Struct deriveRecordType()
      Derives the output record type from the declared schema.
      Specified by:
      deriveRecordType in class AbstractRel
      Returns:
      Type.Struct from getTableSchema()