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