Re: Function sugnature with default parameter - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: Function sugnature with default parameter
Date
Msg-id 530E4244.4090300@dunslane.net
Whole thread Raw
In response to Re: Function sugnature with default parameter  (Josh Berkus <josh@agliodbs.com>)
Responses Re: Function sugnature with default parameter  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-hackers
On 02/26/2014 01:51 PM, Josh Berkus wrote:
> On 02/26/2014 10:15 AM, salah jubeh wrote:
>> I think, there is a difference between optional parameters and default parameter values. So, my suggestion would be
somethinglike this.
 
>> SELECT default_test(1,3, DEFAULT); -- match function number 1
>>
>> SELECT default_test(1,3); -- match the function number 2
>>
>> SELECT default_test(1); -- ERROR
>> Regards
> This would break at least 4 major applications which I personally have
> worked on, and the benefit to users is unclear at best.
>
> One of the main reasons to *have* default parameters is to allow adding
> new parameters to existing functions without breaking old application
> code.  So, -1 from me.
>

me too.

The OP's statement that there is a difference between default params and 
optional params doesn't compute. The only way params are optional is 
that they have a default. Treating these as somehow independent is a 
nonsense.

Furthermore, if we dropped function 2, then
    select default_test(1,3)

would be a call to function 1. Then, if we followed this proposal, 
creating function 2 would magically steer that call to function 2 
instead. Talk about a footgun, and possibly a security risk too.


cheers

andrew



pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: [PATCH] Use MAP_HUGETLB where supported (v3)
Next
From: Merlin Moncure
Date:
Subject: Re: jsonb and nested hstore