1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-28 23:42:10 +03:00

Remove parallel-safety check from GetExistingLocalJoinPath.

Commit a104a017fc 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.
This commit is contained in:
Robert Haas
2016-02-05 08:07:38 -05:00
parent 63f39b9148
commit e0e7b8fa22
2 changed files with 8 additions and 10 deletions

View File

@ -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 <literal>RecheckForeignScan</> method. The function
searches for a parallel-safe, unparameterized path in the
<literal>pathlist</> of given <literal>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 <literal>pathlist</> of given
<literal>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.
</para>
</sect2>

View File

@ -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)