Fixed invalid output when the first part (before the decimal point)
is zero, but the whole number is negative.
Fixed error in parsing negative values from starting with 0 before
the decimal point (the sign was lost as the parts are parsed separately).
Simplified division/multiplication by using wider data types (int64
for numeric32, __int128 for numeric64).
Check the architecture is 64-bit one - we need __int128 and it's not
available on 32-bit architectures (AFAIK).
Using wider data type in the aggregate state structs (int64 for numeric32
and int128 for numeric64), but only for the 'sum' field.
Minor fixed and improvements in the aggregate functions (checks, etc.).
Improved division of NUMERIC64 - should have been part of commit 4038edee.