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

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: Can not match 0 on bytea


  • From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
  • To: seiliki(at)so-net(dot)net(dot)tw
  • Cc: pgsql-general(at)postgresql(dot)org
  • Subject: Re: Can not match 0 on bytea
  • Date: Sat, 27 Feb 2010 11:26:44 -0500
  • Message-id: <25636.1267288004@sss.pgh.pa.us> <text/plain>

seiliki(at)so-net(dot)net(dot)tw writes:
> Data type of table1.c1 is bytea. That column stores binary data. The following matchings do not work. What is the right syntax?

> TIA
> CN
> ---------------
> select c1 ~ E'\000' from table1;
> select c1 LIKE E'%\000%' from table1;

> ERROR:  invalid byte sequence for encoding "UTF8": 0x00

The reason that doesn't work is that E'\000' is initially a text
literal, with the backslash sequence being processed by the string
literal parser; and a zero byte isn't allowed in text.

Try it with E'\\000'.  What this gives rise to is a text constant
containing the four characters \ 0 0 0, and then when that gets
converted to bytea, another round of backslash processing will happen
to produce the (legal) bytea constant with a single zero byte.

			regards, tom lane



Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group