Class UpdateBy

java.lang.Object
io.deephaven.engine.table.impl.updateby.UpdateBy
Direct Known Subclasses:
ZeroKeyUpdateByManager

public abstract class UpdateBy extends Object
  • Field Details

    • inputSources

      protected final ColumnSource<?>[] inputSources
      Input sources may be reused by multiple operators, only store and cache unique ones (post-reinterpret)
    • windows

      protected final io.deephaven.engine.table.impl.updateby.UpdateByWindow[] windows
      All the windows for this UpdateBy manager
    • source

      protected final QueryTable source
      The source table for the UpdateBy operators
    • redirHelper

      protected final io.deephaven.engine.table.impl.updateby.UpdateBy.UpdateByRedirectionHelper redirHelper
      Helper class for maintaining the RowRedirection when using redirected output sources
    • control

      protected final UpdateByControl control
      User control to specify UpdateBy parameters
    • timestampColumnName

      protected final String timestampColumnName
      The single timestamp column used by all time-based operators
    • inputCacheNeeded

      protected final boolean inputCacheNeeded
      Whether caching benefits this UpdateBy operation
    • inputSourceCacheNeeded

      protected final boolean[] inputSourceCacheNeeded
      Whether caching benefits each input source
    • inputSourceCaches

      protected final SoftReference<WritableColumnSource<?>>[] inputSourceCaches
      References to the dense array sources we are using for the cached sources. It's expected that these will be released and need to be created.
    • cacheableSourceIndices

      protected final int[] cacheableSourceIndices
      For easy iteration, create a list of the source indices that need to be cached
    • buckets

      protected final IntrusiveDoublyLinkedQueue<io.deephaven.engine.table.impl.updateby.UpdateByBucketHelper> buckets
      Store every bucket in this list for processing
  • Constructor Details

    • UpdateBy

      protected UpdateBy(@NotNull @NotNull QueryTable source, @NotNull @NotNull io.deephaven.engine.table.impl.updateby.UpdateByWindow[] windows, @NotNull @NotNull ColumnSource<?>[] inputSources, @Nullable @Nullable String timestampColumnName, @Nullable @Nullable RowRedirection rowRedirection, @NotNull @NotNull UpdateByControl control)
  • Method Details

    • result

      protected abstract QueryTable result()
    • sourceListener

      protected abstract io.deephaven.engine.table.impl.updateby.UpdateBy.UpdateByListener sourceListener()
    • mcsTransformer

      protected abstract ModifiedColumnSet.Transformer mcsTransformer()
    • upstreamSatisfied

      protected abstract boolean upstreamSatisfied(long step)
    • maybeDeliverPendingFailure

      protected abstract boolean maybeDeliverPendingFailure()
    • updateBy

      public static Table updateBy(@NotNull @NotNull QueryTable source, @NotNull @NotNull Collection<? extends UpdateByOperation> clauses, @NotNull @NotNull Collection<? extends ColumnName> byColumns, @NotNull @NotNull UpdateByControl control)
    • updateBy

      public static Table updateBy(@NotNull @NotNull QueryTable source, @NotNull @NotNull UpdateBy.UpdateByOperatorCollection operatorCollection, @NotNull @NotNull UpdateByControl control)
      Apply the specified operations to each group of rows in the source table and produce a result table with the same row set as the source with each operator applied.
      Parameters:
      source - the source to apply to.
      operatorCollection - the collection of operations to apply.
      Returns:
      a new table with the same index as the source with all the operations applied.