@Override
  public PlanNode visitPipeEnrichedStatement(
      final PipeEnrichedStatement pipeEnrichedStatement, final MPPQueryContext context) {
    final WritePlanNode node =
        (WritePlanNode) pipeEnrichedStatement.getInnerStatement().accept(this, context);

    if (node instanceof LoadTsFileNode) {
      return node;
    } else if (node instanceof InsertNode) {
      return new PipeEnrichedInsertNode((InsertNode) node);
    } else if (node instanceof DeleteDataNode) {
      return new PipeEnrichedDeleteDataNode((DeleteDataNode) node);
    }

    return new PipeEnrichedWritePlanNode(node);
  }
This visitor is used to generate a logical plan for the statement and returns the {@link
PlanNode}.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java