| 1560 | } |
| 1561 | |
| 1562 | bool |
| 1563 | InitializeGpParallelWorkers(PlanState *planstate, ParallelWorkerContext *pwcxt) |
| 1564 | { |
| 1565 | if (planstate == NULL) |
| 1566 | return false; |
| 1567 | switch (nodeTag(planstate)) |
| 1568 | { |
| 1569 | case T_MotionState: |
| 1570 | /* |
| 1571 | * If we walk to MotionStateNode with Recv Motion Type, we should return directly. |
| 1572 | * So that we can only Initialize Parallel Entry for current Slice. |
| 1573 | */ |
| 1574 | if (((MotionState *) planstate)->mstype == MOTIONSTATE_RECV) |
| 1575 | return false; |
| 1576 | break; |
| 1577 | case T_SeqScanState: |
| 1578 | if (planstate->plan->parallel_aware) |
| 1579 | ExecSeqScanInitializeWorker((SeqScanState *) planstate, pwcxt); |
| 1580 | break; |
| 1581 | case T_IndexScanState: |
| 1582 | if (planstate->plan->parallel_aware) |
| 1583 | ExecIndexScanInitializeWorker((IndexScanState *) planstate, |
| 1584 | pwcxt); |
| 1585 | break; |
| 1586 | case T_IndexOnlyScanState: |
| 1587 | if (planstate->plan->parallel_aware) |
| 1588 | ExecIndexOnlyScanInitializeWorker((IndexOnlyScanState *) planstate, |
| 1589 | pwcxt); |
| 1590 | break; |
| 1591 | case T_BitmapHeapScanState: |
| 1592 | if (planstate->plan->parallel_aware) |
| 1593 | ExecBitmapHeapInitializeWorker((BitmapHeapScanState *) planstate, pwcxt); |
| 1594 | break; |
| 1595 | case T_AppendState: |
| 1596 | if (planstate->plan->parallel_aware) |
| 1597 | ExecAppendInitializeWorker((AppendState *) planstate, pwcxt); |
| 1598 | break; |
| 1599 | case T_HashState: |
| 1600 | break; |
| 1601 | case T_SortState: |
| 1602 | break; |
| 1603 | case T_HashJoinState: |
| 1604 | if (planstate->plan->parallel_aware) |
| 1605 | ExecHashJoinInitializeWorker((HashJoinState *) planstate, pwcxt); |
| 1606 | break; |
| 1607 | default: |
| 1608 | break; |
| 1609 | } |
| 1610 | |
| 1611 | return planstate_tree_walker(planstate, InitializeGpParallelWorkers, pwcxt); |
| 1612 | } |
| 1613 | |
| 1614 | bool |
| 1615 | InitializeGpParallelDSMEntry(PlanState *planstate, ParallelContext *pctx) |
no test coverage detected