On Sun, Nov 25, 2012 at 6:46 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Robert Haas <robertmh...@gmail.com> writes: > 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.
Yeah, but of course all of that could also be true even if the argument types match exactly, too. I mean, I won't deny that the presence of an exact argument-type match lends a little bit of additional confidence that the call is the one the user intended, but a user is more likely to confuse LPAD with RPAD than they are to confuse either of them with a function that does something completely different but is spelled almost the same (LDAP?). I think it's also worth reiterating that, whatever you may think of the LPAD case, there is a significant win here in allowing things like foo(3) to match foo(smallint) in the absence of any other foo-of-one-argument. Nobody's even attempted to argue that the current behavior in that situation is desirable, and the fact that this would fix it in nearly all of the cases that anyone cares about strikes me as a distinct point in its favor. -- 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