The following bug has been logged online: Bug reference: 4657 Logged by: Fujii Masao Email address: masao.fu...@gmail.com PostgreSQL version: 8.3.6 on x86_64 Operating system: Red Hat Enterprise Linux Server release 5.1 (Tikanga) Description: mod() makes a mistake in calculation in v8.3 Details:
In 8.3, I found the bug of 'mod' function to make an error in calculation when the second argument is defined as 'numeric'. postgres=# SELECT version(); version ---------------------------------------------------------------------------- ------------------------------- PostgreSQL 8.3.6 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14) (1 row) postgres=# SELECT mod(70000, 35); mod ----- 0 (1 row) postgres=# SELECT mod(70000.0, 35.0); mod ------ 35.0 (1 row) On the other hand, in HEAD, mod() seems to work fine. postgres=# SELECT version(); version ---------------------------------------------------------------------------- ------------------------------------------ PostgreSQL 8.4devel on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14), 64-bit (1 row) postgres=# SELECT mod(70000, 35); mod ----- 0 (1 row) postgres=# SELECT mod(70000.0, 35.0); mod ----- 0.0 (1 row) I guess the following change fixed the bug which I found. Right? Why don't we backport this? http://archives.postgresql.org/pgsql-committers/2008-04/msg00030.php Regards, -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs