Gevik Babakhani <pg...@xs4all.nl> writes:
> I was wondering what the philosophy is behind letting an "ambiguous" 
> function be created in the first place. Is this for backwards 
> compatibility or perhaps for historical reasons?

Neither; it's a feature, and one we quite like.  For example, would you
really prefer that the six different versions of abs() had to have
different names?

regression=# \df abs
                          List of functions
   Schema   | Name | Result data type | Argument data types |  Type  
------------+------+------------------+---------------------+--------
 pg_catalog | abs  | bigint           | bigint              | normal
 pg_catalog | abs  | double precision | double precision    | normal
 pg_catalog | abs  | integer          | integer             | normal
 pg_catalog | abs  | numeric          | numeric             | normal
 pg_catalog | abs  | real             | real                | normal
 pg_catalog | abs  | smallint         | smallint            | normal
(6 rows)

Even if you were willing to do that, what about the forty-seven
distinct versions of "+"?  Overloaded operators are not fundamentally
different from overloaded functions.

                        regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to