Thread: pgtypeslib/timestamp problem

pgtypeslib/timestamp problem

From
Michael Meskes
Date:
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!



Re: pgtypeslib/timestamp problem

From
Tom Lane
Date:
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



Re: pgtypeslib/timestamp problem

From
Michael Meskes
Date:
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!



Re: pgtypeslib/timestamp problem

From
Tom Lane
Date:
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