And how do we compose the binary data on the client? Do we trust that the client encoding conversion logic is
identicalto the backend's? If there is a difference, what happens if the same file loaded from different client
machineshas different results? Key conflicts when loading a restore from one machine and not from another?
- Luke
--------------------------
Sent from my BlackBerry Wireless Device
-----Original Message-----
From: Mitch Skinner <mitch@egcrc.net>
To: Luke Lonergan <LLonergan@greenplum.com>
CC: Stephen Frost <sfrost@snowman.net>; David Lang <dlang@invendra.net>; Steve Oualline <soualline@stbernard.com>;
pgsql-performance@postgresql.org<pgsql-performance@postgresql.org>
Sent: Fri Dec 02 22:26:06 2005
Subject: Re: [PERFORM] Database restore speed
On Fri, 2005-12-02 at 13:24 -0800, Luke Lonergan wrote:
> It's a matter of safety and generality - in general you
> can't be sure that client machines / OS'es will render the same conversions
> that the backend does in all cases IMO.
Can't binary values can safely be sent cross-platform in DataRow
messages? At least from my ignorant, cursory look at printtup.c,
there's a binary format code path. float4send in utils/adt/float.c uses
pq_sendfloat4. I obviously haven't followed the entire rabbit trail,
but it seems like it happens.
IOW, why isn't there a cross-platform issue when sending binary data
from the backend to the client in query results? And if there isn't a
problem there, why can't binary data be sent from the client to the
backend?
Mitch