Steps taken through while transmitting binary data - Mailing list pgsql-novice

From Volkan YAZICI
Subject Steps taken through while transmitting binary data
Date
Msg-id 7104a73705061300371af5beb6@mail.gmail.com
Whole thread Raw
Responses Re: Steps taken through while transmitting binary data  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-novice
Hi,

What's the difference between server/client binary data conversions
[1] of these commands:

  i. "COPY ... TO ... WITH BINARY ..."
 ii. "DECLARE ... BINARY ..."
iii. PQexecParams(..., 1)

AFAIC, the method followed in (i) and (ii) is (omiting byte order conversions):
  {server| binary} -> {client| binary}

But in the way as (iii) (which requires proto 3.0):
  {server| binary -> char} -> {client| char -> binary}

To summarize, I wonder the handling steps taken through while
transmitting binary data. (I tried to figure it out from source code
by myself, but couldn't reach an answer.) Does it work as i tried to
explain above while using PQexecParams()? Namely do we require dummy
conversions while gathering binary data with PQexecParams()?

I'd be so appreciated for any kind of explanation.
Regards.

[1] « Normal cursors return data in text format, the same as a SELECT
would produce. Since data is stored natively in binary format, the
system must do a _conversion_ to produce the text format. Once the
information comes back in text form, the client application may need
to _convert_ it to a binary format to manipulate it.» [from
doc/sql-copy.html]

pgsql-novice by date:

Previous
From: "Verena Ruff"
Date:
Subject: Inheritance, foreign key constraint
Next
From: "Ville Leinonen"
Date:
Subject: Problems with trigger and function.