On Sat, Apr 23, 2016 at 9:58 AM, Bruce Momjian <br...@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 >> <alvhe...@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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers