Thread: NUMERIC size
Hi, > Numeric values are physically stored without any extra leading or > trailing zeroes. Thus, the declared precision and scale of a column > are maximums, not fixed allocations. (In this sense the numeric type > is more akin to varchar(n) than to char(n).) The actual storage > requirement is two bytes for each group of four decimal digits, > plus five to eight bytes overhead. The last sentence of the above seems not to be correct. Because, thanks to the reduction of NUMERIC size (committed in 9.1), its header size is three, five or eight for now. Attached patch fixes this. Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
Attachment
On Wed, Mar 21, 2012 at 10:35 PM, Fujii Masao <masao.fujii@gmail.com> wrote: >> Numeric values are physically stored without any extra leading or >> trailing zeroes. Thus, the declared precision and scale of a column >> are maximums, not fixed allocations. (In this sense the numeric type >> is more akin to varchar(n) than to char(n).) The actual storage >> requirement is two bytes for each group of four decimal digits, >> plus five to eight bytes overhead. > > The last sentence of the above seems not to be correct. Because, > thanks to the reduction of NUMERIC size (committed in 9.1), its header > size is three, five or eight for now. Attached patch fixes this. Nice catch. Committed. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company