Обсуждение: Reference function arguments by name

Поиск
Список
Период
Сортировка

Reference function arguments by name

От
Erwin Brandstetter
Дата:
Hi!

The manual says here:
http://www.postgresql.org/docs/current/interactive/sql-createfunction.html
http://www.postgresql.org/docs/devel/static/sql-createfunction.html

argname

The name of an argument. Some languages (currently only PL/pgSQL) let you use the name in the function body. For other languages the name of an input argument is just extra documentation, so far as the function itself is concerned; but you can use input argument names when calling a function to improve readability (see Section 4.3). In any case, the name of an output argument is significant, because it defines the column name in the result row type. (If you omit the name for an output argument, the system will choose a default column name.)


This has changed in version 9.2. SQL functions can reference the name. Ergo:

s /(currently only PL/pgSQL) / (currently only PL/pgSQL and SQL)


I tested it and it's correctly documented here:
http://www.postgresql.org/docs/current/interactive/xfunc-sql.html#XFUNC-SQL-FUNCTION-ARGUMENTS

> Arguments of a SQL function can be referenced in the function body using either names or numbers.


Regards
Erwin

Re: Reference function arguments by name

От
Sian Mountbatten
Дата:
On 2013-05-09 21:46, Erwin Brandstetter wrote:
Hi!

The manual says here:
http://www.postgresql.org/docs/current/interactive/sql-createfunction.html
http://www.postgresql.org/docs/devel/static/sql-createfunction.html

argname

The name of an argument. Some languages (currently only PL/pgSQL) let you use the name in the function body. For other languages the name of an input argument is just extra documentation, so far as the function itself is concerned; but you can use input argument names when calling a function to improve readability (see Section 4.3). In any case, the name of an output argument is significant, because it defines the column name in the result row type. (If you omit the name for an output argument, the system will choose a default column name.)


This has changed in version 9.2. SQL functions can reference the name. Ergo:

s /(currently only PL/pgSQL) / (currently only PL/pgSQL and SQL)


I tested it and it's correctly documented here:
http://www.postgresql.org/docs/current/interactive/xfunc-sql.html#XFUNC-SQL-FUNCTION-ARGUMENTS

> Arguments of a SQL function can be referenced in the function body using either names or numbers.


Regards
Erwin
It looks strongly that you people are of the opinion that "the code documents
itself". That is a myth produced by lazy software developers who cannot document
their code properly. You ought to be using Cweb for C code. Have a look at
the code for SQLite to see how comments in C can be used to provide decent
documentation

Fortunately, I do not use C. I prefer a HIGH-level language :-)

-- 
Sian Mountbatten
Algol 68 Specialist


Re: Reference function arguments by name

От
Erwin Brandstetter
Дата:

On 11.05.2013 10:13, Sian Mountbatten wrote:
On 2013-05-09 21:46, Erwin Brandstetter wrote:
Hi!

The manual says here:
http://www.postgresql.org/docs/current/interactive/sql-createfunction.html
http://www.postgresql.org/docs/devel/static/sql-createfunction.html

argname

The name of an argument. Some languages (currently only PL/pgSQL) let you use the name in the function body. For other languages the name of an input argument is just extra documentation, so far as the function itself is concerned; but you can use input argument names when calling a function to improve readability (see Section 4.3). In any case, the name of an output argument is significant, because it defines the column name in the result row type. (If you omit the name for an output argument, the system will choose a default column name.)


This has changed in version 9.2. SQL functions can reference the name. Ergo:

s /(currently only PL/pgSQL) / (currently only PL/pgSQL and SQL)


I tested it and it's correctly documented here:
http://www.postgresql.org/docs/current/interactive/xfunc-sql.html#XFUNC-SQL-FUNCTION-ARGUMENTS

> Arguments of a SQL function can be referenced in the function body using either names or numbers.


Regards
Erwin
It looks strongly that you people are of the opinion that "the code documents
itself". That is a myth produced by lazy software developers who cannot document
their code properly. You ought to be using Cweb for C code. Have a look at
the code for SQLite to see how comments in C can be used to provide decent
documentation

Fortunately, I do not use C. I prefer a HIGH-level language :-)

This reply seems unrelated.

Regards
Erwin

Re: Reference function arguments by name

От
Sian Mountbatten
Дата:
On 2013-05-11 09:20, Erwin Brandstetter wrote:

On 11.05.2013 10:13, Sian Mountbatten wrote:
On 2013-05-09 21:46, Erwin Brandstetter wrote:
Hi!

