Class SplitStats.Builder

java.lang.Object
org.elasticsearch.xpack.esql.datasources.SplitStats.Builder
Enclosing class:
SplitStats

public static final class SplitStats.Builder extends Object
Builder for constructing SplitStats instances. Columns are added via addColumn(String) which returns an ordinal for subsequent stat calls. Path segments are deduplicated automatically.
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • rowCount

      public SplitStats.Builder rowCount(long rowCount)
    • sizeInBytes

      public SplitStats.Builder sizeInBytes(long sizeInBytes)
    • addColumn

      public int addColumn(String name)
      Adds a column and returns its ordinal. The column name is split on '.' and each segment is deduplicated in the path-segment dictionary.
      Throws:
      IllegalArgumentException - if a column with the same name was already added
    • addColumn

      public int addColumn(String name, long nullCount, @Nullable Object min, @Nullable Object max, long sizeBytes)
      Adds a column with all stats in a single call and returns its ordinal. Use -1 for unknown longs and null for unknown objects.
      Throws:
      IllegalArgumentException - if a column with the same name was already added
    • nullCount

      public SplitStats.Builder nullCount(int columnOrdinal, long nullCount)
    • valueCount

      public SplitStats.Builder valueCount(int columnOrdinal, long valueCount)
    • min

      public SplitStats.Builder min(int columnOrdinal, Object min)
    • max

      public SplitStats.Builder max(int columnOrdinal, Object max)
    • sizeBytes

      public SplitStats.Builder sizeBytes(int columnOrdinal, long sizeBytes)
    • minUnservable

      public SplitStats.Builder minUnservable(int columnOrdinal)
      Marks the column's MIN as poisoned (unservable): a fold found it incompatible, so it must not be served.
    • maxUnservable

      public SplitStats.Builder maxUnservable(int columnOrdinal)
      Marks the column's MAX as poisoned (unservable): a fold found it incompatible, so it must not be served.
    • build

      public SplitStats build()