Re: Function sugnature with default parameter

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Josh Berkus <josh(at)agliodbs(dot)com>
Cc: salah jubeh <s_jubeh(at)yahoo(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Function sugnature with default parameter
Date: 2014-02-26 19:36:36
Message-ID: 530E4244.4090300@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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 something like 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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2014-02-26 19:37:24 Re: [PATCH] Use MAP_HUGETLB where supported (v3)
Previous Message Leon Smith 2014-02-26 19:15:35 Re: Simplified VALUES parameters