> Posting a new version of the patches, with the following updates:
> - Moved the update of glob->relationOIDs (i.e. addition of partition OIDs that
> plan depends on, resulting from parallel-safety checks) from within
> max_parallel_hazard() to set_plan_references().
> - Added an extra test for partition plan-cache invalidation.
> - Simplified query_has_modifying_cte() temporary bug-fix.
> - Added a comment explaining why parallel-safety of partition column defaults
> is not checked.
> - Minor simplification: hasSubQuery return to
> is_parallel_possible_for_modify().
Hi
(I may be wrong here)
I noticed that the patch does not have check for partial index(index predicate).
It seems parallel index build will check it like the following:
----------
/*
* Determine if it's safe to proceed.
*
* Currently, parallel workers can't access the leader's temporary
tables.
* Furthermore, any index predicate or index expressions must be
parallel
* safe.
*/
if (heap->rd_rel->relpersistence == RELPERSISTENCE_TEMP ||
!is_parallel_safe(root, (Node *)
RelationGetIndexExpressions(index)) ||
!is_parallel_safe(root, (Node *)
RelationGetIndexPredicate(index)))
----------
Should we do parallel safety check for it ?
Best regards,
houzj