On 2015/09/03 14:22, Etsuro Fujita wrote:
On 2015/09/03 9:41, Robert Haas wrote:
That having been said, I don't entirely like Fujita-san's patch
either.  Much of the new code is called immediately adjacent to an FDW
callback which could pretty trivially do the same thing itself, if
needed.

Another idea about that code is to call that code in eg, ExecProcNode,
instead of calling ExecForeignScan there.  I think that that might be
much cleaner and resolve the naming problem below.

I gave it another thought; the following changes to ExecInitNode would make the patch much simpler, ie, we would no longer need to call the new code in ExecInitForeignScan, ExecForeignScan, ExecEndForeignScan, and ExecReScanForeignScan. I think that would resolve the name problem also.

*** a/src/backend/executor/execProcnode.c
--- b/src/backend/executor/execProcnode.c
***************
*** 247,254 **** ExecInitNode(Plan *node, EState *estate, int eflags)
            break;

        case T_ForeignScan:
!           result = (PlanState *) ExecInitForeignScan((ForeignScan *) node,
!                                                      estate, eflags);
            break;

        case T_CustomScan:
--- 247,269 ----
            break;

        case T_ForeignScan:
!           {
! Index scanrelid = ((ForeignScan *) node)->scan.scanrelid;
!
!               if (estate->es_epqTuple != NULL && scanrelid == 0)
!               {
!                   /*
! * We are in foreign join inside an EvalPlanQual recheck.
!                    * Initialize local join execution plan, instead.
!                    */
! Plan *subplan = ((ForeignScan *) node)->fs_subplan;
!
!                   result = ExecInitNode(subplan, estate, eflags);
!               }
!               else
! result = (PlanState *) ExecInitForeignScan((ForeignScan *) node, ! estate, eflags);
!           }
            break;

Best regards,
Etsuro Fujita



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to