Re: FDW oddity - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: FDW oddity
Date
Msg-id 552A2A5E.8060005@dunslane.net
Whole thread Raw
In response to Re: FDW oddity  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-hackers
On 04/11/2015 07:30 PM, Andrew Dunstan wrote:
>
> On 04/11/2015 05:10 PM, Tom Lane wrote:
>> Andrew Dunstan <andrew@dunslane.net> writes:
>>> I have just noticed something slightly odd. The traces (obtained by
>>> setting client_min_messages to debug1) from the blackhole FDW show that
>>> the handler function is called each time an INSERT is performed. 
>>> This is
>>> not the case for SELECT, UPDATE or DELETE. It looks at first glance 
>>> like
>>> a buglet. Can anyone suggest why this should be so?
>> What do you mean by "the handler function", and for that matter what do
>> you define as "each time"?  The ExecForeignInsert method certainly ought
>> to be called once per row inserted, but the same is true of
>> ExecForeignUpdate and ExecForeignDelete.  The setup methods such as
>> BeginForeignModify should only be called once per query though.
>
>
> I mean this function:
>
>    Datum
>    blackhole_fdw_handler(PG_FUNCTION_ARGS)
>    {
>         FdwRoutine *fdwroutine = makeNode(FdwRoutine);
>
>         elog(DEBUG1,"entering function %s",__func__);
>
>         /* assign the handlers for the FDW */
>
>      ...
>    }
>
> And it is called at the beginning of every INSERT statement, before 
> blackholePlanForeignModify() is called




Seems to be explained by this comment in createplan.c:
        /*         * If possible, we want to get the FdwRoutine from our 
RelOptInfo for         * the table.  But sometimes we don't have a RelOptInfo and 
must get         * it the hard way.  (In INSERT, the target relation is not 
scanned,         * so it's not a baserel; and there are also corner cases for         * updatable views where the
targetrel isn't a baserel.)         */
 

cheers

andrew






pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Remove some duplicated words in comments
Next
From: 彭瑞华
Date:
Subject: Re: WIP Patch for GROUPING SETS phase 1