Thread: bytea encoding

bytea encoding

From
Jesse Eichar
Date:
Hi

I am doing some feasibility research and have some questions about
bytea:

1. Is the byte stream (or byte array) converted to bytea on the database
side or on client before sending?  (My client is using the
postgresql-74.213.jar).

2.  If client does the encoding what will happen if the database
receives information that is already in bytea?  Will it recognize that
the data is already in bytea?

3.  Is there a way to convert an array of bytes into an array of bytea
values?

Thank you,

Jesse


Re: bytea encoding

From
Oliver Jowett
Date:
Jesse Eichar wrote:

> 1. Is the byte stream (or byte array) converted to bytea on the database
> side or on client before sending?  (My client is using the
> postgresql-74.213.jar).

You give the driver a byte[] (setBytes) or InputStream
(setBinaryStream); it does the rest. Old drivers such as build 213 will,
IIRC, convert this to a text representation internally before sending to
the backend; newer drivers will send the data directly without
conversion. But this is all transparent to the client.

-O

Re: bytea encoding

From
Jesse
Date:
My problem is this:

I want to send a binary file in a CDATA section of an xml file to a
server that will then turn around and put the binary file a bytea
column.

Is there a way that I can use postgresql-74.213.jar (or more recent) to
encode the file in bytea on the client side?  If no, do you know where I
can get code to do that?

If the server puts data in the database will the database recognize that
it is bytea already?

thank you,

Jesse

On Thu, 2005-05-12 at 09:53 +1200, Oliver Jowett wrote:
> Jesse Eichar wrote:
>
> > 1. Is the byte stream (or byte array) converted to bytea on the database
> > side or on client before sending?  (My client is using the
> > postgresql-74.213.jar).
>
> You give the driver a byte[] (setBytes) or InputStream
> (setBinaryStream); it does the rest. Old drivers such as build 213 will,
> IIRC, convert this to a text representation internally before sending to
> the backend; newer drivers will send the data directly without
> conversion. But this is all transparent to the client.
>
> -O


Re: bytea encoding

From
Oliver Jowett
Date:
Jesse wrote:

> Is there a way that I can use postgresql-74.213.jar (or more recent) to
> encode the file in bytea on the client side?  If no, do you know where I
> can get code to do that?

You do not need to "encode the file in bytea". Use setBytes() or
setBinaryStream() and the driver will do the rest.

-O