pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Christoph Haller <ch@rodos.fzk.de>
To: Lance Peterson <heart8reaker@gmail.com>
Cc: pgsql-sql@postgresql.org
Cc: Michael.Moran@igt.com
Subject: Re: How to cast VARCHAR to BYTEA and vice-versa?
Date: Tue, 15 Mar 2005 10:09:04 +0100
Message-ID: <4236A630.E6952C1B@rodos.fzk.de> (raw)
References: <B27C8914860EE24E865D189A3735EA5310091D@lasexch03.is.ad.igt.com>
	<4235683A.6D2CA65A@rodos.fzk.de>
	<ec98d12d0503140931386fcdf4@mail.gmail.com>

Seems my remembrance was wrong, ::TEXT::BYTEA causes 
ERROR: cannot cast type text to bytea 
on my 7.4.5 version too. 
Looking into "Other Binary String Functions" within the manual, 
sheds light on how to do it: 

::TEXT::BYTEA
Function decode(string text, type text) Return Type bytea 
select decode('123\\000456'::text, 'escape');
   decode   
------------
 123\000456
(1 row)

::BYTEA::TEXT
Function encode(string bytea, type text) Return Type text
select encode('123\\000456'::bytea, 'escape');
   encode   
------------
 123\000456
(1 row)

Sorry for the confusion I have caused, 
especially because there already was a correct answer 
sent by Ragnar. 

Regards, Christoph 


Lance Peterson wrote:
> 
> Christoph, is that recent functionality?  I'm running 7.4 and I get:
> ERROR: cannot cast type text to bytea
> 
> I get similar errors when trying to go the other direction.
> 
> On Mon, 14 Mar 2005 11:32:26 +0100, Christoph Haller <ch@rodos.fzk.de> wrote:
> > "Moran.Michael" wrote:
> > >
> > > Hello all,
> > >
> > > I have a table with a VARCHAR column that I need to convert to a BYTEA.
> > >
> > > How do I cast VARCHAR to BYTEA?
> > >
> > > The following doesn't seem to work as it yields the 'cannot cast varchar to
> > > bytea' error message:
> > >
> > >     varchar_data::bytea
> > >
> > > On the same topic, how do I do the reverse, that is, how to I cast from
> > > BYTEA back to VARCHAR?
> > >
> > > Thanks,
> > > -Michael Moran
> > >
> > >
> > As far as I remember
> > varchar_data::TEXT::BYTEA
> > works. Vice versa dto.
> > Be aware BYTEA data may contain character codes
> > unconvertable to VARCHAR, especially '\0'.
> >
> > Regards, Christoph
> >



view thread (5+ messages)

Message-ID: <4236A630.E6952C1B@rodos.fzk.de>
Permalink:  ../4236A630.E6952C1B@rodos.fzk.de/
Also on:    postgresql.org/message-id/4236A630.E6952C1B@rodos.fzk.de

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: ch@rodos.fzk.de, heart8reaker@gmail.com, Michael.Moran@igt.com
  Subject: Re: How to cast VARCHAR to BYTEA and vice-versa?
  In-Reply-To: <4236A630.E6952C1B@rodos.fzk.de>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox