From: | "Ian Burrell" <ianburrell(at)gmail(dot)com> |
---|---|
To: | pdxpug(at)postgresql(dot)org |
Subject: | Re: Storing Binary Large Objects |
Date: | 2007-03-29 17:37:13 |
Message-ID: | d91f09cd0703291037u1f4ee4fi2d172924d7726093@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pdxpug |
On 3/29/07, Mark Wong <markwkm(at)gmail(dot)com> wrote:
>
> On paper, using bytea looks more straightforward the oid datatype.
> Does bytea have its own difficulties, other than having to find a way
> to escape the data?
>
The downside of bytea is that it doesn't have file-like random-access
functions. You can only read or write the whole value. The advantage
is that it uses normal SQL commands with wider driver support while
large objects require a special client API. The bytea value has a
size limit of 1 GB; large objects have a limit of 2 GB.
Large objects used to have limitations in being backed up and restored
but I think those have been fixed. They are now stored in a table,
pg_largeobjects, and broken up into chunks. Normal tables have a
toast table mechanism where large values are broken into chunks and
stored in a second toast table.
The database driver should handle the escaping for bytea columns. For
example, DBD::Pg needs to be told the type:
$sth->bind_param($param_num, $bind_value, { pg_type => DBD::Pg::PG_BYTEA });
- Ian
From | Date | Subject | |
---|---|---|---|
Next Message | David E. Wheeler | 2007-03-29 18:00:25 | Re: Storing Binary Large Objects |
Previous Message | Mark Wong | 2007-03-29 15:35:02 | Re: Storing Binary Large Objects |