From: | Julius Tuskenis <julius(dot)tuskenis(at)gmail(dot)com> |
---|---|
To: | |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Error: Operator does not exist: "char"=integer |
Date: | 2008-12-18 12:49:29 |
Message-ID: | 494A46D9.8050505@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Raymond O'Donnell rašė:
> A lot of previously automatic casts were removed in the 8.3 series -
> this is possibly one of them.
>
> You now need to cast explicitly in such cases, e.g.
>
> select '5'::integer;
>
> Ray.
>
That is a good advice and a good practice. But the solution usually
takes time. For a quick (temporary) solution you could write your own
operator for handling "char" = integer cases.
I had to do it once for an "integer ILIKE text" operator:
CREATE OR REPLACE FUNCTION of_integer_ilike_text(prm_integer integer,
prm_text text)
RETURNS boolean AS
$BODY$BEGIN
RETURN prm_integer::text ~~* prm_text ;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION of_integer_ilike_text(integer, text) OWNER TO useris;
CREATE OPERATOR ~~(
PROCEDURE = of_integer_ilike_text,
LEFTARG = int4,
RIGHTARG = text);
I'm sure you'll manage to do this for "text = integer";
Julius Tuskenis
From | Date | Subject | |
---|---|---|---|
Next Message | gerhard | 2008-12-18 13:29:52 | DELETE running at snail-speed |
Previous Message | Julius Tuskenis | 2008-12-18 12:40:39 | Re: SQL plan in functions |