Class ForceReadUtility

java.lang.Object
io.deephaven.engine.table.impl.ForceReadUtility

@Immutable public abstract class ForceReadUtility extends Object
Utility to force read ColumnSource data from a Table. This is useful to check that all of the data can be successfully read without requiring all of the data to be in-memory (table.select()), or forcing some other table operation to read all of the data (table.where("(isNull(MyCol1) ^ isNull(MyCol2)) && false")).
  • Constructor Details

    • ForceReadUtility

      public ForceReadUtility()
  • Method Details

    • builder

      public static ForceReadUtility.Builder builder()
      Construct a new builder.
      Returns:
      the builder
    • of

      public static void of(Table table)
      Force reads all column data from table. Equivalent to of(builder().table(table).build()).
      Parameters:
      table - the table
      See Also:
    • of

      public static void of(Table table, String... columnNames)
      Force reads all column data of columnNames from table; columnNames must have at least one element. Equivalent to of(builder().table(table).addColumnNames(columnNames).build()).
      Parameters:
      table - the table
      columnNames - the column names
      See Also:
    • of

      public static void of(ForceReadUtility options)
      Force reads column data from table. Equivalent to of(options, options.table().getRowSet()).

      Callers must take an appropriate lock if necessary, see UpdateGraph.checkInitiateSerialTableOperation().

      Parameters:
      options - the options
    • of

      public static void of(ForceReadUtility options, RowSet rowSet)
      Force reads rowSet column data from table. rowSet is expected to be the table's row set or subset.

      Callers must take an appropriate lock if necessary, see UpdateGraph.checkInitiateSerialTableOperation().

      Parameters:
      options - the options
      rowSet - the row set
    • table

      public abstract Table table()
      The table.
      Returns:
      the table
    • columnNames

      public abstract Set<String> columnNames()
      The column names to read. If empty, all of table's columns will be used.
      Returns:
      the column names
    • readSize

      @Default public int readSize()
      The chunk read size. By default, is 2048.
      Returns:
      the read size
    • maxColumns

      @Default public int maxColumns()
      The maximum number of columns to consider at any given time. Setting this to 1 means that each column will be fully read before moving on to the next column; setting this to Integer.MAX_VALUE means that all columns will be read together (that is, rowSet in of(ForceReadUtility, RowSet) will be iterated through exactly once). By default, is 32.
      Returns:
      the maximum number of columns to consider at any given time