Skip site navigation (1) Skip section navigation (2)

Re: storing binary data

From: Joe Conway <joseph(dot)conway(at)home(dot)com>
To: Cristóvão Dalla Costa <cbraga(at)bsi(dot)com(dot)br>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: storing binary data
Date: 2001-11-14 01:53:27
Message-ID: (view raw or whole thread)
Lists: pgsql-interfaces
Cristóvão Dalla Costa wrote:

> Hi,
> I'm using libpq to interface my program to postgresql, and I need to store
> some binary data (around 30-40 bytes per element). I'm not sure of the best
> way to do so, since blobs seem awkward. How would you do it? How would you
> insert it in a text field?
> Thanks all,
> Cristovao

I recommend BYTEA datatype for this. It works in a similar manner to 
TEXT, but it is designed for binary data. You will need to escape 
certain values on INSERT and unescape on SELECT. See:

for a recent post on this.

Hope this helps,

-- Joe

Note that in 7.2 (in beta now) there is a function in libpq specifically 
for escaping BYTEA input strings (PQescapeBytea -- see fe-exec.c):

  *	PQescapeBytea	- converts from binary string to the
  *	minimal encoding necessary to include the string in an SQL
  *	INSERT statement with a bytea type column as the target.
  *	The following transformations are applied
  *	'\0' == ASCII  0 == \\000
  *	'\'' == ASCII 39 == \'
  *	'\\' == ASCII 92 == \\\\
unsigned char *
PQescapeBytea(unsigned char *bintext, size_t binlen, size_t *bytealen)

In response to

pgsql-interfaces by date

Next:From: Alexaki SofiaDate: 2001-11-14 13:46:26
Subject: how to use ODBC interface (fwd)
Previous:From: Alex PilosovDate: 2001-11-14 00:08:49
Subject: Re: storing binary data

Privacy Policy | About PostgreSQL
Copyright © 1996-2015 The PostgreSQL Global Development Group