This should have gone to hackers as well

---------- Forwarded message ---------
From: Dave Cramer <davecra...@gmail.com>
Date: Sat, Jun 8, 2019, 6:41 PM
Subject: Re: Binary support for pgoutput plugin
To: Tomas Vondra <tomas.von...@2ndquadrant.com>




On Sat, Jun 8, 2019, 6:27 PM Tomas Vondra, <tomas.von...@2ndquadrant.com>
wrote:

> On Fri, Jun 07, 2019 at 06:01:12PM -0700, Andres Freund wrote:
> >Hi,
> >
> >On 2019-06-07 20:52:38 -0400, Chapman Flack wrote:
> >> It seems they had ended up designing a whole 'nother "protocol level"
> >> involving queries wrapping their results as JSON and an app layer that
> >> unwraps again, after trying a simpler first approach that was foiled by
> the
> >> inability to see into arrays and anonymous record types in the
> 'describe'
> >> response.
> >
> >I suspect quite a few people would have to have left the projectbefore
> >this would happen.
> >
> >
> >> I thought, in a new protocol rev, why not let the driver send additional
> >> 'describe' messages after the first one, to drill into structure of
> >> individual columns mentioned in the first response, before sending the
> >> 'execute' message?
> >>
> >> If it doesn't want the further detail, it doesn't have to ask.
> >>
> >> > And then we suddenly need tracking for all these, so we don't always
> >> > send out that information when we previously already did
> >>
> >> If it's up to the client driver, it can track what it needs or already
> has.
> >
> >> I haven't looked too deeply into the replication protocol ... it happens
> >> under a kind of copy-both, right?, so maybe there's a way for the
> receiver
> >> to send some inquiries back, but maybe in a windowed, full-duplex way
> where
> >> it might have to buffer some incoming messages before getting the
> response
> >> to an inquiry message it sent.
> >
> >That'd be a *lot* of additional complexity, and pretty much prohibitive
> >from a performance POV. We'd have to not continue decoding on the server
> >side *all* the time to give the client a chance to inquire additional
> >information.
> >
>
> I kinda agree with this, and I think it's an argument why replication
> solutions that need such additional metadata (e.g. because they have no
> database to query) should not rely on pgoutput but should invent their own
> decoding plugin. Which is why it's a plugin.
>

So the reason we are discussing using pgoutput plugin is because it is part
of core and guaranteed to be in cloud providers solutions. I'm trying to
find a balance here of using what we have as opposed to burdening core to
take on additional code to take care of. Not sending the metadata is not a
deal breaker but i can see some value in it.


Dave

>
>

Reply via email to