Greg, do you want to submit a patch for this or add a TODO item for this? ---------------------------------------------------------------------------
Gregory Stark wrote: > > I've uploaded a quick hack to store numerics in < 8 bytes when possible. > > http://community.enterprisedb.com/numeric-hack-1.patch > > This is a bit of a kludge since it doesn't actually provide any interface for > external clients of the numeric module to parse the resulting data. Ie, the > macros in numeric.h will return garbage. > > But I'm not entirely convinced that matters. It's not like those macros were > really useful to any other modules anyways since there was no way to extract > the actual digits. > > The patch is also slightly unsatisfactory because as I discovered numbers like > 1.1 are stored as two digits currently. But it does work and it does save a > substantial amount of space for integers. > > postgres=# select n,pg_column_size(n) from n; > n | pg_column_size > ----------+---------------- > 1 | 2 > 11 | 2 > 101 | 2 > 1001 | 3 > 10001 | 9 > 100001 | 9 > 1.1 | 9 > 10.1 | 9 > 100.1 | 9 > 1000.1 | 9 > 10000.1 | 11 > 100000.1 | 11 > > I had hoped to get the second batch to be 3-4 bytes. But even now note how > much space is saved for integers <10000. > > -- > Gregory Stark > EnterpriseDB http://www.enterprisedb.com > > ---------------------------(end of broadcast)--------------------------- > TIP 3: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq -- Bruce Momjian <[EMAIL PROTECTED]> http://momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. + ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq