diff options
author | Michael Paquier <michael@paquier.xyz> | 2024-03-07 08:31:04 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2024-03-07 08:31:04 +0900 |
commit | e82b64a92cf5650e618b26b85ca5c0f090286bb4 (patch) | |
tree | 7cee08849edd17e97241ea329fd3e1395b93ed4e /src/backend/optimizer | |
parent | 3b671dcf53d1e1f5a08f8a4cd204207a8c1a065e (diff) | |
download | postgresql-e82b64a92cf5650e618b26b85ca5c0f090286bb4.tar.gz postgresql-e82b64a92cf5650e618b26b85ca5c0f090286bb4.zip |
Revert "Fix parallel-safety check of expressions and predicate for index builds"
This reverts commit eae7be600be7, following a discussion with Tom Lane,
due to concerns that this impacts the decisions made by the planner for
the number of workers spawned based on the inlining and const-folding of
index expressions and predicate for cases that would have worked until
this commit.
Discussion: https://postgr.es/m/162802.1709746091@sss.pgh.pa.us
Backpatch-through: 12
Diffstat (limited to 'src/backend/optimizer')
-rw-r--r-- | src/backend/optimizer/plan/planner.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index d833b23c47e..bd4e4ceeca5 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -6143,18 +6143,10 @@ plan_create_index_workers(Oid tableOid, Oid indexOid) * Currently, parallel workers can't access the leader's temporary tables. * Furthermore, any index predicate or index expressions must be parallel * safe. - * - * Fetch the list of expressions and predicates directly from the - * catalogs. Retrieving this information from the relcache would cause - * the expressions and predicates to be flattened, losing properties that - * can be important to check if parallel workers can be used. For - * example, immutable parallel-unsafe functions, that cannot be used in - * parallel workers, would be changed to Const nodes, that are safe in - * parallel workers. */ if (heap->rd_rel->relpersistence == RELPERSISTENCE_TEMP || - !is_parallel_safe(root, (Node *) get_index_expressions(indexOid)) || - !is_parallel_safe(root, (Node *) get_index_predicate(indexOid))) + !is_parallel_safe(root, (Node *) RelationGetIndexExpressions(index)) || + !is_parallel_safe(root, (Node *) RelationGetIndexPredicate(index))) { parallel_workers = 0; goto done; |