Named parameter notation in Postgresql 9.0
От | Ingmar Brouns |
---|---|
Тема | Named parameter notation in Postgresql 9.0 |
Дата | |
Msg-id | i2w1d47155c1004220927l9e7698d9v68cc12d203f6e93f@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: Named parameter notation in Postgresql 9.0
|
Список | pgsql-testers |
Hi, I was testing the new named parameter notation for calling functions in 9.0 http://developer.postgresql.org/pgdocs/postgres/sql-syntax-calling-funcs.html Named parameter notation is really nice, however, it is still enforced that all parameters after the first parameter with a default value must also have a default value in the function declaration. so the following function will fail to compile: FUNCTION foo(a INTEGER DEFAULT 0, b INTEGER) ERROR: input parameters after one with a default value must also have defaults As the developer documentation states (35.4.6): --------------- Although the use of named argument notation could allow this restriction to be relaxed, it's still enforced so that positional argument notation works sensibly. --------------- One of the main benefits of named notation is that it offers clarity when you have a large number of parameters. When a function has a large number of parameters, then it is often desirable to logically group the parameters together at the function declaration, instead of having to move some of them to the end because they have a default value. Wouldn't it be better to relax this constraint, and instead check that when a function is being called using positional notation, that all parameters must have been provided until (including) the last parameter that has no default value. Kind regards, Ingmar Brouns
В списке pgsql-testers по дате отправления: