On Sun, 21 Oct 2001 14:14:05 -0400, Tom Lane wrote:
>Looks like these are "shell" operator definitions left over from
>commutator or negator forward references that were never satisfied.
>pg_dump did the right thing to not dump them. I'd say that the backend
>should never have accepted a shell operator def with an empty name,
>though, which is what you seem to have at OID 280347.
>
>Do you happen to have the exact command that you gave to create
>operator 280343 (numeric_neq)? I think what this really boils down
>to is insufficient error checking somewhere in CREATE OPERATOR.
Fortunately I still have the scripts. I used pgAdminII. But I think some
time earlier I used psql for the same operator. So shouldn't make any
difference.
I used the two scripts below. I think in that particular order.
(Still wondering, why there is a negator '<>' in the first one :-)
I just tested them again. No error message.
And I've got one with an empty name!
Always wondered why.
(1)
create function numeric_eq(numeric,float8) returns bool as ' select $1 = $2::numeric;
' language 'sql';
create operator =
(leftarg=numeric,rightarg=float8,procedure=numeric_eq,commutator='=',negator='<>',restrict=eqsel,join=eqjoinsel);
(2)
create function numeric_neq(numeric,float8) returns bool as ' select $1 = $2::numeric;
' language 'sql';
create operator <>
(leftarg=numeric,rightarg=float8,procedure=numeric_neq,commutator='<>',negator='',restrict=eqsel,join=eqjoinsel);
regards
Johann Zuschlag
zuschlag@online.de