I briefly browsed the patch apart from my preference towards the approach.
It has at least two oversight.
*** 48,59 **** ExecScanFetch(ScanState *node,
+ * Execute recheck plan and get the next tuple if foreign join.
+ if (scanrelid == 0)
+ (*recheckMtd) (node, slot);
+ return slot;
Ensure the slot is empty if recheckMtd returned false, as base relation
case doing so.
*** 347,352 **** ExecScanReScan(ScanState *node)
Index scanrelid = ((Scan *) node->ps.plan)->scanrelid;
+ if (scanrelid == 0)
+ return; /* nothing to do */
Assert(scanrelid > 0);
estate->es_epqScanDone[scanrelid - 1] = false;
Why nothing to do?
Base relations managed by ForeignScan are tracked in fs_relids bitmap.
As you introduced a few days before, if ForeignScan has parametalized
remote join, EPQ slot contains invalid tuples based on old outer tuple.
NEC Business Creation Division / PG-Strom Project
KaiGai Kohei <kai...@ak.jp.nec.com>
> -----Original Message-----
> From: Etsuro Fujita [mailto:fujita.ets...@lab.ntt.co.jp]
> Sent: Friday, October 16, 2015 6:01 PM
> To: Robert Haas
> Cc: Kyotaro HORIGUCHI; Kaigai Kouhei(海外 浩平); email@example.com;
> Shigeru Hanada
> Subject: Re: [HACKERS] Foreign join pushdown vs EvalPlanQual
> On 2015/10/14 17:31, Etsuro Fujita wrote:
> > As KaiGai-san also pointed out before, I think we should address this in
> > each of the following cases:
> > 1) remote qual (scanrelid>0)
> > 2) remote join (scanrelid==0)
> As for #2, I updated the patch, which uses a local join execution plan
> for an EvalPlanQual rechech, according to the comment from Robert .
> Attached is an updated version of the patch. This is a WIP patch, but
> it would be appreciated if I could get feedback earlier.
> For tests, apply the patches:
> usermapping_matching.patch 
> add_GetUserMappingById.patch 
> foreign_join_v16_efujita.patch 
> Since that as I said upthread, what I'd like to discuss is changes to
> the PG core, I didn't do anything about the postgres_fdw patches.
> Best regards,
> Etsuro Fujita
>  http://www.postgresql.org/message-id/55cb2d45.7040...@lab.ntt.co.jp
Sent via pgsql-hackers mailing list (firstname.lastname@example.org)
To make changes to your subscription: