Обсуждение: backend/utils/adt/float.c uses non-existent NAN value
Seems at some point someone decided not to be machine-independent in backend/utils/adt/float.c Redhat 5.2 system with gcc 2.8.1 doesn't define NAN unless _GNU_SOURCE is defined first. Although include/utils/dt.h *does* check for NAN (and HUGE_VAL) before using them, the float.c doesn't. What happened? Taral
> Seems at some point someone decided not to be machine-independent in > backend/utils/adt/float.c > > Redhat 5.2 system with gcc 2.8.1 doesn't define NAN unless _GNU_SOURCE is > defined first. Although include/utils/dt.h *does* check for NAN (and HUGE_VAL) > before using them, the float.c doesn't. > > What happened? I don't see NAN used in any file except numberic.c. I don't see it in float.c, at least in 6.5. -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
Re: [HACKERS] backend/utils/adt/float.c uses non-existent NAN value
От
jwieck@debis.com (Jan Wieck)
Дата:
>
> Seems at some point someone decided not to be machine-independent in
> backend/utils/adt/float.c
>
> Redhat 5.2 system with gcc 2.8.1 doesn't define NAN unless _GNU_SOURCE is
> defined first. Although include/utils/dt.h *does* check for NAN (and HUGE_VAL)
> before using them, the float.c doesn't.
>
> What happened?
Don't know exactly - but
the new NUMERIC data type started recently a discussion about
NAN, because I tried to be able to convert NAN from/to
float's, and that started some trouble. I'm not sure how this
went into adt/float.c. At least I think we should fix all the
NAN handling for v6.5.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#======================================== jwieck@debis.com (Jan Wieck) #
> > > > Seems at some point someone decided not to be machine-independent in > > backend/utils/adt/float.c > > > > Redhat 5.2 system with gcc 2.8.1 doesn't define NAN unless _GNU_SOURCE is > > defined first. Although include/utils/dt.h *does* check for NAN (and HUGE_VAL) > > before using them, the float.c doesn't. > > > > What happened? > > Don't know exactly - but > > the new NUMERIC data type started recently a discussion about > NAN, because I tried to be able to convert NAN from/to > float's, and that started some trouble. I'm not sure how this > went into adt/float.c. At least I think we should fix all the > NAN handling for v6.5. > I fixed that. Added the NAN define from numeric.c. -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
> > Seems at some point someone decided not to be machine-independent in
> > backend/utils/adt/float.c
That was me.
> > Redhat 5.2 system with gcc 2.8.1 doesn't define NAN unless
> > _GNU_SOURCE is defined first. Although include/utils/dt.h *does*
> > check for NAN (and HUGE_VAL) before using them, the float.c doesn't.
> > What happened?
> the new NUMERIC data type started recently a discussion about
> NAN, because I tried to be able to convert NAN from/to
> float's, and that started some trouble. I'm not sure how this
> went into adt/float.c. At least I think we should fix all the
> NAN handling for v6.5.
Jan started with NAN handling for numeric, and I'd already done the same
thing for the date/time types quite a while ago. We also had a
discussion recently that we should be handling 'NaN' and 'Infinity' on
float8 input values so that dump/reload is more robust and symmetric, so
I added that in ('-Infinity' still needs to be done).
I added in the new code, knowing that there was some fixup and
consolidation which needs to be done. Unless someone has worked out
another scheme, I'd suggest using the date/time code in dt.h as an
example to work from. We might want to use PG_NAN and PG_INFINITY, which
we can then define in one central place.
If someone want to work this out, I'd be happy to use the result. Or I
can do something directly. I'd like a solution with the equivalent of
NAN and HUGE_VAL (and -HUGE_VAL). Jan? Taral?
- Tom
On Mon, 18 Jan 1999, you wrote: >If someone want to work this out, I'd be happy to use the result. Or I >can do something directly. I'd like a solution with the equivalent of >NAN and HUGE_VAL (and -HUGE_VAL). Jan? Taral? Doesn't dt.h have some replacements for NAN and HUGE_VAL? Something like that? Couldn't we use those? Aha... DT_INVALID is the generic NAN, and DT_NOBEGIN/DT_NOEND are the generic HUGE_VAL and -HUGE_VAL... Taral
unsubscribe