Re: [BUGS] BUG #2846: inconsistent and confusing handling of
От | Bruce Momjian |
---|---|
Тема | Re: [BUGS] BUG #2846: inconsistent and confusing handling of |
Дата | |
Msg-id | 200612272204.kBRM4Yw13461@momjian.us обсуждение исходный текст |
Ответ на | Re: [BUGS] BUG #2846: inconsistent and confusing handling of underflows, (Roman Kononov <kononov195-pgsql@yahoo.com>) |
Ответы |
Re: [BUGS] BUG #2846: inconsistent and confusing handling of underflows,
|
Список | pgsql-patches |
Roman Kononov wrote: > On 12/27/2006 03:23 PM, Bruce Momjian wrote: > > Are you sure? As I remember, computation automatically upgrades to > > 'double'. See this program and output: > > This is platform- and compiler- dependent: > > ~>uname -a > Linux rklinux 2.6.15-27-amd64-generic #1 SMP PREEMPT Fri Dec 8 17:50:54 UTC 2006 x86_64 GNU/Linux > ~>gcc --version > gcc (GCC) 4.3.0 20061213 (experimental) > Copyright (C) 2006 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > ~>cat test.c > #include <stdio.h> > #include <stdlib.h> > > int > main(int argc, char *argv[]) > { > float a = 1e30, b = 1e30; > double c; > > c = a * b; > > printf("%e\n", c); > return 0; > } > ~>gcc test.c > ~>./a.out > inf > ~>gcc -march=i386 -m32 test.c > ~>./a.out > 1.000000e+60 Interesting. I didn't know that, but in the float4pl() function, because the overflow tests and result is float4, what value is there to doing things as double --- as soon as the float4 maximum is exceeded, we throw an error? -- Bruce Momjian bruce@momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
В списке pgsql-patches по дате отправления: