Dear All,
        I built PG 8.0 beta1 on an Itanium 2 platform using the Intel compilers
version 8, and got one real difference in the regression tests that affected
int2, int4, union, and numerology. Here's the key difference:

horta postgres 177 > diff -c int4.out ../expected/
*** int4.out    Tue Aug 10 18:41:48 2004
--- ../expected/int4.out        Wed Mar 10 21:11:13 2004
***************
*** 22,27 ****
--- 22,28 ----
  INSERT INTO INT4_TBL(f1) VALUES ('   asdf   ');
  ERROR:  invalid input syntax for integer: "   asdf   "
  INSERT INTO INT4_TBL(f1) VALUES ('- 1234');
+ ERROR:  invalid input syntax for integer: "- 1234"
  INSERT INTO INT4_TBL(f1) VALUES ('123       5');
  ERROR:  invalid input syntax for integer: "123       5"
  INSERT INTO INT4_TBL(f1) VALUES ('');

PG 8.0 beta1 is accepting "- 1234" as a valid integer. Further investigation
reveals that this is a peculiarity of the Intel compilers. The following
program,

#include <stdio.h>
#include <stdlib.h>

main() {
  char st[] = "- 1234";
  int l;
  char *endp;

  l = strtol(st, &endp, 10);
  printf("l = %d  st = %lx  endp = %lx\n", l, st, endp);
}

using the Intel compiler provided libraries prints

l = -1234  st = 60000fffffffb720  endp = 60000fffffffb726

whereas gcc and glibc yields

l = 0  st = 60000fffffffb710  endp = 60000fffffffb710

Boo hiss...

+-----------------------------+------------------------------------+
| Robert E. Bruccoleri, Ph.D. | email: [EMAIL PROTECTED]                |
| President, Congenair LLC    | URL:   http://www.congen.com/~bruc |
| P.O. Box 314                | Phone: 609 818 7251                | 
| Pennington, NJ 08534        |                                    |
+-----------------------------+------------------------------------+

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to