Interface ExtensibleTable

All Superinterfaces:

public interface ExtensibleTable extends Table
Table whose row type can be extended to include extra fields.

In some storage systems, especially those with "late schema", there may exist columns that have values in the table but which are not declared in the table schema. However, a particular query may wish to reference these columns as if they were defined in the schema. Calling the extend(java.util.List<org.apache.calcite.rel.type.RelDataTypeField>) method creates a temporarily extended table schema.

If the table implements extended interfaces such as ScannableTable, FilterableTable or ProjectableFilterableTable, you may wish to make the table returned from extend(java.util.List<org.apache.calcite.rel.type.RelDataTypeField>) implement these interfaces as well.

  • Method Details

    • extend

      Table extend(List<RelDataTypeField> fields)
      Returns a table that has the row type of this table plus the given fields.
    • getExtendedColumnOffset

      int getExtendedColumnOffset()
      Returns the starting offset of the first extended column, which may differ from the field count when the table stores metadata columns that are not counted in the row-type field count.