Paul Tillotson <pntil@xxxxxxxxxxx> writes: > I don't think anyone wants to defend the negative modulus as such, but to fix it, we have to do one of these: > (1) Keep rounding division, but rewrite the numeric modulus operator to use a form of division that always rounds towards zero. > or > (2) Give up rounding division in favor of truncating towards zero. or (3) increase the calculation precision (rscale), as suggested by Alvaro's message. Possibly that cannot work, but I haven't seen a proof. > It looks like the "bug" can be easily fixed by changing the end of div_var where it says > round_var(result, rscale); > to > trunc_var(result, scale); I cannot believe that that won't create problems at least as bad as it solves. Have you even tried the regression tests on this? regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your message can get through to the mailing list cleanly