]> granicus.if.org Git - postgresql/commitdiff
Remove parallel-safety check from GetExistingLocalJoinPath.
authorRobert Haas <rhaas@postgresql.org>
Fri, 5 Feb 2016 13:07:38 +0000 (08:07 -0500)
committerRobert Haas <rhaas@postgresql.org>
Fri, 5 Feb 2016 13:07:38 +0000 (08:07 -0500)
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.

doc/src/sgml/fdwhandler.sgml
src/backend/foreign/foreign.c

index a6945d35658a0d51bdc464a3d589696447d6d5b2..ffbd1e3bdac3d3f7616caf2da70701435ebb1c6c 100644 (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>
index 213217966cfb648de09af413916302ca55829143..45180c7414dd58dc77fb11f1d2ba66b816fea22d 100644 (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)