Re: pgsql: Remove unnecessary uses of Abs()

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: pgsql: Remove unnecessary uses of Abs()
Дата
Msg-id 3155926.1665153496@sss.pgh.pa.us
обсуждение исходный текст
Ответ на pgsql: Remove unnecessary uses of Abs()  (Peter Eisentraut <peter@eisentraut.org>)
Ответы Re: pgsql: Remove unnecessary uses of Abs()  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Список pgsql-committers
Peter Eisentraut <peter@eisentraut.org> writes:
> Remove unnecessary uses of Abs()

Re-reading this, I noticed something that's probably not good:
in ecpg/pgtypeslib/interval.c you did

-           sprintf(cp, "%02d.%0*d", abs(sec), precision, (int) Abs(fsec));
+           sprintf(cp, "%02d.%0*d", abs(sec), precision, abs(fsec));

(in 2 places).  I think this has possibly broken the direction of rounding
for negative values, because we'll now truncate to integer before changing
sign.  Maybe it's okay but you have to make assumptions about what it'll
do.  Safer would have been

+           sprintf(cp, "%02d.%0*d", abs(sec), precision, (int) fabs(fsec));

There is similar-looking coding in remove_gene(), but I didn't check
the data type involved.

            regards, tom lane



В списке pgsql-committers по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: pgsql: Convert macros to static inline functions (rel.h)
Следующее
От: Alvaro Herrera
Дата:
Сообщение: pgsql: Fix self-referencing foreign keys with partitioned tables