The manual says here:
http://www.postgresql.org/docs/current/interactive/sql-createfunction.html
http://www.postgresql.org/docs/devel/static/sql-createfunction.html

argname

The name of an argument. Some languages (currently only PL/pgSQL) let you use the name in the function body. For other languages the name of an input argument is just extra documentation, so far as the function itself is concerned; but you can use input argument names when calling a function to improve readability (see Section 4.3). In any case, the name of an output argument is significant, because it defines the column name in the result row type. (If you omit the name for an output argument, the system will choose a default column name.)


This has changed in version 9.2. SQL functions can reference the name. Ergo:

s /(currently only PL/pgSQL) / (currently only PL/pgSQL and SQL)


I tested it and it's correctly documented here:
http://www.postgresql.org/docs/current/interactive/xfunc-sql.html#XFUNC-SQL-FUNCTION-ARGUMENTS

> Arguments of a SQL function can be referenced in the function body using either names or numbers.


Regards
Erwin
It looks strongly that you people are of the opinion that "the code documents
itself". That is a myth produced by lazy software developers who cannot document
their code properly. You ought to be using Cweb for C code. Have a look at
the code for SQLite to see how comments in C can be used to provide decent
documentation

Fortunately, I do not use C. I prefer a HIGH-level language :-)

This reply seems unrelated.

Regards
Erwin
The point is that documentation of the code always takes 2nd place. Why
argue about readability when the only help you give to anybody who is
unfortunate enough to have to maintain your software are names of variables?
It doesn't matter a damn whether you put names in or out of a function.
What matters is what help do you give your hapless maintainers?

Sincerely
-- 
Sian Mountbatten
Algol 68 Specialist


Re: Reference function arguments by name

От
"Erik Rijkers"
Дата:
On Thu, May 9, 2013 22:46, Erwin Brandstetter wrote:
> This has changed in version 9.2. SQL functions can reference the name. Ergo:
>
> s /(currently only PL/pgSQL) / (currently only PL/pgSQL and SQL)
>
>

Here is the patch (don't feed them Battenbergs).


Вложения

Re: Reference function arguments by name

От
Tom Lane
Дата:
Erwin Brandstetter <brandstetter@falter.at> writes:
> The manual says here:
> http://www.postgresql.org/docs/current/interactive/sql-createfunction.html

>> The name of an argument. Some languages (currently only PL/pgSQL)
>> let you use the name in the function body. For other languages the

> This has changed in version 9.2. SQL functions can reference the name.

Ah, this comment got missed when updating the docs for that feature.
Fixed, thanks for spotting it!

            regards, tom lane


Re: Reference function arguments by name

От
Peter Eisentraut
Дата:
On Sat, 2013-05-11 at 12:10 -0400, Tom Lane wrote:
> Erwin Brandstetter <brandstetter@falter.at> writes:
> > The manual says here:
> > http://www.postgresql.org/docs/current/interactive/sql-createfunction.html
>
> >> The name of an argument. Some languages (currently only PL/pgSQL)
> >> let you use the name in the function body. For other languages the
>
> > This has changed in version 9.2. SQL functions can reference the name.
>
> Ah, this comment got missed when updating the docs for that feature.
> Fixed, thanks for spotting it!

According to https://wiki.postgresql.org/wiki/PL_Matrix, several other
languages support named parameters.  Maybe the parenthetical remark
should be removed altogether.




Re: Reference function arguments by name

От
Peter Eisentraut
Дата:
On Mon, 2013-06-17 at 23:15 -0400, Peter Eisentraut wrote:
> On Sat, 2013-05-11 at 12:10 -0400, Tom Lane wrote:
> > Erwin Brandstetter <brandstetter@falter.at> writes:
> > > The manual says here:
> > > http://www.postgresql.org/docs/current/interactive/sql-createfunction.html
> >
> > >> The name of an argument. Some languages (currently only PL/pgSQL)
> > >> let you use the name in the function body. For other languages the
> >
> > > This has changed in version 9.2. SQL functions can reference the name.
> >
> > Ah, this comment got missed when updating the docs for that feature.
> > Fixed, thanks for spotting it!
>
> According to https://wiki.postgresql.org/wiki/PL_Matrix, several other
> languages support named parameters.  Maybe the parenthetical remark
> should be removed altogether.

Fixed, and also updated the equally wrong claim in 8.4...9.1 that only
PL/pgSQL supports this.