On Sun, Nov 25, 2012 at 6:46 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > I think we're talking past each other here. It is unarguable that > (as long as there's only one LPAD function) there is only one possible > non-error interpretation. However, you are ignoring the real > possibility that perhaps the situation *is* an error: maybe the user > typed the wrong function name, or the wrong field name, or simply > misunderstands what the function is meant to do. If it is a typo then > complaining about the datatype mismatch is a good thing to do. If it > is intentional, then requiring an explicit cast makes it clear to all > concerned that what's wanted is to convert the non-string value to a > string and then perform a string-ish operation on it.
Sure, in theory that is true, but no other RDBMS that I know about feels a need to error out in that situation. I'm skeptical of the contention that we're smarter than everyone else. Moreover, if implicit casts to string are a categorically bad idea, why do we allow them (via various evil hacks) for quote_literal(), concat(), and ||? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers