Gevik Babakhani <[email protected]> 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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers