Class DeferredViewTable

All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable, NotificationQueue.Dependency, Deflatable<Table>, Table, LivenessManager, LivenessNode, LivenessReferent, LongSizedDataStructure, DynamicNode, DynamicTable, NotificationStepReceiver, NotificationStepSource, SystemicObject, Serializable

public class DeferredViewTable extends RedefinableTable
An uncoalesced table with view and where operations to be applied after UncoalescedTable.coalesce() is forced.
See Also:
  • Field Details

    • deferredDropColumns

      protected final String[] deferredDropColumns
    • deferredViewColumns

      protected final SelectColumn[] deferredViewColumns
    • deferredFilters

      protected final SelectFilter[] deferredFilters
  • Constructor Details

  • Method Details

    • addInternalPartitionColumn

      @ScriptApi public DeferredViewTable addInternalPartitionColumn(@NotNull String name)
      Attempt to add the Internal Partition column to the table. This operation is only valid when this DeferredViewTable was created from a PartitionAwareSourceTable.
      Parameters:
      name - the name for the new column
      Returns:
      a new DeferredViewTable with the internal partition column.
    • where

      public Table where(SelectFilter... filters)
      Specified by:
      where in interface Table
      Overrides:
      where in class UncoalescedTable
    • doCoalesce

      protected DynamicTable doCoalesce()
      Description copied from class: UncoalescedTable
      Produce the actual coalesced result table, suitable for caching.

      Note that if this table must have listeners registered, etc, setting these up is the implementation's responsibility.

      Also note that the implementation should copy attributes, as in copyAttributes(resultTable, CopyAttributeOperation.Coalesce).

      Specified by:
      doCoalesce in class UncoalescedTable
      Returns:
      The coalesced result table, suitable for caching
    • selectDistinct

      public Table selectDistinct(SelectColumn... columns)
      Specified by:
      selectDistinct in interface Table
      Overrides:
      selectDistinct in class UncoalescedTable
    • redefine

      protected Table redefine(TableDefinition newDefinition)
      Description copied from class: RedefinableTable
      Redefine this table with a subset of its current columns.
      Specified by:
      redefine in class RedefinableTable
      Parameters:
      newDefinition - A TableDefinition with a subset of this RedefinableTable's ColumnDefinitions.
      Returns:
    • redefine

      protected Table redefine(TableDefinition newDefinitionExternal, TableDefinition newDefinitionInternal, SelectColumn[] viewColumns, Map<String,Set<String>> columnDependency)
      Description copied from class: RedefinableTable
      Redefine this table with a subset of its current columns, with a potentially-differing definition to present to external interfaces and one or more select columns to apply.
      Specified by:
      redefine in class RedefinableTable
      Parameters:
      newDefinitionExternal - A TableDefinition that represents the results of redefine(newDefinitionInternal).view(viewColumns).
      newDefinitionInternal - A TableDefinition with a subset of this RedefinableTable's ColumnDefinitions.
      viewColumns - A set of SelectColumns to apply in order to transform a table with newDefinitionInternal to a table with newDefinitionExternal.
      Returns: