On Tuesday 21 April 2009 14:04:01 fduerr wrote: > 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?
What you did above is to specify which operator is the negator of =. But you still need to create that operator; it is not created automatically. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs