Interface MultiJoinStateManager

All Known Implementing Classes:
IncrementalMultiJoinStateManagerTypedBase, StaticMultiJoinStateManagerTypedBase

public interface MultiJoinStateManager
This is a common interface for the static and incremental state manager so that our bucketed MultiJoinTable system is capable of using them interchangeably to build the table.
  • Method Details

    • build

      void build(Table table, ColumnSource<?>[] sources, int tableNumber)
      Add the given table to this multiJoin result.
      Parameters:
      table - the table to add
      sources - the column sources that contain the keys
      tableNumber - the table number for which we are adding rows
    • getResultSize

      long getResultSize()
      Get the number of rows in the result table
      Returns:
      the number of rows in the result table
    • getKeyHashTableSources

      ColumnSource<?>[] getKeyHashTableSources()
      Get the hash table column sources for the result table. These are used as the key columns of our result.
    • getRowRedirectionForTable

      RowRedirection getRowRedirectionForTable(int tableNumber)
      Get the result row redirection for a given table
      Parameters:
      tableNumber - the table to fetch
      Returns:
      the row redirection for the table
    • ensureTableCapacity

      void ensureTableCapacity(int numTables)
      Ensure that this state manager can handle numTables tables as constituents of the multiJoin.
      Parameters:
      numTables - the number of tables that participate
    • setTargetLoadFactor

      void setTargetLoadFactor(double targetLoadFactor)
    • setMaximumLoadFactor

      void setMaximumLoadFactor(double maximumLoadFactor)