On Sat, Oct 31, 2015 at 2:25 PM, Julien Rouhaud
<julien.rouhaud@dalibo.com> wrote:
> I just reviewed your patch, everything looks fine for me. Maybe some
> minor cosmetic changes could be made to avoid declaring too many vars,
> but I think a committer would have a better idea on this, so I mark
> this patch as ready for committer.
I don't think we should define Sign(x) as a macro in c.h. c.h is
really only supposed to contain stuff that's pretty generic and
universal, and the fact that we haven't needed it up until now
suggests that Sign(x) isn't. I'd suggest instead defining something
like:
#define half_rounded(x) (((x) + (x) < 0 ? 0 : 1) / 2)
Maybe rename numeric_divide_by_two to numeric_half_rounded.
Generally, let's try to make the numeric and int64 code paths look as
similar as possible.
Recomputing numeric_absolute(x) multiple times should be avoided.
Compute it once and save the answer.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company