storing binary data

Jason Orendorff <jason@jorendorff.com>

From: "Jason Orendorff" <jason@jorendorff.com>
To: <pgsql-hackers@postgresql.org>
Date: 2001-10-22T04:18:46Z
Lists: pgsql-hackers
Reply-To: sender

Hi.  I was surprised to discover today that postgres's
character types don't support zero bytes.  That is,
Postgres isn't 8-bit clean.  Why is that?

More to the point, I need to store about 1k bytes per row
of varying-length 8-bit binary data.  I have a few options:

 + BLOBs.  PostgreSQL BLOBs make me nervous.  I worry about
   the BLOB not being deleted when the corresponding row in
   the table is deleted.  The documentation is vague.

 + What I really need is a binary *short* object type.
   I have heard rumors of a legendary "bytea" type that might
   help me, but it doesn't appear to be documented anywhere,
   so I hesitate to use it.

 + I can base64-encode the data and store it in a "text"
   field.  But postgres is a great big data-storage system;
   surely it can store binary data without resorting to
   this kind of hack.

What should I do?  Please help.  Thanks!

-- 
Jason Orendorff

P.S.  I would love to help improve PostgreSQL's documentation.
      Whom should I contact?