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

Reply via email to