Numeric modulo operator is incorrect.
Dear sir,
I build PostgreSQL 7.0.3 with jumbo-20010318.patch.gz on Vine Linux2.1.5.
Following result are incorrect. Am I under an illusion?
test=# select '34666624082'::numeric % '34666671'::numeric;
?column?
----------
-46918
(1 row)
test=# select '34666624082'::numeric - '34666671'::numeric
* trunc('34666624082'::numeric / '34666671'::numeric);
?column?
----------
34619753
(1 row)
Ken-ichi Yamasaki <yama@yuzu.gr.jp> writes:
I build PostgreSQL 7.0.3 with jumbo-20010318.patch.gz on Vine Linux2.1.5.
Following result are incorrect. Am I under an illusion?
test=# select '34666624082'::numeric % '34666671'::numeric;
?column?
----------
-46918
(1 row)
This is a bug; looks like mod_var() is using a rather silly estimate
of how many digits of precision it needs to keep in the division step.
I have a fix but I'm not sure if it will get into 7.1 or be held
for 7.1.1 ...
regards, tom lane