Hi, On 2018/10/31 3:25, Sanyo Moura wrote: > Hi hackers, > > I am trying to improve my xdr_fdw (a foreign data wrapper that scan file > systems that keep big data compacted) to scan partitions in parallel. > > But when I execute or analyze I get an error: > > EXPLAIN ANALYZE SELECT * FROM precio WHERE fecha BETWEEN '2017-01-01' AND > '2017-01-02' > > ERROR: ExtensibleNodeMethods "XDRInfo" was not registered > CONTEXT: parallel worker > SQL state: 42704 > > XDRInfo is my private structure that implement extensible methods. > It is registered in my "xdr_fdw_handler" > > Datum > xdr_fdw_handler(PG_FUNCTION_ARGS) > { > FdwRoutine *routine = makeNode(FdwRoutine); > . > . > . > RegisterXDRInfoExtension(); > > PG_RETURN_POINTER(routine); > } > > I think that each new worker process need to call my > RegisterXDRInfoExtension function. > But where do I call it? Do I have an entry point each time a new worker > process is created?
I think you'll need to call your Register* function from the _PG_init function of your module. If you haven't defined the _PG_init function, you should do that first. Thanks, Amit