Re: 8.2beta1 failure on IRIX

Поиск
Список
Период
Сортировка
От Steve Singer
Тема Re: 8.2beta1 failure on IRIX
Дата
Msg-id BAYC1-PASMTP01FAD5F98ECFCC594CFD87AC130@CEZ.ICE
обсуждение исходный текст
Ответ на Re: 8.2beta1 failure on IRIX  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Wed, 4 Oct 2006, Tom Lane wrote:

I've applied the patch and it seems to fix the problems.

8.2beta1 + the patch passes all of the regression tests on the IRIX box 
(accept the expected difference with the geometry test).



> I've applied the attached patch which merges ideas from your version and
> John Jorgensen's.  Please check it.
>
>             regards, tom lane
>
> *** src/backend/utils/adt/float.c.orig    Tue Oct  3 23:16:36 2006
> --- src/backend/utils/adt/float.c    Wed Oct  4 21:21:17 2006
> ***************
> *** 328,333 ****
> --- 328,359 ----
>      }
>  #endif   /* HAVE_BUGGY_SOLARIS_STRTOD */
>
> + #ifdef HAVE_BUGGY_IRIX_STRTOD
> +     /*
> +      * In some IRIX versions, strtod() recognizes only "inf", so if the
> +      * input is "infinity" we have to skip over "inity".  Also, it may
> +      * return positive infinity for "-inf".
> +      */
> +     if (isinf(val))
> +     {
> +         if (pg_strncasecmp(num, "Infinity", 8) == 0)
> +         {
> +             val = get_float4_infinity();
> +             endptr = num + 8;
> +         }
> +         else if (pg_strncasecmp(num, "-Infinity", 9) == 0)
> +         {
> +             val = -get_float4_infinity();
> +             endptr = num + 9;
> +         }
> +         else if (pg_strncasecmp(num, "-inf", 4) == 0)
> +         {
> +             val = -get_float4_infinity();
> +             endptr = num + 4;
> +         }
> +     }
> + #endif /* HAVE_BUGGY_IRIX_STRTOD */
> +
>      /* skip trailing whitespace */
>      while (*endptr != '\0' && isspace((unsigned char) *endptr))
>          endptr++;
> ***************
> *** 494,499 ****
> --- 520,551 ----
>              endptr--;
>      }
>  #endif   /* HAVE_BUGGY_SOLARIS_STRTOD */
> +
> + #ifdef HAVE_BUGGY_IRIX_STRTOD
> +     /*
> +      * In some IRIX versions, strtod() recognizes only "inf", so if the
> +      * input is "infinity" we have to skip over "inity".  Also, it may
> +      * return positive infinity for "-inf".
> +      */
> +     if (isinf(val))
> +     {
> +         if (pg_strncasecmp(num, "Infinity", 8) == 0)
> +         {
> +             val = get_float8_infinity();
> +             endptr = num + 8;
> +         }
> +         else if (pg_strncasecmp(num, "-Infinity", 9) == 0)
> +         {
> +             val = -get_float8_infinity();
> +             endptr = num + 9;
> +         }
> +         else if (pg_strncasecmp(num, "-inf", 4) == 0)
> +         {
> +             val = -get_float8_infinity();
> +             endptr = num + 4;
> +         }
> +     }
> + #endif /* HAVE_BUGGY_IRIX_STRTOD */
>
>      /* skip trailing whitespace */
>      while (*endptr != '\0' && isspace((unsigned char) *endptr))
> *** src/include/port/irix.h.orig    Fri Mar 10 23:38:38 2006
> --- src/include/port/irix.h    Wed Oct  4 21:20:50 2006
> ***************
> *** 1 ****
> --- 1,7 ----
>  /* $PostgreSQL: pgsql/src/include/port/irix.h,v 1.3 2006/03/11 04:38:38 momjian Exp $ */
> +
> + /*
> +  * IRIX 6.5.26f and 6.5.22f (at least) have a strtod() that accepts
> +  * "infinity", but leaves endptr pointing to "inity".
> +  */
> + #define HAVE_BUGGY_IRIX_STRTOD
>



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: timestamp subtraction (was Re: [SQL] formatting intervals with to_char)
Следующее
От: Jim Nasby
Дата:
Сообщение: Re: PL/pgSQL Todo, better information in errcontext from plpgsql