Re: JDBC with PG 8.4 bytea character escaping wire protocol - Mailing list pgsql-jdbc

From dmp
Subject Re: JDBC with PG 8.4 bytea character escaping wire protocol
Date
Msg-id 4AE08EC2.107@ttc-cmc.net
Whole thread Raw
In response to Re: JDBC with PG 8.4 bytea character escaping wire protocol  (David Wall <d.wall@computer.org>)
List pgsql-jdbc
I guess I can not really answer your question, since I have not dug
around in the code, but I can not understand
why the JDBC would escape a byte[] sent or received using the setBytes()
or getBytes() API or the stream
methods. These are binary protocols, which can house any integer value
within the limitations. The bytea
type is is defined as binary which means it does not necessarily
represent a character. Now the answer I guess
could be answered in two ways.

1. Someone here or yourself would have to know or dig through the code
to see if some conversion takes place.
2. Make a test case that sends or receives the data using
setBytes()/getBytes() and one of the APIs that
    does escape characters or you manually escape the characters. Use a
packet sniffer to check the package size
    in both cases. If they are the same then a conversion is taking
place. I would suspect the Bytes() method would
    result in less bandwidth, not more, no data size expansion.

danap

>> Does the JDBC 4 driver for PG 8.4 escape each character of the bytea
>> type, or does it use a binary protocol?
>>
>> From another post, Merlin Moncure wrote, "libpq supports a binary
>> protocol mode which allows you to execute queries sending bytea
>> without escaping."  Is that true of the JDBC driver?  I'm concerned
>> about the data size expansion that would result for the wire protocol
>> when I use setBytes().
>
>
> I tried downloading the JDBC source and must say it was complex enough
> to a newbie that I couldn't really determine the answer myself.
> Does anybody know if the JDBC driver with PG 8.4 communicates using a
> binary protocol for BYTEA transfers to/from or whether it sends
> escaped chars only?  Or perhaps which classes handle the transfer of
> BYTEA to PG and receives BYTEA responses from PG?
>
> Thanks,
> David


pgsql-jdbc by date:

Previous
From: Richard Broersma
Date:
Subject: Re: JDBC with PG 8.4 bytea character escaping wire protocol
Next
From: "Kevin Grittner"
Date:
Subject: Re: commit and rollback don't throw exceptions when theyshould