From 6be84eeb8d5a72014b1b6e44d0646f69531a1ccf Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Mon, 14 Mar 2016 14:27:11 -0400 Subject: [PATCH] Update more comments for 96198d94cb7adc664bda341842dc8db671d8be72. Etsuro Fujita, reviewed (though not completely endorsed) by Ashutosh Bapat, and slightly expanded by me. --- contrib/postgres_fdw/postgres_fdw.c | 6 ++---- src/backend/optimizer/path/joinpath.c | 3 ++- src/include/nodes/relation.h | 4 +++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/contrib/postgres_fdw/postgres_fdw.c b/contrib/postgres_fdw/postgres_fdw.c index 40bffd6f6c..aa745f237e 100644 --- a/contrib/postgres_fdw/postgres_fdw.c +++ b/contrib/postgres_fdw/postgres_fdw.c @@ -3349,10 +3349,8 @@ postgresImportForeignSchema(ImportForeignSchemaStmt *stmt, Oid serverOid) * * 1) Join type is INNER or OUTER (one of LEFT/RIGHT/FULL) * 2) Both outer and inner portions are safe to push-down - * 3) All foreign tables in the join belong to the same foreign server and use - * the same user mapping. - * 4) All join conditions are safe to push down - * 5) No relation has local filter (this can be relaxed for INNER JOIN, if we + * 3) All join conditions are safe to push down + * 4) No relation has local filter (this can be relaxed for INNER JOIN, if we * can move unpushable clauses upwards in the join tree). */ static bool diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c index 3b898dafee..f3aced3c93 100644 --- a/src/backend/optimizer/path/joinpath.c +++ b/src/backend/optimizer/path/joinpath.c @@ -213,7 +213,8 @@ add_paths_to_joinrel(PlannerInfo *root, /* * 5. If inner and outer relations are foreign tables (or joins) belonging - * to the same server, give the FDW a chance to push down joins. + * to the same server and using the same user mapping, give the FDW a + * chance to push down joins. */ if (joinrel->fdwroutine && joinrel->fdwroutine->GetForeignJoinPaths) diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h index 641728bb0f..bdea72c3f4 100644 --- a/src/include/nodes/relation.h +++ b/src/include/nodes/relation.h @@ -448,9 +448,11 @@ typedef struct PlannerInfo * in just as for a baserel, except we don't bother with lateral_vars. * * If the relation is either a foreign table or a join of foreign tables that - * all belong to the same foreign server, these fields will be set: + * all belong to the same foreign server and use the same user mapping, these + * fields will be set: * * serverid - OID of foreign server, if foreign table (else InvalidOid) + * umid - OID of user mapping, if foreign table (else InvalidOid) * fdwroutine - function hooks for FDW, if foreign table (else NULL) * fdw_private - private state for FDW, if foreign table (else NULL) *