Well, I didn´t know where was the problem exactly, then ... The entire script to see that problem is create domain public.i32 as integer; CREATE FUNCTION public.fntextonumero(ftext text, finteger public.i32) RETURNS boolean LANGUAGE sql STABLE AS $$ SELECT ftext = finteger::text; $$; CREATE FUNCTION public.fntextonumero(finteger public.i32, ftext text) RETURNS boolean LANGUAGE sql STABLE AS $$ SELECT ftext = finteger::text; $$; CREATE OPERATOR public.= ( FUNCTION = public.fntextonumero, LEFTARG = text, RIGHTARG = public.i32 ); CREATE OPERATOR public.= ( FUNCTION = public.fntextonumero, LEFTARG = public.i32, RIGHTARG = text ); Then that script I´ve sent you this morning. This way I think you can get the problem. Is this a Postgres problem ? Well, I created these operators because Firebird accepts comparisons between numeric and text values, and as we converted from that ... I found a way to continue comparing them. The problem ocurred now because the IN operator. -- Sent from: https://www.postgresql-archive.org/PostgreSQL-general-f1843780.html