Re: postgres_fdw join pushdown (was Re: Custom/Foreign-Join-APIs) - Mailing list pgsql-hackers

From Ashutosh Bapat
Subject Re: postgres_fdw join pushdown (was Re: Custom/Foreign-Join-APIs)
Date
Msg-id CAFjFpReGq13cCKTsB4xacHnFANuDGyvz=dBTuv1C1dYsjNATvA@mail.gmail.com
Whole thread Raw
In response to Re: postgres_fdw join pushdown (was Re: Custom/Foreign-Join-APIs)  (Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>)
Responses Re: postgres_fdw join pushdown (was Re: Custom/Foreign-Join-APIs)
List pgsql-hackers




* Is it safe to replace outerjoinpath with its fdw_outerpath the following way?  I think that if the join relation represented by outerjoinpath has local conditions that can't be executed remotely, we have to keep outerjoinpath in the path tree; we will otherwise fail to execute the local conditions.  No?

+                       /*
+                        * If either inner or outer path is a ForeignPath corresponding to
+                        * a pushed down join, replace it with the fdw_outerpath, so that we
+                        * maintain path for EPQ checks built entirely of local join
+                        * strategies.
+                        */
+                       if (IsA(joinpath->outerjoinpath, ForeignPath))
+                       {
+                               ForeignPath *foreign_path;
+                               foreign_path = (ForeignPath *)joinpath->outerjoinpath;
+                               if (foreign_path->path.parent->reloptkind == RELOPT_JOINREL)
+                                       joinpath->outerjoinpath = foreign_path->fdw_outerpath;
+                       }


all the conditions (local and remote) should be part of fdw_outerpath as well, since that's the alternate local path, which should produce (when converted to the plan) the same result as the foreign path. fdw_outerpath should be a local path set when paths for outerjoinpath->parent was being created. Am I missing something?

--
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company

pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: WIP: Detecting SSI conflicts before reporting constraint violations
Next
From: Fujii Masao
Date:
Subject: Re: Incorrect formula for SysV IPC parameters