Обсуждение: funcs.sgml - wrong example

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

funcs.sgml - wrong example

От
Erik Rijkers
Дата:
funcs.sgml  has

   42 <@ '{[1,7)}'::int4multirange

and calls it true.  The attached fixes that.

Included are two more changes where actual output differs a bit from 
what the doc examples show.

Erik


Вложения

Re: funcs.sgml - wrong example

От
Kyotaro Horiguchi
Дата:
At Wed, 18 May 2022 03:08:32 +0200, Erik Rijkers <er@xs4all.nl> wrote in 
> funcs.sgml  has
> 
>   42 <@ '{[1,7)}'::int4multirange
> 
> and calls it true.  The attached fixes that.
> 
> Included are two more changes where actual output differs a bit from
> what the doc examples show.

A bit off-topic and just out of curiocity, is there a reason other
than speed (and history?) for that we won't truncate trailing zeros in
the output of log(b,n)?

Since we have get_min_scale since 13, for example, with the following
tweak, we get 6.0 for log(2.0, 64.0), which looks nicer.


@@ -10300,6 +10300,8 @@ log_var(const NumericVar *base, const NumericVar *num, NumericVar *result)
     /* Divide and round to the required scale */
     div_var_fast(&ln_num, &ln_base, result, rscale, true);
 
+    result->dscale = Max(get_min_scale(result), base->dscale);
+    result->dscale = Max(result->dscale, num->dscale);
     free_var(&ln_num);

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center



Re: funcs.sgml - wrong example

От
Kyotaro Horiguchi
Дата:
At Wed, 18 May 2022 11:11:02 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in 
> At Wed, 18 May 2022 03:08:32 +0200, Erik Rijkers <er@xs4all.nl> wrote in 
> > funcs.sgml  has
> > 
> >   42 <@ '{[1,7)}'::int4multirange
> > 
> > and calls it true.  The attached fixes that.
> > 
> > Included are two more changes where actual output differs a bit from
> > what the doc examples show.

Forgot to mention, the all changes look good.  The log(b,n) has 16
trailing digits at least since 9.6.

> A bit off-topic and just out of curiocity, is there a reason other
> than speed (and history?) for that we won't truncate trailing zeros in
> the output of log(b,n)?

Hmm. A bit wrong. I meant that, if we can allow some additional cycles
and we don't stick to the past behavior of the function, we could have
a nicer result.

> Since we have get_min_scale since 13, for example, with the following
> tweak, we get 6.0 for log(2.0, 64.0), which looks nicer.
> 
> 
> @@ -10300,6 +10300,8 @@ log_var(const NumericVar *base, const NumericVar *num, NumericVar *result)
>      /* Divide and round to the required scale */
>      div_var_fast(&ln_num, &ln_base, result, rscale, true);
>  
> +    result->dscale = Max(get_min_scale(result), base->dscale);
> +    result->dscale = Max(result->dscale, num->dscale);
>      free_var(&ln_num);

-- 
Kyotaro Horiguchi
NTT Open Source Software Center



Re: funcs.sgml - wrong example

От
Justin Pryzby
Дата:
On Wed, May 18, 2022 at 03:08:32AM +0200, Erik Rijkers wrote:
> funcs.sgml  has
> 
>   42 <@ '{[1,7)}'::int4multirange
> 
> and calls it true.  The attached fixes that.
> 
> Included are two more changes where actual output differs a bit from what
> the doc examples show.

This patch is RFC but seems to have been forgotten.
Feel free to add it to the next CF if nobody applies it.

Note that I needed to apply it with use git am -p0 - I think it was created
with vanilla diff.

-- 
Justin



Re: funcs.sgml - wrong example

От
Tom Lane
Дата:
Justin Pryzby <pryzby@telsasoft.com> writes:
> On Wed, May 18, 2022 at 03:08:32AM +0200, Erik Rijkers wrote:
>> funcs.sgml  has
>> 42 <@ '{[1,7)}'::int4multirange
>> and calls it true.  The attached fixes that.
>> 
>> Included are two more changes where actual output differs a bit from what
>> the doc examples show.

> This patch is RFC but seems to have been forgotten.
> Feel free to add it to the next CF if nobody applies it.

Pushed now.  I modified that example to 4 <@ '{[1,7)}'::int4multirange
so that it would indeed return true, which is our usual style.

            regards, tom lane