Thread: pgtypeslib/timestamp problem
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!
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
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!
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