Function sugnature with default parameter
От | salah jubeh |
---|---|
Тема | Function sugnature with default parameter |
Дата | |
Msg-id | 1393438522.77145.YahooMailNeo@web164803.mail.gq1.yahoo.com обсуждение исходный текст |
Ответы |
Re: Function sugnature with default parameter
|
Список | pgsql-hackers |
Hello,
I find default values confusing when a function is overloaded, below is an example.
CREATE OR REPLACE FUNCTION default_test (a INT DEFAULT 1, b INT DEFAULT 1, C INT DEFAULT 1) RETURNS INT AS
$$
BEGIN
RETURN a+b+c;
END;
$$
LANGUAGE 'plpgsql';
CREATE OR REPLACE FUNCTION default_test (a INT DEFAULT 1, b INT DEFAULT 1) RETURNS INT AS
$$
BEGIN
RETURN a+b;
END;
$$
LANGUAGE 'plpgsql';
$$
BEGIN
RETURN a+b+c;
END;
$$
LANGUAGE 'plpgsql';
CREATE OR REPLACE FUNCTION default_test (a INT DEFAULT 1, b INT DEFAULT 1) RETURNS INT AS
$$
BEGIN
RETURN a+b;
END;
$$
LANGUAGE 'plpgsql';
-- this will fail
--SELECT default_test(1,3);
--SELECT default_test(1);
test=# \df default_test
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+--------------+------------------+---------------------------------------------------------------+--------
public | default_test | integer | a integer DEFAULT 1, b integer DEFAULT 1 | normal
public | default_test | integer | a integer DEFAULT 1, b integer DEFAULT 1, c integer DEFAULT 1 | normal
(2 rows)
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+--------------+------------------+---------------------------------------------------------------+--------
public | default_test | integer | a integer DEFAULT 1, b integer DEFAULT 1 | normal
public | default_test | integer | a integer DEFAULT 1, b integer DEFAULT 1, c integer DEFAULT 1 | normal
(2 rows)
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
В списке pgsql-hackers по дате отправления: