Re: pgsql: Remove unnecessary uses of Abs() - Mailing list pgsql-committers

From Tom Lane
Subject Re: pgsql: Remove unnecessary uses of Abs()
Date
Msg-id 3155926.1665153496@sss.pgh.pa.us
Whole thread Raw
In response to pgsql: Remove unnecessary uses of Abs()  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: pgsql: Remove unnecessary uses of Abs()
List 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 by date:

Previous
From: Peter Eisentraut
Date:
Subject: pgsql: Convert macros to static inline functions (rel.h)
Next
From: Alvaro Herrera
Date:
Subject: pgsql: Fix self-referencing foreign keys with partitioned tables