Re: types used for JDBC BLOB and CLOB?

Lists: pgsql-jdbc
From: "Barry Lind" <blind(at)xythos(dot)com>
To: "Marc G(dot) Fournier" <scrappy(at)postgresql(dot)org>
Cc: <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: types used for JDBC BLOB and CLOB?
Date: 2004-08-23 19:32:59
Message-ID: 03E7D3E231BB7B4A915A6581D4296CC6978CE1@NSNOVPS00411.nacio.xythos.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Marc,

The answer is it depends, but if they intend to use the jdbc BLOB/CLOB
interface it is server side LargeObjects, not bytea. However you can
use bytea, but then you need to use the get/setXXXStream() interfaces.

Thanks,
--Barry

-----Original Message-----
From: Marc G. Fournier [mailto:scrappy(at)postgresql(dot)org]
Sent: Monday, August 23, 2004 11:52 AM
To: Barry Lind
Cc: Marc G. Fournier; pgsql-jdbc(at)postgresql(dot)org
Subject: RE: [JDBC] types used for JDBC BLOB and CLOB?

'k, I believe what the client is wanting to know is what the storage
type would be on the backend, that the would BLOB/CLOB map to ... bytea?

On Mon, 23 Aug 2004, Barry Lind wrote:

> Marc,
>
> If you are specifically talking about the JDBC types BLOB and CLOB
> those classes use the server LargeObject interface. If you are
> speaking generically about support for large objects then the jdbc
> driver supports the bytea datatype for the get/setBinaryStream()
> methods. So the answer is "it depends", on how you use the driver.
> The specifics for supporting binary objects are documented in a
> section on this topic in the postgresql jdbc driver documentation
chapter.
>
> Thanks,
> --Barry
>
> -----Original Message-----
> From: Marc G. Fournier [mailto:scrappy(at)postgresql(dot)org]
> Sent: Monday, August 23, 2004 8:44 AM
> To: pgsql-jdbc(at)postgresql(dot)org
> Subject: [JDBC] types used for JDBC BLOB and CLOB?
>
>
> Just been asked this, and I'm not sure of the answer ... based on
> reading the docs on bytea, I'm assuming that it is such, but can
> someone please confirm?
>
> Thanks ...
>
> ----
> Marc G. Fournier Hub.Org Networking Services
> (http://www.hub.org)
> Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ:
> 7615664
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>
>

----
Marc G. Fournier Hub.Org Networking Services
(http://www.hub.org)
Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ:
7615664


From: "Marc G(dot) Fournier" <scrappy(at)postgresql(dot)org>
To: Barry Lind <blind(at)xythos(dot)com>
Cc: "Marc G(dot) Fournier" <scrappy(at)postgresql(dot)org>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: types used for JDBC BLOB and CLOB?
Date: 2004-08-23 22:06:44
Message-ID: 20040823185524.E4215@ganymede.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc


k .. I'm obviously missing something, and having never used BLOBs before,
I'm not surprised ...

Looking at:

http://www.postgresql.org/docs/7.4/static/lo-implementation.html

It states:

"The large object implementation breaks large objects up into "chunks" and
stores the chunks in rows in the database."

When I create my schema for this, what type do I assign the field? Or is
there a special 'table' created when you do the lo_creat to store the
BLOBs in? (looking at docs, which references the libpq library vs JDBC,
sorry)

For instance, I notice in:

http://www.postgresql.org/docs/7.4/static/lo-interfaces.html

"Oid lo_creat(PGconn *conn, int mode);"

So, lo_creat returns an OID ... is that what I'd store in a table, and
when I needed the value, would call lo_open to actually access it as I
need?

The part that is confusing me is the point about 'chunks' above ... from
that, it seems that the data is stored in table within the database ...
but if so, what type does one define to store it in? how would a
'pg_dump' show the schema?

Hopefully this explains a bit better my confusion here :(

On Mon, 23 Aug 2004, Barry Lind wrote:

> Marc,
>
> The answer is it depends, but if they intend to use the jdbc BLOB/CLOB
> interface it is server side LargeObjects, not bytea. However you can
> use bytea, but then you need to use the get/setXXXStream() interfaces.
>
> Thanks,
> --Barry
>
> -----Original Message-----
> From: Marc G. Fournier [mailto:scrappy(at)postgresql(dot)org]
> Sent: Monday, August 23, 2004 11:52 AM
> To: Barry Lind
> Cc: Marc G. Fournier; pgsql-jdbc(at)postgresql(dot)org
> Subject: RE: [JDBC] types used for JDBC BLOB and CLOB?
>
>
> 'k, I believe what the client is wanting to know is what the storage
> type would be on the backend, that the would BLOB/CLOB map to ... bytea?
>
> On Mon, 23 Aug 2004, Barry Lind wrote:
>
>> Marc,
>>
>> If you are specifically talking about the JDBC types BLOB and CLOB
>> those classes use the server LargeObject interface. If you are
>> speaking generically about support for large objects then the jdbc
>> driver supports the bytea datatype for the get/setBinaryStream()
>> methods. So the answer is "it depends", on how you use the driver.
>> The specifics for supporting binary objects are documented in a
>> section on this topic in the postgresql jdbc driver documentation
> chapter.
>>
>> Thanks,
>> --Barry
>>
>> -----Original Message-----
>> From: Marc G. Fournier [mailto:scrappy(at)postgresql(dot)org]
>> Sent: Monday, August 23, 2004 8:44 AM
>> To: pgsql-jdbc(at)postgresql(dot)org
>> Subject: [JDBC] types used for JDBC BLOB and CLOB?
>>
>>
>> Just been asked this, and I'm not sure of the answer ... based on
>> reading the docs on bytea, I'm assuming that it is such, but can
>> someone please confirm?
>>
>> Thanks ...
>>
>> ----
>> Marc G. Fournier Hub.Org Networking Services
>> (http://www.hub.org)
>> Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ:
>> 7615664
>>
>> ---------------------------(end of
>> broadcast)---------------------------
>> TIP 7: don't forget to increase your free space map settings
>>
>>
>
> ----
> Marc G. Fournier Hub.Org Networking Services
> (http://www.hub.org)
> Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ:
> 7615664
>
>

----
Marc G. Fournier Hub.Org Networking Services (http://www.hub.org)
Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ: 7615664


From: "David Wall" <d(dot)wall(at)computer(dot)org>
To: "Marc G(dot) Fournier" <scrappy(at)postgresql(dot)org>
Cc: <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: types used for JDBC BLOB and CLOB?
Date: 2004-08-23 22:18:13
Message-ID: 089c01c4895f$14ff2360$3201a8c0@rasta
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

If you want to use the BLOB JDBC calls, you will use the OID type for the
field in your table schema.

You do NOT need to use the lo_ routines since they will be called for you if
you use the JDBC BLOB calls.

David

----- Original Message -----
From: "Marc G. Fournier" <scrappy(at)postgresql(dot)org>
To: "Barry Lind" <blind(at)xythos(dot)com>
Cc: "Marc G. Fournier" <scrappy(at)postgresql(dot)org>; <pgsql-jdbc(at)postgresql(dot)org>
Sent: Monday, August 23, 2004 3:06 PM
Subject: Re: [JDBC] types used for JDBC BLOB and CLOB?

>
> k .. I'm obviously missing something, and having never used BLOBs before,
> I'm not surprised ...
>
> Looking at:
>
> http://www.postgresql.org/docs/7.4/static/lo-implementation.html
>
> It states:
>
> "The large object implementation breaks large objects up into "chunks" and
> stores the chunks in rows in the database."
>
> When I create my schema for this, what type do I assign the field? Or is
> there a special 'table' created when you do the lo_creat to store the
> BLOBs in? (looking at docs, which references the libpq library vs JDBC,
> sorry)
>
> For instance, I notice in:
>
> http://www.postgresql.org/docs/7.4/static/lo-interfaces.html
>
> "Oid lo_creat(PGconn *conn, int mode);"
>
> So, lo_creat returns an OID ... is that what I'd store in a table, and
> when I needed the value, would call lo_open to actually access it as I
> need?
>
> The part that is confusing me is the point about 'chunks' above ...
from
> that, it seems that the data is stored in table within the database ...
> but if so, what type does one define to store it in? how would a
> 'pg_dump' show the schema?
>
> Hopefully this explains a bit better my confusion here :(
>
>
> On Mon, 23 Aug 2004, Barry Lind wrote:
>
> > Marc,
> >
> > The answer is it depends, but if they intend to use the jdbc BLOB/CLOB
> > interface it is server side LargeObjects, not bytea. However you can
> > use bytea, but then you need to use the get/setXXXStream() interfaces.
> >
> > Thanks,
> > --Barry
> >
> > -----Original Message-----
> > From: Marc G. Fournier [mailto:scrappy(at)postgresql(dot)org]
> > Sent: Monday, August 23, 2004 11:52 AM
> > To: Barry Lind
> > Cc: Marc G. Fournier; pgsql-jdbc(at)postgresql(dot)org
> > Subject: RE: [JDBC] types used for JDBC BLOB and CLOB?
> >
> >
> > 'k, I believe what the client is wanting to know is what the storage
> > type would be on the backend, that the would BLOB/CLOB map to ... bytea?
> >
> > On Mon, 23 Aug 2004, Barry Lind wrote:
> >
> >> Marc,
> >>
> >> If you are specifically talking about the JDBC types BLOB and CLOB
> >> those classes use the server LargeObject interface. If you are
> >> speaking generically about support for large objects then the jdbc
> >> driver supports the bytea datatype for the get/setBinaryStream()
> >> methods. So the answer is "it depends", on how you use the driver.
> >> The specifics for supporting binary objects are documented in a
> >> section on this topic in the postgresql jdbc driver documentation
> > chapter.
> >>
> >> Thanks,
> >> --Barry
> >>
> >> -----Original Message-----
> >> From: Marc G. Fournier [mailto:scrappy(at)postgresql(dot)org]
> >> Sent: Monday, August 23, 2004 8:44 AM
> >> To: pgsql-jdbc(at)postgresql(dot)org
> >> Subject: [JDBC] types used for JDBC BLOB and CLOB?
> >>
> >>
> >> Just been asked this, and I'm not sure of the answer ... based on
> >> reading the docs on bytea, I'm assuming that it is such, but can
> >> someone please confirm?
> >>
> >> Thanks ...
> >>
> >> ----
> >> Marc G. Fournier Hub.Org Networking Services
> >> (http://www.hub.org)
> >> Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ:
> >> 7615664
> >>
> >> ---------------------------(end of
> >> broadcast)---------------------------
> >> TIP 7: don't forget to increase your free space map settings
> >>
> >>
> >
> > ----
> > Marc G. Fournier Hub.Org Networking Services
> > (http://www.hub.org)
> > Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ:
> > 7615664
> >
> >
>
> ----
> Marc G. Fournier Hub.Org Networking Services
(http://www.hub.org)
> Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ:
7615664
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster


From: "Marc G(dot) Fournier" <scrappy(at)postgresql(dot)org>
To: David Wall <d(dot)wall(at)computer(dot)org>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: types used for JDBC BLOB and CLOB?
Date: 2004-08-24 02:05:38
Message-ID: 20040823230510.M4215@ganymede.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc


Perfect, thank you ... re: the lo_ calls ... ya, I figured that, but I
needed something to act as a reference for this ;)

Thanks ...

On Mon, 23 Aug 2004, David Wall wrote:

> If you want to use the BLOB JDBC calls, you will use the OID type for the
> field in your table schema.
>
> You do NOT need to use the lo_ routines since they will be called for you if
> you use the JDBC BLOB calls.
>
> David
>
> ----- Original Message -----
> From: "Marc G. Fournier" <scrappy(at)postgresql(dot)org>
> To: "Barry Lind" <blind(at)xythos(dot)com>
> Cc: "Marc G. Fournier" <scrappy(at)postgresql(dot)org>; <pgsql-jdbc(at)postgresql(dot)org>
> Sent: Monday, August 23, 2004 3:06 PM
> Subject: Re: [JDBC] types used for JDBC BLOB and CLOB?
>
>
>>
>> k .. I'm obviously missing something, and having never used BLOBs before,
>> I'm not surprised ...
>>
>> Looking at:
>>
>> http://www.postgresql.org/docs/7.4/static/lo-implementation.html
>>
>> It states:
>>
>> "The large object implementation breaks large objects up into "chunks" and
>> stores the chunks in rows in the database."
>>
>> When I create my schema for this, what type do I assign the field? Or is
>> there a special 'table' created when you do the lo_creat to store the
>> BLOBs in? (looking at docs, which references the libpq library vs JDBC,
>> sorry)
>>
>> For instance, I notice in:
>>
>> http://www.postgresql.org/docs/7.4/static/lo-interfaces.html
>>
>> "Oid lo_creat(PGconn *conn, int mode);"
>>
>> So, lo_creat returns an OID ... is that what I'd store in a table, and
>> when I needed the value, would call lo_open to actually access it as I
>> need?
>>
>> The part that is confusing me is the point about 'chunks' above ...
> from
>> that, it seems that the data is stored in table within the database ...
>> but if so, what type does one define to store it in? how would a
>> 'pg_dump' show the schema?
>>
>> Hopefully this explains a bit better my confusion here :(
>>
>>
>> On Mon, 23 Aug 2004, Barry Lind wrote:
>>
>>> Marc,
>>>
>>> The answer is it depends, but if they intend to use the jdbc BLOB/CLOB
>>> interface it is server side LargeObjects, not bytea. However you can
>>> use bytea, but then you need to use the get/setXXXStream() interfaces.
>>>
>>> Thanks,
>>> --Barry
>>>
>>> -----Original Message-----
>>> From: Marc G. Fournier [mailto:scrappy(at)postgresql(dot)org]
>>> Sent: Monday, August 23, 2004 11:52 AM
>>> To: Barry Lind
>>> Cc: Marc G. Fournier; pgsql-jdbc(at)postgresql(dot)org
>>> Subject: RE: [JDBC] types used for JDBC BLOB and CLOB?
>>>
>>>
>>> 'k, I believe what the client is wanting to know is what the storage
>>> type would be on the backend, that the would BLOB/CLOB map to ... bytea?
>>>
>>> On Mon, 23 Aug 2004, Barry Lind wrote:
>>>
>>>> Marc,
>>>>
>>>> If you are specifically talking about the JDBC types BLOB and CLOB
>>>> those classes use the server LargeObject interface. If you are
>>>> speaking generically about support for large objects then the jdbc
>>>> driver supports the bytea datatype for the get/setBinaryStream()
>>>> methods. So the answer is "it depends", on how you use the driver.
>>>> The specifics for supporting binary objects are documented in a
>>>> section on this topic in the postgresql jdbc driver documentation
>>> chapter.
>>>>
>>>> Thanks,
>>>> --Barry
>>>>
>>>> -----Original Message-----
>>>> From: Marc G. Fournier [mailto:scrappy(at)postgresql(dot)org]
>>>> Sent: Monday, August 23, 2004 8:44 AM
>>>> To: pgsql-jdbc(at)postgresql(dot)org
>>>> Subject: [JDBC] types used for JDBC BLOB and CLOB?
>>>>
>>>>
>>>> Just been asked this, and I'm not sure of the answer ... based on
>>>> reading the docs on bytea, I'm assuming that it is such, but can
>>>> someone please confirm?
>>>>
>>>> Thanks ...
>>>>
>>>> ----
>>>> Marc G. Fournier Hub.Org Networking Services
>>>> (http://www.hub.org)
>>>> Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ:
>>>> 7615664
>>>>
>>>> ---------------------------(end of
>>>> broadcast)---------------------------
>>>> TIP 7: don't forget to increase your free space map settings
>>>>
>>>>
>>>
>>> ----
>>> Marc G. Fournier Hub.Org Networking Services
>>> (http://www.hub.org)
>>> Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ:
>>> 7615664
>>>
>>>
>>
>> ----
>> Marc G. Fournier Hub.Org Networking Services
> (http://www.hub.org)
>> Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ:
> 7615664
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 4: Don't 'kill -9' the postmaster
>
>

----
Marc G. Fournier Hub.Org Networking Services (http://www.hub.org)
Email: scrappy(at)hub(dot)org Yahoo!: yscrappy ICQ: 7615664