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
[EMAIL PROTECTED]
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster