Thread
Commits
-
Doc: fix parameter names in the docs of a couple of functions.
- 9cc3d614a9eb 14.0 landed
- 019eb962fb86 13.1 landed
-
Wrong parameter names for make_interval (Postgres 13)
shammat@gmx.net — 2020-10-05T13:56:46Z
There is a typo in the parameter names of the make_interval() function. The parameter names are all defined with plural, not singular as it is shown in the Postgres 13 manual. So instead of make_interval ( [ year int [, month int [, week int [, day int [, hour int [, min int [, sec double precision ]]]]]]] ) it should be make_interval ( [ years int [, months int [, weeks int [, days int [,hours int [, mins int [, secs double precision ]]]]]]] ) Thomas -
Re: Wrong parameter names for make_interval (Postgres 13)
Pavel Stehule <pavel.stehule@gmail.com> — 2020-10-05T14:33:46Z
po 5. 10. 2020 v 15:56 odesílatel Thomas Kellerer <shammat@gmx.net> napsal: > There is a typo in the parameter names of the make_interval() function. > > The parameter names are all defined with plural, not singular as it is > shown > in the Postgres 13 manual. > > So instead of > > make_interval ( [ year int [, month int [, week int [, day int [, hour > int [, min int [, sec double precision ]]]]]]] ) > > it should be > > make_interval ( [ years int [, months int [, weeks int [, days int > [,hours int [, mins int [, secs double precision ]]]]]]] ) > this syntax is not correct too It should be make_interval( years int default 0, month int default 0, days int default 0, hours int default 0, secs double precision default 0) Regards Pavel > Thomas > > > -
Re: Wrong parameter names for make_interval (Postgres 13)
Tom Lane <tgl@sss.pgh.pa.us> — 2020-10-05T15:53:58Z
Pavel Stehule <pavel.stehule@gmail.com> writes: > po 5. 10. 2020 v 15:56 odesílatel Thomas Kellerer <shammat@gmx.net> napsal: >> So instead of >> make_interval ( [ year int [, month int [, week int [, day int [, hour >> int [, min int [, sec double precision ]]]]]]] ) >> it should be >> make_interval ( [ years int [, months int [, weeks int [, days int >> [,hours int [, mins int [, secs double precision ]]]]]]] ) Right, fixed. > this syntax is not correct too > It should be > make_interval( years int default 0, month int default 0, days int > default 0, hours int default 0, secs double precision default 0) IIRC, I intentionally changed that in v13; the existence of the defaults is sufficiently covered by the text "... fields, each of which can default to zero". I think that was partly motivated by trying to get the function signature to fit into limited space. The final docs-table design we ended up with might allow undoing it, but I don't see any real reason to. The other way is more verbose and not any clearer. I spent a little bit of time scanning for other discrepancies between func.sgml and pg_proc.proargnames, and found several, mostly though not exclusively in the JSON functions. In these other cases, though, I think there might be a good argument for making pg_proc fit the docs not the other way around. In the JSON functions, for example, pg_proc randomly has some functions calling the main JSON[B] input "target" while others call it "from_json" or "json_in". I'm not real sure which of those names is preferable, but inconsistency is not preferable. regards, tom lane
-
Re: Wrong parameter names for make_interval (Postgres 13)
Pavel Stehule <pavel.stehule@gmail.com> — 2020-10-05T16:48:14Z
po 5. 10. 2020 v 17:53 odesílatel Tom Lane <tgl@sss.pgh.pa.us> napsal: > Pavel Stehule <pavel.stehule@gmail.com> writes: > > po 5. 10. 2020 v 15:56 odesílatel Thomas Kellerer <shammat@gmx.net> > napsal: > >> So instead of > >> make_interval ( [ year int [, month int [, week int [, day int [, hour > >> int [, min int [, sec double precision ]]]]]]] ) > >> it should be > >> make_interval ( [ years int [, months int [, weeks int [, days int > >> [,hours int [, mins int [, secs double precision ]]]]]]] ) > > Right, fixed. > > > this syntax is not correct too > > It should be > > make_interval( years int default 0, month int default 0, days int > > default 0, hours int default 0, secs double precision default 0) > > IIRC, I intentionally changed that in v13; the existence of the defaults > is sufficiently covered by the text "... fields, each of which can default > to zero". I think that was partly motivated by trying to get the function > signature to fit into limited space. The final docs-table design we ended > up with might allow undoing it, but I don't see any real reason to. The > other way is more verbose and not any clearer. > I don't understand, the syntax [ a [, b]] means so a and b are optional, but b can be used only when a is used. But for make_interval I can use "months" arguments without specification of "years" argument. I don't know the correct BNF for arguments with default values, but using this doesn't look correct. Regards Pavel > I spent a little bit of time scanning for other discrepancies between > func.sgml and pg_proc.proargnames, and found several, mostly though > not exclusively in the JSON functions. In these other cases, though, > I think there might be a good argument for making pg_proc fit the docs > not the other way around. In the JSON functions, for example, pg_proc > randomly has some functions calling the main JSON[B] input "target" > while others call it "from_json" or "json_in". I'm not real sure > which of those names is preferable, but inconsistency is not preferable. > > regards, tom lane >
-
Re: Wrong parameter names for make_interval (Postgres 13)
Pavel Stehule <pavel.stehule@gmail.com> — 2020-10-05T16:56:33Z
po 5. 10. 2020 v 18:48 odesílatel Pavel Stehule <pavel.stehule@gmail.com> napsal: > > > po 5. 10. 2020 v 17:53 odesílatel Tom Lane <tgl@sss.pgh.pa.us> napsal: > >> Pavel Stehule <pavel.stehule@gmail.com> writes: >> > po 5. 10. 2020 v 15:56 odesílatel Thomas Kellerer <shammat@gmx.net> >> napsal: >> >> So instead of >> >> make_interval ( [ year int [, month int [, week int [, day int [, hour >> >> int [, min int [, sec double precision ]]]]]]] ) >> >> it should be >> >> make_interval ( [ years int [, months int [, weeks int [, days int >> >> [,hours int [, mins int [, secs double precision ]]]]]]] ) >> >> Right, fixed. >> >> > this syntax is not correct too >> > It should be >> > make_interval( years int default 0, month int default 0, days int >> > default 0, hours int default 0, secs double precision default 0) >> >> IIRC, I intentionally changed that in v13; the existence of the defaults >> is sufficiently covered by the text "... fields, each of which can default >> to zero". I think that was partly motivated by trying to get the function >> signature to fit into limited space. The final docs-table design we ended >> up with might allow undoing it, but I don't see any real reason to. The >> other way is more verbose and not any clearer. >> > > I don't understand, > > the syntax [ a [, b]] means > > so a and b are optional, but b can be used only when a is used. But for > make_interval I can use "months" arguments without specification of "years" > argument. > > I don't know the correct BNF for arguments with default values, but using > this doesn't look correct. > I forgot the behavior of positional arguments. So this syntax is correct. I am sorry for the noise. Regards Pavel > Regards > > Pavel > > > >> I spent a little bit of time scanning for other discrepancies between >> func.sgml and pg_proc.proargnames, and found several, mostly though >> not exclusively in the JSON functions. In these other cases, though, >> I think there might be a good argument for making pg_proc fit the docs >> not the other way around. In the JSON functions, for example, pg_proc >> randomly has some functions calling the main JSON[B] input "target" >> while others call it "from_json" or "json_in". I'm not real sure >> which of those names is preferable, but inconsistency is not preferable. >> >> regards, tom lane >> >