The following bug has been logged online: Bug reference: 4767 Logged by: fduerr Email address: fdu...@gmx.de PostgreSQL version: 8.3.x 8.4.b1 Operating system: Debian Lenny Description: create operator - negator doesn't work Details:
Hi, my apologies beforehand in case i'm just too stupid to understand the documentation... i understand, that the operator's negator argument specifies the operator that, when applied with the same operands, yields the inverted result. So thats what i did: CREATE OR REPLACE FUNCTION eq_int_bool(INTEGER, BOOLEAN) RETURNS BOOLEAN AS 'SELECT CAST($1 AS BOOLEAN)=$2;' LANGUAGE SQL IMMUTABLE; CREATE OPERATOR = ( LEFTARG=INTEGER, RIGHTARG=BOOLEAN, PROCEDURE=eq_int_bool, COMMUTATOR= = , NEGATOR= <> ); And thats, what i got: SELECT 1=false; ?column? ---------- f (1 row) SELECT 1<>false; 8.3.x: ERROR: cache lookup failed for function 0 8.4b1: ERROR: operator is only a shell: integer <> boolean The workaround is, of course, to define an operator with '<>' as commutator that returns the negated result. Still i wonder: is it me, the documentation or pg? -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs