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