@Override
    public PlanNode visitPlan(PlanNode node, Context context) {
      PlanNode newNode = node.clone();
      for (PlanNode child : node.getChildren()) {
        newNode.addChild(child.accept(this, context));
      }
      return newNode;
    }
<b>Optimization phase:</b> Logical plan planning.

<p>The Aggregation may be pushed down to the DeviceTableScanNode, so that we can make use of
statistics.

<p>Attention: This optimizer depends on {@link UnaliasSymbolReferences}.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java