Re: pg_dump / copy bugs with "big lines" ? - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: pg_dump / copy bugs with "big lines" ?
Date
Msg-id CAB7nPqSvHz_ECbQPPCrEpfFSQNpYnu=TpauZ4cAk+mLeWxTdoA@mail.gmail.com
Whole thread Raw
In response to Re: pg_dump / copy bugs with "big lines" ?  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
On Sat, Apr 23, 2016 at 9:58 AM, Bruce Momjian <bruce@momjian.us> wrote:
> On Thu, Mar  3, 2016 at 10:31:26AM +0900, Michael Paquier wrote:
>> On Thu, Mar 3, 2016 at 12:47 AM, Alvaro Herrera
>> <alvherre@2ndquadrant.com> wrote:
>> > Well, the CopyData message has an Int32 field for the message length.
>> > I don't know the FE/BE protocol very well but I suppose each row
>> > corresponds to one CopyData message, or perhaps each column corresponds
>> > to one CopyData message.  In either case, it's not possible to go beyond
>> > 2GB without changing the protocol ...
>>
>> Based on what I know from this stuff (OOM libpq and other stuff
>> remnants), one 'd' message means one row. fe-protocol3.c and
>> CopySendEndOfRow in backend's copy.c are confirming that as well. I am
>> indeed afraid that having extra logic to get chunks of data will
>> require extending the protocol with a new message type for this
>> purpose.
>
> Is there any documentation that needs updating based on this research?

Perhaps. On the docs the two sections referring to the CopyData
messages arein protocol.sgml
- with this portion for the 'd' message itself:
<term>
CopyData (F & B)
</term>
- and a more precise description here: <sect2 id="protocol-copy">  <title>COPY Operations</title>
We could precise in one of them that the maximum size of a CopyData
message can be up to 1GB. Thoughts?
-- 
Michael



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: VS 2015 support in src/tools/msvc
Next
From: Magnus Hagander
Date:
Subject: Re: Rename max_parallel_degree?