Sylvain Leroux <sl20@wanadoo.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