> > so "any" datatype is last possibility - is workaroud for custom functions.
Probably the most correct implementation of CONCAT have to contains a parser changes - and then you can use a some internal concat function with text only parameters. VARIADIC with "any" is just workaround that is enouhg Regards Pavel > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> The problem with your canonical example (and the other examples of >> this type I've seen) is that they are underspecified. Given two >> identically-named operators, one of which accepts types T1 and T2, and >> the other of which accepts types T3 and T4, what is one to do with T1 >> OP T4? You can cast T1 to T3 and call the first operator or you can >> cast T4 to T2 and call the second one, and it's really not clear which >> is right, so you had better thrown an error. The same applies to >> functions: given foo(text) and foo(date) and the call >> foo('2010-04-15'), you had better complain, or you may end up with a >> very sad user. But sometimes our current casting rules require casts >> in situations where they don't seem necessary, such as >> LPAD(integer_column, '0', 5). That's not ambiguous because there's >> only one definition of LPAD, and the chances that the user will be >> unpleasantly surprised if you call it seem quite low. >> >> In other words, this problem is not unique to CONCAT(). >> >> -- >> Robert Haas >> EnterpriseDB: http://www.enterprisedb.com >> The Enterprise Postgres Company >> > -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers