Hello Amit
Tks a lot, that worked.
Now I have to deal with other concerns when lauching more than 1 worker.
I'll try to advance my tests.

Regards,

Sanyo Moura

Em qua, 31 de out de 2018 às 01:38, Amit Langote <
langote_amit...@lab.ntt.co.jp> escreveu:

> 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
>
>

Reply via email to