* Traverse plan tree to reinitialize per-node dynamic shared memory state */
| 947 | * Traverse plan tree to reinitialize per-node dynamic shared memory state |
| 948 | */ |
| 949 | static bool |
| 950 | ExecParallelReInitializeDSM(PlanState *planstate, |
| 951 | ParallelContext *pcxt) |
| 952 | { |
| 953 | if (planstate == NULL) |
| 954 | return false; |
| 955 | |
| 956 | /* |
| 957 | * Call reinitializers for DSM-using plan nodes. |
| 958 | */ |
| 959 | switch (nodeTag(planstate)) |
| 960 | { |
| 961 | case T_SeqScanState: |
| 962 | if (planstate->plan->parallel_aware) |
| 963 | ExecSeqScanReInitializeDSM((SeqScanState *) planstate, |
| 964 | pcxt); |
| 965 | break; |
| 966 | case T_IndexScanState: |
| 967 | if (planstate->plan->parallel_aware) |
| 968 | ExecIndexScanReInitializeDSM((IndexScanState *) planstate, |
| 969 | pcxt); |
| 970 | break; |
| 971 | case T_IndexOnlyScanState: |
| 972 | if (planstate->plan->parallel_aware) |
| 973 | ExecIndexOnlyScanReInitializeDSM((IndexOnlyScanState *) planstate, |
| 974 | pcxt); |
| 975 | break; |
| 976 | case T_ForeignScanState: |
| 977 | if (planstate->plan->parallel_aware) |
| 978 | ExecForeignScanReInitializeDSM((ForeignScanState *) planstate, |
| 979 | pcxt); |
| 980 | break; |
| 981 | case T_AppendState: |
| 982 | if (planstate->plan->parallel_aware) |
| 983 | ExecAppendReInitializeDSM((AppendState *) planstate, pcxt); |
| 984 | break; |
| 985 | case T_CustomScanState: |
| 986 | if (planstate->plan->parallel_aware) |
| 987 | ExecCustomScanReInitializeDSM((CustomScanState *) planstate, |
| 988 | pcxt); |
| 989 | break; |
| 990 | case T_BitmapHeapScanState: |
| 991 | if (planstate->plan->parallel_aware) |
| 992 | ExecBitmapHeapReInitializeDSM((BitmapHeapScanState *) planstate, |
| 993 | pcxt); |
| 994 | break; |
| 995 | case T_HashJoinState: |
| 996 | if (planstate->plan->parallel_aware) |
| 997 | ExecHashJoinReInitializeDSM((HashJoinState *) planstate, |
| 998 | pcxt); |
| 999 | break; |
| 1000 | case T_HashState: |
| 1001 | case T_SortState: |
| 1002 | case T_IncrementalSortState: |
| 1003 | case T_MemoizeState: |
| 1004 | /* these nodes have DSM state, but no reinitialization is required */ |
| 1005 | break; |
| 1006 |
no test coverage detected