I found it, well not really that is. It seems the problem is triggered
by some gcc optimization. I'm using gcc 3.2.3. If I specify -O2 it does
not work correctly, without optimization it does. Now the big question
is which optimization is causing trouble. 

It certainly is not -ffast-math as I do include the corresponding error
message which is not triggered. Unfortunately I cannot install the
complete 7.4 CVS version right now to see if the timestamp code in the
backend compiles correctly.

So here's the question comojng out of this all, anyone out here with an
idea why the timestamp "Wed Jul 12 17:34:29 2000" becomes "Wed Jul 12
4649:34:26.000002 2000" when putting it into timestamp format and back
out. The function is almost identical to timestamp_in resp.
timestamp_out. If these two functions and their helpers are compield
without "-O2" the output is correct.

Michael

-- 
Michael Meskes
Email: Michael@Fam-Meskes.De
ICQ: 179140304
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!


Thu, 27 Mar 2003 14:26:27 +0100
Michael Meskes <meskes@postgresql.org>
pgtypeslib/timestamp problem
Michael Meskes <meskes@postgresql.org> writes:
> So here's the question comojng out of this all, anyone out here with an
> idea why the timestamp "Wed Jul 12 17:34:29 2000" becomes "Wed Jul 12
> 4649:34:26.000002 2000" when putting it into timestamp format and back
> out. The function is almost identical to timestamp_in resp.
> timestamp_out. If these two functions and their helpers are compield
> without "-O2" the output is correct.

FWIW, I get the correct answer in CVS tip on Red Hat Linux 8.0, which
is using gcc 3.2 (and -O2, per defaults in our makefiles):

regression=# set DateStyle TO postgres;
SET
regression=# select 'Wed Jul 12 17:34:29 2000'::timestamp;
        timestamp         
--------------------------
 Wed Jul 12 17:34:29 2000
(1 row)

			regards, tom lane


Thu, 27 Mar 2003 09:07:48 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: pgtypeslib/timestamp problem 
On Thu, Mar 27, 2003 at 09:07:48AM -0500, Tom Lane wrote:
> FWIW, I get the correct answer in CVS tip on Red Hat Linux 8.0, which
> is using gcc 3.2 (and -O2, per defaults in our makefiles):

Thanks Tom. I just wonder what's different in my makefile. It just does:

include $(top_builddir)/src/Makefile.global
override CPPFLAGS := -O1 -g -I$(top_srcdir)/src/interfaces/ecpg/include
-I$(top_srcdir)/src/include/utils $(CPPFLAGS)

with "-O1" just inserted of course.

Tom, I take it you have released gcc 3.2 right? It seems my ione is
based on a CVS prerelease:

gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/3.2.3/specs
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f77,proto,pascal,objc,ada --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared
--with-system-zlib --enable-nls --without-included-gettext
--enable-__cxa_atexit --enable-clocale=gnu --enable-java-gc=boehm
--enable-objc-gc i386-linux
Thread model: posix
gcc version 3.2.3 20030316 (Debian prerelease)

Michael
-- 
Michael Meskes
Email: Michael@Fam-Meskes.De
ICQ: 179140304
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!


Thu, 27 Mar 2003 15:43:58 +0100
Michael Meskes <meskes@postgresql.org>
Re: pgtypeslib/timestamp problem
Michael Meskes <meskes@postgresql.org> writes:
> Tom, I take it you have released gcc 3.2 right? It seems my ione is
> based on a CVS prerelease:

It's whatever came with RH 8.0 ...

$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib --enable-__cxa_atexit
Thread model: posix
gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)

			regards, tom lane


Thu, 27 Mar 2003 09:59:52 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: pgtypeslib/timestamp problem 