Re: postgres_fdw bug in 9.6

Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>

From: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
To: David Steele <david@pgmasters.net>
Cc: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>, Robert Haas <robertmhaas@gmail.com>, Jeff Janes <jeff.janes@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-03-23T12:20:54Z
Lists: pgsql-hackers

Attachments

On 2017/03/21 18:40, Etsuro Fujita wrote:
> Ok, I'll update the patch.  One thing I'd like to revise in addition to
> that is (1) add to JoinPathExtraData a flag member to indicate whether
> to give the FDW a chance to consider a remote join, which will be set to
> true if the joinrel's fdwroutine is not NULL and the fdwroutine's
> GetForeignJoinPaths is not NULL, and (2) if the flag is true, save info
> to create an alternative local join path, such as hashclauses and
> mergeclauses proposed in the patch, into JoinPathExtraData in
> add_paths_to_joinrel.  This would avoid useless overhead in saving such
> info into JoinPathExtraData when we don't give the FDW that chance.

Done.  Attached is a new version of the patch.

Best regards,
Etsuro Fujita

Commits

  1. Fix test case for 'outer pathkeys do not match mergeclauses' fix.

  2. postgres_fdw: Avoid 'outer pathkeys do not match mergeclauses' error.

  3. postgres_fdw: Consider foreign joining and foreign sorting together.

  4. Allow foreign and custom joins to handle EvalPlanQual rechecks.

  5. Allow FDWs to push down quals without breaking EvalPlanQual rechecks.