Class LeafStageTransferableBlockOperator

  • All Implemented Interfaces:
    AutoCloseable, Operator<TransferableBlock>

    public class LeafStageTransferableBlockOperator
    extends MultiStageOperator
    Leaf-stage transfer block operator is used to wrap around the leaf stage process results. They are passed to the Pinot server to execute query thus only one DataTable were returned. However, to conform with the intermediate stage operators. An additional MetadataBlock needs to be transferred after the data block.

    In order to achieve this:

    • The leaf-stage result is split into data payload block and metadata payload block.
    • In case the leaf-stage result contains error or only metadata, we skip the data payload block.
    • Leaf-stage result blocks are in the DataSchema.getStoredColumnDataTypes() format thus requires canonicalization.