Class DhFormulaColumn

java.lang.Object
io.deephaven.engine.table.impl.select.AbstractFormulaColumn
io.deephaven.engine.table.impl.select.DhFormulaColumn
All Implemented Interfaces:
ConcurrencyControl<Selectable>, Selectable, FormulaColumn, SelectColumn

public class DhFormulaColumn extends AbstractFormulaColumn
  • Field Details

    • useKernelFormulasProperty

      public static boolean useKernelFormulasProperty
  • Method Details

    • getFormulaColumnPython

      public FormulaColumnPython getFormulaColumnPython()
    • getVectorType

      public static Class<?> getVectorType(Class<?> declaredType)
    • initDef

      public List<String> initDef(@NotNull @NotNull Map<String,ColumnDefinition<?>> columnDefinitionMap)
      Description copied from interface: SelectColumn
      Initialize any internal column definitions from the provided initial. Any formulae will be compiled immediately using the QueryCompiler in the current ExecutionContext.
      Parameters:
      columnDefinitionMap - the starting set of column definitions; valid for this call only
      Returns:
      a list of columns on which the result of this is dependent
    • initDef

      public List<String> initDef(@NotNull @NotNull Map<String,ColumnDefinition<?>> columnDefinitionMap, @NotNull @NotNull QueryCompilerRequestProcessor compilationRequestProcessor)
      Description copied from interface: SelectColumn
      Initialize any internal column definitions from the provided initial. A compilation request consumer is provided to allow for deferred compilation of expressions that belong to the same query.

      Compilations must be resolved before using this SelectColumn.

      Parameters:
      columnDefinitionMap - the starting set of column definitions; valid for this call only
      compilationRequestProcessor - a consumer to submit compilation requests; valid for this call only
      Returns:
      a list of columns on which the result of this is dependent
    • getSourceDescriptor

      protected FormulaSourceDescriptor getSourceDescriptor()
      Specified by:
      getSourceDescriptor in class AbstractFormulaColumn
    • getFormulaKernelFactory

      protected CompletionStageFuture<FormulaKernelFactory> getFormulaKernelFactory(@NotNull @NotNull QueryCompilerRequestProcessor compilationRequestProcessor)
    • copy

      public SelectColumn copy()
      Description copied from interface: SelectColumn
      Create a copy of this SelectColumn.
      Returns:
      an independent copy of this SelectColumn.
    • hasConstantValue

      public boolean hasConstantValue()
      Returns:
      true if all rows have a single constant value
    • getFormulaShiftedColumnDefinitions

      public Set<ShiftedColumnDefinition> getFormulaShiftedColumnDefinitions()
      Description copied from interface: FormulaColumn
      Returns a Set of ShiftedColumnDefinitions. If the column formula or expression has Array Access that conforms to "i +/- <constant>" or "ii +/- <constant>". If there is a parsing error for the expression, this method's result is undefined.
      Returns:
      the Set of ShiftedColumnDefinitions or null if there is no constant array access
    • getShiftedFormulaString

      public String getShiftedFormulaString()
      Description copied from interface: FormulaColumn
      Returns a String representation of the formula expression with the shifted column names replaced by the corresponding ShiftedColumnDefinition.getResultColumnName() values.
      Returns:
      the shifted formula string or null if there is no constant array access
    • isStateless

      public boolean isStateless()
      Description copied from interface: SelectColumn
      Returns true if this column is stateless (i.e. one row does not depend on the order of evaluation for another row).
    • isParallelizable

      public boolean isParallelizable()
      Description copied from interface: SelectColumn
      Returns true if this column may be parallelized.

      Even if this method returns true, if the column is not stateless, the engine does not parallelize evaluation. This situation can occur, for example if a Python formula is werapped by a StatelessSelectColumn. Therefore, this method should report true if the column can be parallelized independent of statelessness.

      Even if a column is not parallelizable, the engine may choose to evaluate it out-of-order and may not evaluate all rows individually.

      Returns:
      true if this column may be parallelized
    • getFormulaMethodInvocations

      public FormulaMethodInvocations getFormulaMethodInvocations()