private LocalExecutionPlanContext createLocalExecutionPlanContext(TypeProvider typeProvider) {
    ExecutorService instanceNotificationExecutor =
        IoTDBThreadPoolFactory.newFixedThreadPool(1, "test-instance-notification");

    QueryId queryId = new QueryId("stub_query");
    FragmentInstanceId instanceId =
        new FragmentInstanceId(new PlanFragmentId(queryId, 0), "stub-instance");
    FragmentInstanceStateMachine stateMachine =
        new FragmentInstanceStateMachine(instanceId, instanceNotificationExecutor);
    DataRegion dataRegion = Mockito.mock(DataRegion.class);
    FragmentInstanceContext fragmentInstanceContext =
        createFragmentInstanceContext(instanceId, stateMachine);
    fragmentInstanceContext.setDataRegion(dataRegion);

    return new LocalExecutionPlanContext(
        typeProvider, fragmentInstanceContext, new DataNodeQueryContext(1));
  }
The operator structure is:

<p>IdentitySinkOperator - [ExchangeOperator - FullOuterTimeJoinOperator1 -
[SeriesScanOperator1, ExchangeOperator, ExchangeOperator], ExchangeOperator -
FullOuterTimeJoinOperator2 - [SeriesScanOperator4, ExchangeOperator, ExchangeOperator],
ExchangeOperator - FullOuterTimeJoinOperator3 - [SeriesScanOperator7, ExchangeOperator,
ExchangeOperator]]

<p>This test will test dop = 4. Expected result is ten pipelines with dependency:

<p>The pipeline0 is: ExchangeOperator - SeriesOperator2.

<p>The pipeline1 is: ExchangeOperator - SeriesOperator3.

<p>The pipeline2 is: ExchangeOperator - FullOuterTimeJoinOperator1 - [SeriesScanOperator1,
ExchangeOperator, ExchangeOperator]

<p>The pipeline3 is: ExchangeOperator - SeriesOperator5, which has dependency 2.

<p>The pipeline4 is: ExchangeOperator - SeriesOperator6, which has dependency 2.

<p>The pipeline5 is: ExchangeOperator - FullOuterTimeJoinOperator2 - [SeriesScanOperator4,
ExchangeOperator, ExchangeOperator], which has dependency 2.

<p>The pipeline7 is: ExchangeOperator - SeriesOperator5, which has dependency 5.

<p>The pipeline8 is: ExchangeOperator - SeriesOperator6, which has dependency 5.

<p>The pipeline9 is: ExchangeOperator - FullOuterTimeJoinOperator2 - [SeriesScanOperator4,
ExchangeOperator, ExchangeOperator], which has dependency 5.

<p>The pipeline10 is: IdentitySinkOperator - [ExchangeOperator1, ExchangeOperator2,
ExchangeOperator3]
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/PipelineBuilderTest.java