Re: CustomScan in a larger structure (RE: CustomScan support on readfuncs.c)
От | Andres Freund |
---|---|
Тема | Re: CustomScan in a larger structure (RE: CustomScan support on readfuncs.c) |
Дата | |
Msg-id | 20160304193704.elq773pyg5fyl3mi@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: CustomScan in a larger structure (RE: CustomScan support on readfuncs.c) (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: CustomScan in a larger structure (RE: CustomScan
support on readfuncs.c)
|
Список | pgsql-hackers |
On 2016-02-12 15:56:45 +0100, Andres Freund wrote: > Hi, > > > On 2016-02-10 23:26:20 -0500, Robert Haas wrote: > > I think the part about whacking around the FDW API is a little more > > potentially objectionable to others, so I want to hold off doing that > > unless a few more people chime in with +1. Perhaps we could start a > > new thread to talk about that specific idea. This is useful even > > without that, though. > > FWIW, I can delete a couple hundred lines of code from citusdb thanks to > this... And I'm now working on doing that. > why exactly did you expose read/writeBitmapset(), and nothing else? > Afaics a lot of the other read routines are also pretty necessary from > the outside? I'd like to also expose at least outDatum()/readDatum() - they're not entirely trivial, so it'd be sad to copy them. What I'm wondering about right now is how an extensible node should implement the equivalent of #define WRITE_NODE_FIELD(fldname) \(appendStringInfo(str, " :" CppAsString(fldname) " "), \ _outNode(str, node->fldname)) given that _outNode isn't public, that seems to imply having to do something like #define WRITE_NODE_FIELD(fldname) \(appendStringInfo(str, " :" CppAsString(fldname) " "), \ appendStringInfo(str, nodeToString(node->fldname))) i.e. essentially doubling memory overhead. Istm we should make outNode() externally visible? Greetings, Andres Freund
В списке pgsql-hackers по дате отправления: