@Test
  public void testLeftOuterTimeJoinPipelineBuilder1() throws IllegalPathException {
    TypeProvider typeProvider = new TypeProvider();
    LeftOuterTimeJoinNode leftOuterTimeJoinNode = initLeftOuterTimeJoinNode(typeProvider);
    LocalExecutionPlanContext context = createLocalExecutionPlanContext(typeProvider);
    context.setDegreeOfParallelism(1);

    List<Operator> childrenOperator =
        operatorTreeGenerator.dealWithConsumeAllChildrenPipelineBreaker(
            leftOuterTimeJoinNode, context);
    assertEquals(0, context.getPipelineNumber());
    assertEquals(2, childrenOperator.size());
    assertEquals(2, leftOuterTimeJoinNode.getChildren().size());

    assertEquals(SeriesScanOperator.class, childrenOperator.get(0).getClass());
    assertEquals(SeriesScanNode.class, leftOuterTimeJoinNode.getLeftChild().getClass());
    assertEquals(
        "root.sg.d0.s1", leftOuterTimeJoinNode.getLeftChild().getOutputColumnNames().get(0));

    assertEquals(SeriesScanOperator.class, childrenOperator.get(1).getClass());
    assertEquals(SeriesScanNode.class, leftOuterTimeJoinNode.getRightChild().getClass());
    assertEquals(
        "root.sg.d1.s1", leftOuterTimeJoinNode.getRightChild().getOutputColumnNames().get(0));

    // Validate the number exchange operator
    assertEquals(0, context.getExchangeSumNum());
  }
The operator structure is [LeftOuterTimeJoin - [SeriesScan0,SeriesScan1]].

<p>The next three tests, I will test this LeftOuterTimeJoinOperator with different dop.

<p>The first test will test dop = 1. Expected result is that no child pipelines will be
divided.
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/PipelineBuilderTest.java