Re: WIP patch for parallel pg_dump

Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>

From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Greg Smith <greg@2ndquadrant.com>, Joachim Wieland <joe@mcknight.de>, Andrew Dunstan <andrew@dunslane.net>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2010-12-06T14:45:36Z
Lists: pgsql-hackers
On 06.12.2010 14:57, Robert Haas wrote:
> On Mon, Dec 6, 2010 at 2:29 AM, Heikki Linnakangas
> <heikki.linnakangas@enterprisedb.com>  wrote:
>> The client doesn't need to know anything about the snapshot blob that the
>> server gives it. It just needs to pass it back to the server through the
>> other connection. To the client, it's just an opaque chunk of bytes.
>
> I suppose that would work, but I still think it's a bad idea.  We made
> this mistake with expression trees.  Any oversight in the code that
> validates the chunk of bytes when it (or a modified version) is sent
> back to the server turns into a security hole.

True, but a snapshot is a lot simpler than an expression tree. It's 
pretty much impossible to plug all the holes in the expression-tree 
reading functions, and keep them hole-free in the future. The expression 
tree format is constantly in flux. A snapshot, however, is a fairly 
isolated small data structure that rarely changes.

>  I think it's a whole
> lot simpler and cleaner to keep the representation details private to
> the server.

Well, then you need some sort of cross-backend communication, which is 
always a bit clumsy.

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com