Re: [PATCH 4/4] Add tests to dblink covering use of COPY TO FUNCTION
Jeff Davis <pgsql@j-davis.com>
From: Jeff Davis <pgsql@j-davis.com>
To: Simon Riggs <simon@2ndQuadrant.com>
Cc: Daniel Farina <drfarina@gmail.com>,
Pavel Stehule <pavel.stehule@gmail.com>, Hannu Krosing <hannu@krosing.net>, Greg Smith <greg@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, Daniel Farina <dfarina@truviso.com>, pgsql-hackers@postgresql.org
Date: 2009-11-27T20:55:49Z
Lists: pgsql-hackers
On Fri, 2009-11-27 at 13:39 +0000, Simon Riggs wrote: > On Tue, 2009-11-24 at 22:13 -0800, Jeff Davis wrote: > > > My disagreement with the row-by-row approach is more semantics than > > performance. COPY translates records to bytes and vice-versa, and your > > original patch maintains those semantics. > > The bytes <-> records conversion is a costly one. Anything we can do to > avoid that in either direction will be worth it. I would regard > performance as being part/most of the reason to support this. > Right. I was responding to an idea that copy support sending records from a table to a function, or from a function to a table, which is something that INSERT/SELECT can already do. Our use case is a table to a remote table, so it would go something like: 1. COPY TO WITH BINARY on local node 2. stream output bytes from #1 to remote node 3. COPY FROM WITH BINARY on remote node The only faster mechanism that I could imagine is sending the records themselves, which would be machine-dependent. Regards, Jeff Davis