Hi I try to create operator + for varchar and integer with Oracle behave.
create or replace function sum(varchar, int) returns int as $$ select $1::int + $2 $$ language sql; create operator + (function = sum, leftarg = varchar, rightarg = int, commutator = +); create table foo2(a varchar); insert into foo2 values('10'); select a + 1 from foo2; -- it is ok but select 1 + a from foo2; -- fails ERROR: operator is only a shell: integer + character varying LINE 1: select 1 + a from foo2; Why? This should be solved by COMMUTATOR = + Regards Pavel