"text to text" operator redefinition ignored - Mailing list pgsql-bugs

From ta@lavabit.com
Subject "text to text" operator redefinition ignored
Date
Msg-id 17605.87.252.128.91.1356117042.squirrel@lavabit.com
Whole thread Raw
Responses Re: "text to text" operator redefinition ignored
List pgsql-bugs
PG 9.2.2, Windows, empty database

just curious, redefinition of various operators seems to work nicely but
"text to text" operator redefinition (last block down here) seems
completely ignored:

set search_path to public;

select 'aa'::varchar =3D 'aa  '::varchar;  -- returns false
create or replace function public.opr_vceqvc(varchar, varchar)
  returns boolean as
  $$
    select rtrim($1)=3Drtrim($2)
  $$
  language sql immutable;
create operator public.=3D (leftarg =3D varchar, rightarg =3D varchar, pr=
ocedure
=3D public.opr_vceqvc,  commutator =3D =3D, negator =3D <>, restrict =3D =
eqsel, join
=3D eqjoinsel, hashes, merges);
select 'aa'::varchar =3D 'aa  '::varchar;  -- returns true
drop operator if exists public.=3D (varchar, varchar);


select 'aa'::text =3D 'aa  '::varchar;  -- returns false
create or replace function public.opr_txeqvc(text, varchar)
  returns boolean as
  $$
    select rtrim($1)=3Drtrim($2)
  $$
  language sql immutable;
create operator public.=3D (leftarg =3D text, rightarg =3D varchar, proce=
dure =3D
public.opr_txeqvc,  commutator =3D =3D, negator =3D <>, restrict =3D eqse=
l, join =3D
eqjoinsel, hashes, merges);
select 'aa'::text =3D 'aa  '::varchar;  -- returns true
drop operator if exists public.=3D (text, varchar);


select 'aa'::text =3D 'aa  '::text;  -- returns false
create or replace function public.opr_txeqtx(text, text)
  returns boolean as
  $$
    -- select rtrim($1)=3Drtrim($2);
    select true;
  $$
  language sql immutable;
create operator public.=3D (leftarg =3D text, rightarg =3D text, procedur=
e =3D
public.opr_txeqtx,  commutator =3D =3D, negator =3D <>, restrict =3D eqse=
l, join =3D
eqjoinsel, hashes, merges);
select 'aa'::text =3D 'aa  '::text;  -- ALWAYS RETURNS FALSE!
drop operator if exists public.=3D (text, text);

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #7771: packaging error causes build failure
Next
From: Tom Lane
Date:
Subject: Re: "text to text" operator redefinition ignored