Update more comments for 96198d94cb7adc664bda341842dc8db671d8be72.

Etsuro Fujita, reviewed (though not completely endorsed) by Ashutosh
Bapat, and slightly expanded by me.
This commit is contained in:
Robert Haas 2016-03-14 14:27:11 -04:00
parent 74a379b984
commit 6be84eeb8d
3 changed files with 7 additions and 6 deletions

View File

@ -3349,10 +3349,8 @@ postgresImportForeignSchema(ImportForeignSchemaStmt *stmt, Oid serverOid)
* *
* 1) Join type is INNER or OUTER (one of LEFT/RIGHT/FULL) * 1) Join type is INNER or OUTER (one of LEFT/RIGHT/FULL)
* 2) Both outer and inner portions are safe to push-down * 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 * 3) All join conditions are safe to push down
* the same user mapping. * 4) No relation has local filter (this can be relaxed for INNER JOIN, if we
* 4) All join conditions are safe to push down
* 5) No relation has local filter (this can be relaxed for INNER JOIN, if we
* can move unpushable clauses upwards in the join tree). * can move unpushable clauses upwards in the join tree).
*/ */
static bool static bool

View File

@ -213,7 +213,8 @@ add_paths_to_joinrel(PlannerInfo *root,
/* /*
* 5. If inner and outer relations are foreign tables (or joins) belonging * 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 && if (joinrel->fdwroutine &&
joinrel->fdwroutine->GetForeignJoinPaths) joinrel->fdwroutine->GetForeignJoinPaths)

View File

@ -448,9 +448,11 @@ typedef struct PlannerInfo
* in just as for a baserel, except we don't bother with lateral_vars. * 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 * 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) * 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) * fdwroutine - function hooks for FDW, if foreign table (else NULL)
* fdw_private - private state for FDW, if foreign table (else NULL) * fdw_private - private state for FDW, if foreign table (else NULL)
* *