| From: | dmp <danap(at)ttc-cmc(dot)net> | 
|---|---|
| To: | David Wall <d(dot)wall(at)computer(dot)org>, pgsql-jdbc(at)postgresql(dot)org | 
| Subject: | Re: JDBC with PG 8.4 bytea character escaping wire protocol | 
| Date: | 2009-10-22 16:56:34 | 
| Message-ID: | 4AE08EC2.107@ttc-cmc.net | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | 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 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Richard Broersma | 2009-10-22 17:06:23 | Re: JDBC with PG 8.4 bytea character escaping wire protocol | 
| Previous Message | David Wall | 2009-10-22 16:46:21 | Re: JDBC with PG 8.4 bytea character escaping wire protocol |