Re-implement division for numeric values using the traditional "schoolbook"

Tom Lane <tgl@sss.pgh.pa.us>

Commit: a0fad9762a22e739de69c85b51ff7a47e672732f
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2008-04-04T18:45:36Z
Releases: 8.4.0
Re-implement division for numeric values using the traditional "schoolbook"
algorithm.  This is a good deal slower than our old roundoff-error-prone
code for long inputs, so we keep the old code for use in the transcendental
functions, where everything is approximate anyway.  Also create a
user-accessible function div(numeric, numeric) to provide access to the
exact result of trunc(x/y) --- since the regular numeric / operator will
round off its result, simply computing that expression in SQL doesn't
reliably give the desired answer.  This fixes bug #3387 and various related
corner cases, and improves the usefulness of PG for high-precision integer
arithmetic.

Files