Re: Search content within a bytea field

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Sylvain Leroux <sl20(at)wanadoo(dot)fr>
Cc: pgsql-jdbc(at)postgresql(dot)org, Damiano Bolzoni <damiano(dot)bolzoni(at)gmail(dot)com>
Subject: Re: Search content within a bytea field
Date: 2009-08-30 22:58:49
Message-ID: 4017.1251673129@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Sylvain Leroux <sl20(at)wanadoo(dot)fr> writes:
> It seems to me that the problem is comming from the BYTEA type, not from
> the prepared statement by itself: As far as I know the only operator
> supported by BYTEA is concatenation. You can't even compare two BYTEA
> for (in)equality - even less using the LIKE operator.

Nonsense ...

regression=# select oid::regoperator from pg_operator where oprleft = 'bytea'::regtype or oprright = 'bytea'::regtype;
oid
------------------
=(bytea,bytea)
<>(bytea,bytea)
<(bytea,bytea)
<=(bytea,bytea)
>(bytea,bytea)
>=(bytea,bytea)
~~(bytea,bytea)
!~~(bytea,bytea)
||(bytea,bytea)
(9 rows)

But this does point out the problem: LIKE (a/k/a ~~) on a bytea wants
a bytea on the righthand side, not text or varchar. So setString is
the wrong thing to use.

regards, tom lane

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Damiano Bolzoni 2009-08-31 06:06:36 Re: Search content within a bytea field
Previous Message Sylvain Leroux 2009-08-30 21:51:51 Re: Search content within a bytea field