From: Robert Haas Date: Fri, 5 Feb 2016 13:07:38 +0000 (-0500) Subject: Remove parallel-safety check from GetExistingLocalJoinPath. X-Git-Tag: REL9_6_BETA1~760 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e0e7b8fa22539a81cc390f8ec57d6b52391b1335;p=postgresql Remove parallel-safety check from GetExistingLocalJoinPath. Commit a104a017fc5f67ff5d9c374cd831ac3948a874c2 has this check because I added it to the submitted patch before commit, but that was entirely wrongheaded, as explained to me by Ashutosh Bapat, who also wrote this patch. --- diff --git a/doc/src/sgml/fdwhandler.sgml b/doc/src/sgml/fdwhandler.sgml index a6945d3565..ffbd1e3bda 100644 --- a/doc/src/sgml/fdwhandler.sgml +++ b/doc/src/sgml/fdwhandler.sgml @@ -349,11 +349,10 @@ GetExistingLocalJoinPath(RelOptInfo *joinrel) The function returns copy of a local join path, which can be converted into an alternative local join plan, which may be useful when implementing a RecheckForeignScan method. The function - searches for a parallel-safe, unparameterized path in the - pathlist of given joinrel. If it does not find - such a path, it returns NULL, in which case a foreign data wrapper may - build the local path by itself or may choose not to create access paths - for that join. + searches for an unparameterized path in the pathlist of given + joinrel. If it does not find such a path, it returns NULL, in + which case a foreign data wrapper may build the local path by itself or + may choose not to create access paths for that join. diff --git a/src/backend/foreign/foreign.c b/src/backend/foreign/foreign.c index 213217966c..45180c7414 100644 --- a/src/backend/foreign/foreign.c +++ b/src/backend/foreign/foreign.c @@ -801,9 +801,8 @@ get_foreign_server_oid(const char *servername, bool missing_ok) * * Since the plan created using this path will presumably only be used to * execute EPQ checks, efficiency of the path is not a concern. But since the - * list passed is expected to be from RelOptInfo, it's anyway sorted by total - * cost and hence we are likely to choose the most efficient path, which is - * all for the best. + * path list in RelOptInfo is anyway sorted by total cost we are likely to + * choose the most efficient path, which is all for the best. */ extern Path * GetExistingLocalJoinPath(RelOptInfo *joinrel) @@ -817,8 +816,8 @@ GetExistingLocalJoinPath(RelOptInfo *joinrel) Path *path = (Path *) lfirst(lc); JoinPath *joinpath = NULL; - /* Skip parameterised or non-parallel-safe paths. */ - if (path->param_info != NULL || !path->parallel_safe) + /* Skip parameterised paths. */ + if (path->param_info != NULL) continue; switch (path->pathtype)