From: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> |
---|---|
To: | Sanyo Moura <sanyo(dot)moura(at)tatic(dot)net>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: FDW Parallel Append |
Date: | 2018-10-31 04:38:29 |
Message-ID: | 623c1b09-1921-6d2a-79dc-3e0495909200@lab.ntt.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Kevin Van | 2018-10-31 05:02:06 | WIP Patch: Add a function that returns binary JSONB as a bytea |
Previous Message | David Rowley | 2018-10-31 03:32:37 | Re: Super PathKeys (Allowing sort order through precision loss functions) |