diff options
Diffstat (limited to 'src/backend/optimizer/plan/createplan.c')
-rw-r--r-- | src/backend/optimizer/plan/createplan.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c index fda4df64210..bdac0b1860b 100644 --- a/src/backend/optimizer/plan/createplan.c +++ b/src/backend/optimizer/plan/createplan.c @@ -2152,6 +2152,15 @@ create_foreignscan_plan(PlannerInfo *root, ForeignPath *best_path, scan_plan->fs_relids = best_path->path.parent->relids; /* + * If a join between foreign relations was pushed down, remember it. The + * push-down safety of the join depends upon the server and user mapping + * being same. That can change between planning and execution time, in which + * case the plan should be invalidated. + */ + if (scan_relid == 0) + root->glob->hasForeignJoin = true; + + /* * Replace any outer-relation variables with nestloop params in the qual, * fdw_exprs and fdw_recheck_quals expressions. We do this last so that * the FDW doesn't have to be involved. (Note that parts of fdw_exprs |