Re: reducing NUMERIC size for 9.1 - Mailing list pgsql-hackers

From Tom Lane
Subject Re: reducing NUMERIC size for 9.1
Date
Msg-id 18977.1280934342@sss.pgh.pa.us
Whole thread Raw
In response to Re: reducing NUMERIC size for 9.1  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: reducing NUMERIC size for 9.1
List pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> On Fri, Jul 30, 2010 at 9:55 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>> The smallest value for precision which requires 2 numeric_digits is
>> always 2; and the required number of numeric_digits increases by 1
>> each time the number of base-10 digits increases by DEC_DIGITS.

> And here is a patch implementing that.

Looks good to me.

One thought --- to make this look more like the typmod-whacking in
the numeric() function, perhaps the first line of numeric_maximum_size
ought to be
if (typemod <= (int32) (VARHDRSZ))    return -1;

I think the author of numeric() was concerned that VARHDRSZ might be
unsigned, in which case the cast-less comparison would do the Wrong
Thing.  Reference to c.h shows that it's signed, so no bug, but having
the cast in the comparison seems like good conservative programming.

Or, if you prefer, you can take out the cast in numeric().  I merely
opine that the two bits of code should match.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Itagaki Takahiro
Date:
Subject: Re: Where in the world is Itagaki Takahiro?
Next
From: Tom Lane
Date:
Subject: Re: tracking inherited columns (was: patch for check constraints using multiple inheritance)