@Override
  public TsBlock next() throws Exception {
    if (!child.hasNextWithTimer()) {
      return null;
    }

    TsBlock tsBlock = child.nextWithTimer();
    if (tsBlock == null) {
      return null;
    }

    Column[] columnsToBeInjected = columnGenerator.generate(tsBlock.getPositionCount());

    // If targetIndex is the tail of array, we can use append() to improve performance
    tsBlock =
        targetInjectIndex == tsBlock.getValueColumnCount()
            ? tsBlock.appendValueColumns(columnsToBeInjected)
            : tsBlock.insertValueColumn(targetInjectIndex, columnsToBeInjected);

    return tsBlock;
  }
This operator can be used to insert a column in TsBlock, the column is generated by
StaticColumnGenerator which is decided when analyzing.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ColumnInjectOperator.java