@Override
    public PlanNode visitSingleChildProcess(SingleChildProcessNode node, Void context) {
      PlanNode rewrittenChild = node.getChild().accept(this, context);
      node.setChild(rewrittenChild);
      return node;
    }
<b>Optimization phase:</b> Distributed plan planning.

<p><b>Rules:</b>
<pre>1.
       ColumnInject
            |              ->  SeriesAggregationSource
 SeriesAggregationSource
<pre>2.
       ColumnInject
            |              ->        Aggregation
       Aggregation
<pre>3.
       ColumnInject
            |              ->     RawDataAggregation
    RawDataAggregation
<pre>4.
       ColumnInject
            |              ->  SlidingWindowAggregation
 SlidingWindowAggregation
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDown.java