Tom,
Tom Lane writes:> Lee Kindness <lkindness@csl.co.uk> writes:> > However, is COPY BINARY meant/designed to be used as
transferor> > backup mechanism?> > I think you're overlooking a key consideration: COPY BINARY is not> an isolated
featureanymore. By design it uses the same data> representations as are used for binary query parameters and results>
inthe rest of the 7.4 FE/BE protocol.
Yeah, what i've overlooked is that an implementation detail now forms
part of an external interface into PostgreSQL - this is a major
change.
> I could see some value in providing byte-swapping routines in libpq> to convert between local and network
representationsfor integers and> floats. The underlying facilities (ntohl etc) are readily available,> of course, but
it'sa small matter that is easy to get wrong.>> I'm not sure it's worth packaging up COPY BINARY logic per se. I
think>you'd end up with an API not materially simpler than dealing with the> format directly. And I'm unconvinced it'd
actuallybe used widely,> whereas I do expect binary transfer of individual values to be common.
Would I be right is guessing a binary CURSOR would return in values in
the same format as a binary COPY, hence your expectation of more
individual transfers/conversions? Actually with the new FE/BE protocol
there is little call for the binary cursor now, yeah?
What I proposed in my email yesterday is really just completing the
new functions (PQnfields, PQputCopyData, PQgetCopyData and friends)
described at:
http://developer.postgresql.org/docs/postgres/libpq-copy.html
so they don't stop at just giving you a blob of binary data and saying
it has n fields - functions would be available to iterate over the
fields and get the data out in a format which is immediately
useful. Without this do you not think PQgetCopyData is of limited use
except for being used by psql (which I guess isn't using it yet). Same
for the writing functions.
This is slightly different from my earlier example (on the connection
rather than file-based) but functionally similar.
BTW, do you have any examples of using PQgetCopyData - none in the
source and can't find anything with Google.
Regards, Lee.