@Override
  public TsBlock next() throws Exception {
    TsBlock block = child.nextWithTimer();
    if (block == null) {
      return null;
    }

    checkArgument(
        outputColumnCount == block.getValueColumnCount(),
        "outputColumnCount is not equal to value column count of child operator's TsBlock");

    Column[] valueColumns = new Column[outputColumnCount];

    for (int i = 0; i < outputColumnCount; i++) {
      valueColumns[i] = fillArray[i].fill(getHelperColumn(block), block.getColumn(i));
    }

    return TsBlock.wrapBlocksWithoutCopy(
        block.getPositionCount(), block.getTimeColumn(), valueColumns);
  }
Used for previous and constant value fill.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractFillOperator.java