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