Thread: Variable Length Binary String (not large)

Variable Length Binary String (not large)

From
jnichols@traxsis.com (Jonathan Nichols)
Date:
Hello,
   Can anyone recommend to me the best way to store a variable length
binary string, that isn't larger than the 8192 byte limit for
non-large objects??  It seems to me that using BLOBs might be overkill
with too much complexity.  However, there doesn't seem to be a binary
string type in postgres that is meant for small binary strings.  I
have tried to use normal character strings, but it gets screwed up
because of non-printable characters.  Any suggestions??

thanks,

jon


Re: Variable Length Binary String (not large)

From
Haller Christoph
Date:
Hi Jonathan, 
The data type you're looking for is called 'bytea'. 
It's poorly documented in 7.1x. 
Also the set of functions supporting this type is small. 
I've searched the mailing list for 'binary string' and found 
it's planned to bring up a complete set of functions for 
'bytea' including the possibility to deal with '\000' bytes. 
I'm afraid you'll have to wait until 7.2 is available. 
Regards, Christoph 

> Hello,
> 
>     Can anyone recommend to me the best way to store a variable length
> binary string, that isn't larger than the 8192 byte limit for
> non-large objects??  It seems to me that using BLOBs might be overkill
> with too much complexity.  However, there doesn't seem to be a binary
> string type in postgres that is meant for small binary strings.  I
> have tried to use normal character strings, but it gets screwed up
> because of non-printable characters.  Any suggestions??
> 
> thanks,
> 
> jon



Re: Variable Length Binary String (not large)

From
Jason Earl
Date:
Another option is to base64 encode your data and then insert into into
a plain text field.  I found that this was actually faster in Python
than trying to use bytea and escaping the two or three characters that
give bytea fits.

On the other hand, if you are still in the development stages it
probably is a good idea to be working with the 7.2 betas anyhow.  The
newer bytea solution is almost certainly better than my base64 kludge.

Jason

Haller Christoph <ch@rodos.fzk.de> writes:

> Hi Jonathan, 
> The data type you're looking for is called 'bytea'. 
> It's poorly documented in 7.1x. 
> Also the set of functions supporting this type is small. 
> I've searched the mailing list for 'binary string' and found 
> it's planned to bring up a complete set of functions for 
> 'bytea' including the possibility to deal with '\000' bytes. 
> I'm afraid you'll have to wait until 7.2 is available. 
> Regards, Christoph 
> 
> > Hello,
> > 
> >     Can anyone recommend to me the best way to store a variable length
> > binary string, that isn't larger than the 8192 byte limit for
> > non-large objects??  It seems to me that using BLOBs might be overkill
> > with too much complexity.  However, there doesn't seem to be a binary
> > string type in postgres that is meant for small binary strings.  I
> > have tried to use normal character strings, but it gets screwed up
> > because of non-printable characters.  Any suggestions??
> > 
> > thanks,
> > 
> > jon
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly