Thread: Calling overloaded function with NULL argument

Calling overloaded function with NULL argument

From
Patryk Kordylewski
Date:
Hello,

i've found a strange behaviour when you have overloaded functions with
the same name and different argument types and try to call them with NULL.
The stored procedures with "text" and "text[]" argument type gets called
- the variants with "integer" / "integer[]" produce the, i think
expected, behaviour and raise an exception "ERROR:  FUNCTION
foo(unknown) IS NOT UNIQUE".

Is there an explanation or is this a bug?

I've tested this on PG 8.3.1 and 8.2.4, see
http://pgsql.privatepaste.com/2bCQg0FEPX

Best regards,
Patryk Kordylewski

Re: Calling overloaded function with NULL argument

From
Tom Lane
Date:
Patryk Kordylewski <pk@fooby.de> writes:
> i've found a strange behaviour when you have overloaded functions with
> the same name and different argument types and try to call them with NULL.
> The stored procedures with "text" and "text[]" argument type gets called
> - the variants with "integer" / "integer[]" produce the, i think
> expected, behaviour and raise an exception "ERROR:  FUNCTION
> foo(unknown) IS NOT UNIQUE".

Yeah, this is expected.  There's a weak preference to resolve NULL as
text if there's no other way to determine its type.  (It's handled the
same as an undecorated string literal.)

            regards, tom lane