Re: Function with defval returns error

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: Function with defval returns error
Дата
Msg-id 49461FB2.5050700@gmx.net
обсуждение исходный текст
Ответ на Function with defval returns error  ("Rushabh Lathia" <rushabh.lathia@gmail.com>)
Ответы Re: Function with defval returns error  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Rushabh Lathia wrote:
> Testcase: (8.4 CVS head)
> ====================
>    CREATE OR REPLACE FUNCTION f007( a INTEGER,
>             b INTEGER DEFAULT 10 ) RETURNS INTEGER
>    AS $$
>        select 10;
>    $$ language sql;
> 
>    CREATE OR REPLACE FUNCTION f007( a INTEGER DEFAULT 10,
>             b INTEGER DEFAULT 10,
>             c INTEGER DEFAULT 10) RETURNS INTEGER
>    AS $$
>        select 10;
>    $$ language sql;
> 
>    CREATE OR REPLACE FUNCTION f007( a TIMESTAMP DEFAULT 
> to_date('01-JUN-06 14:03:50', 'DD-MON-YY HH24:MI:SS') ) RETURNS TIMESTAMP
>    AS $$
>        select current_date::timestamp;
>    $$ language sql;
> 
> postgres=# SELECT f007( to_date('01-JUN-06 14:03:50', 'DD-MON-YY 
> HH24:MI:SS') );
> ERROR:  functions with parameter defaults f007(integer, integer, 
> integer) and f007(integer, integer) are ambiguous
> 
> 
> I think this should not return error as the input args here is 
> timestamp... inputs?

In theory yes, but it's currently not that smart.  When it considers a 
function based on available default values, it does not consider 
argument types.  So if there is another function with the same number of 
arguments, it bails out.

Feel free to propose improvements.


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Rushabh Lathia"
Дата:
Сообщение: Function with defval returns error
Следующее
От: "Pavel Stehule"
Дата:
Сообщение: Re: Function with defval returns error