Class AggregationControl

java.lang.Object
io.deephaven.engine.table.impl.by.AggregationControl

@VisibleForTesting public class AggregationControl extends Object
Stateless "control" class for giving external code (e.g. unit tests) knobs to turn w.r.t. to how aggregations should be processed.
  • Field Details

  • Constructor Details

    • AggregationControl

      public AggregationControl()
  • Method Details

    • initialHashTableSize

      public int initialHashTableSize(@NotNull @NotNull Table inputTable)
    • getTargetLoadFactor

      public double getTargetLoadFactor()
    • getMaximumLoadFactor

      public double getMaximumLoadFactor()
    • dataIndexToUse

      @Nullable public @Nullable BasicDataIndex dataIndexToUse(@NotNull @NotNull Table table, @NotNull @NotNull String... keyColumnNames)
      Get a BasicDataIndex to use for aggregating table by keyColumnNames.

      This call should be enclosed within a LivenessScope to ensure liveness is not unintentionally leaked for any new indexes or tables created. If a non-null BasicDataIndex.isRefreshing() is returned, it will have been managed by the enclosing LivenessScope.

      If a non-null result is returned, it will have transformed as needed to ensure that the BasicDataIndex.table() is sorted by first row key.

      Parameters:
      table - The Table to aggregate
      keyColumnNames - The column names to aggregate by
      Returns:
      The DataIndex to use, or null if no index should be used