Re: Push down more full joins in postgres_fdw
Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
From: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
To: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
Cc: Robert Haas <robertmhaas@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-01-05T11:44:51Z
Lists: pgsql-hackers
On 2017/01/03 17:28, Ashutosh Bapat wrote: I wrote: >> I updated the patch a bit further: simplified the function name >> (s/build_subquery_rel_tlists/build_subquery_tlists/), and revised comments a >> little bit. Attached is an updated version >> (postgres-fdw-subquery-support-v14.patch). > Few comments Thanks for the comments! > In build_subquery_tlists(), why don't we handle base relations? > + if (foreignrel->reloptkind != RELOPT_JOINREL) > + return; The reason for that is we don't need to handle the baserel cases; the tlist for a base relation, if needed, would be created while recursing into a join relation that joins the base relation to other base/join relation. > Also, in this function, if fpinfo->tlist is already set, why do we want to > build it again? When this function gets called, fpinfo->tlist isn't set for any base or join relation that needs to build the tlist, so we always need to build it for each such relation. > In build_tlist_to_deparse(), if fpinfo->tlist for the given relation is set, we > should just return it rather than constructing it again. In that function we wouldn't have such cases for base or join relations needing the tlist. Best regards, Etsuro Fujita
Commits
-
postgres_fdw: Push down FULL JOINs with restriction clauses.
- b30fb56b07a8 10.0 landed