ERROR: RemoveOperator: left unary operator '~' taking 'int2' does not ???? - Mailing list pgsql-general

From Philip Hallstrom
Subject ERROR: RemoveOperator: left unary operator '~' taking 'int2' does not ????
Date
Msg-id Pine.BSF.4.31.0103211539080.80036-100000@oddjob.adhesivemedia.com
Whole thread Raw
In response to Re: after trigger question  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
Responses Re: ERROR: RemoveOperator: left unary operator '~' taking 'int2' does not ????  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Hi -
    I'm playing around with C functions, etc... and am running into a
strange problem where I cannot delete the operator once I've created it.
I can succesfully create/drop operators with two operands, just not this
one.

Here's a transcript.  What am I missing?  This is happening with 7.0.3.

Thanks!

template1=# \c test
You are now connected to database test.
test=# CREATE FUNCTION am_int_bit_not(int2) RETURNS int2
test-# AS '/local/www/sites/odin/sql/int_bit_operators/am_int_bit_operators.so', 'am_int_bit_not'
test-# LANGUAGE 'C';
CREATE
test=# CREATE OPERATOR ~ (
test(#     RIGHTARG = INT2,
test(#     PROCEDURE = am_int_bit_not
test(#     );
CREATE
test=# \do ~
                          List of operators
 Op | Left arg | Right arg | Result |          Description
----+----------+-----------+--------+--------------------------------
 ~  |          | int2      | int2   |
 ~  | _aclitem | aclitem   | bool   | matches regex., case-sensitive
 ~  | bit      | bit       | bit    | bitwise negation
 ~  | box      | box       | bool   | contains
 ~  | bpchar   | text      | bool   | matches regex., case-sensitive
 ~  | circle   | circle    | bool   | contains
 ~  | circle   | point     | bool   | circle contains point?
 ~  | name     | text      | bool   | matches regex., case-sensitive
 ~  | path     | point     | bool   | path contains point?
 ~  | polygon  | point     | bool   | polygon contains point?
 ~  | polygon  | polygon   | bool   | contains
 ~  | text     | text      | bool   | matches regex., case-sensitive
 ~  | varbit   | varbit    | varbit | bitwise negation
 ~  | varchar  | text      | bool   | matches regex., case-sensitive
(14 rows)

test=# select ~ 2::int2;
 ?column?
----------
       -3
(1 row)

test=# DROP OPERATOR ~ (NONE, INT2);
ERROR:  RemoveOperator: left unary operator '~' taking 'int2' does not exist
test=# DROP OPERATOR ~ (INT2, NONE);
ERROR:  RemoveOperator: right unary operator '~' taking 'int2' does not exist


pgsql-general by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: after trigger question
Next
From: Vince Vielhaber
Date:
Subject: Re: hang on (was: New Book: PostgreSQL: The Elephant Never Forgets)