Re: Greatest Common Divisor - Mailing list pgsql-hackers

From Vik Fearing
Subject Re: Greatest Common Divisor
Date
Msg-id 6e879afa-3055-3d63-6fb7-fbebcd49d5d5@2ndquadrant.com
Whole thread Raw
In response to Re: Greatest Common Divisor  (Dean Rasheed <dean.a.rasheed@gmail.com>)
List pgsql-hackers
On 25/01/2020 15:18, Dean Rasheed wrote:
> 
> Committed with some adjustments, mostly cosmetic but a couple more substantive:

Thanks!

> The code to guard against a floating point exception with inputs of
> (INT_MIN, -1) wasn't quite right because it actually just moved the
> problem so that it would fall over with inputs of (INT_MIN, +1).

Good catch.

> The convention in numeric.c is that the xxx_var() functions take
> *pointers* to their NumericVar arguments rather than copies, and they
> do not modify their inputs, as indicated by the use of "const". You
> might just have gotten away with what you were doing, but I think it
> was bad style and potentially unsafe -- for example, someone calling
> gcd_var() with a NumericVar that came from some other computation and
> having a non-null buf would risk having the buf freed in the copy,
> leaving the original NumericVar with a buf pointing to freed memory.

Thank you for taking the time to look closely at this.  This was my
first time dealing with "numeric" so I was bound to make some mistakes.
-- 
Vik Fearing



pgsql-hackers by date:

Previous
From: Justin Pryzby
Date:
Subject: Re: vacuum verbose detail logs are unclear; log at *start* of eachstage
Next
From: Heikki Linnakangas
Date:
Subject: Re: Remove page-read callback from XLogReaderState.