Mark Lillywhite <mark@plasticsoftware.com.au> writes:
> Can someone tell me how DECIMAL/NUMERICs are stored? Is there
> somewhere I should look to find out? The end-user docs are a bit
> vague.
Use the source, Luke ;-)
src/include/utils/numeric.h and src/backend/utils/adt/numeric.c
are probably the files to look in.
IIRC from comments that Jan made, it's a pretty brain-dead
representation right now; one decimal digit per byte or something
like that. He was going to improve it to a base-10000-digit-per-short
format for speed reasons. Also, I think that there's currently a
difference between the on-disk format and the calculational in-memory
format, which would be nice to get rid of. We haven't heard from Jan
in a while, so I dunno when or if he's going to get around to that;
if you'd like to tackle it instead, go for it...
regards, tom lane