Re: Numeric patch to add special-case representations for < 8 bytes

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Gregory Stark <stark(at)enterprisedb(dot)com>
Cc: pgsql-patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: Numeric patch to add special-case representations for < 8 bytes
Date: 2007-03-27 01:07:41
Message-ID: 200703270107.l2R17fs16650@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches


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 <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Tom Dunstan 2007-03-27 01:36:25 Current enums patch
Previous Message Bruce Momjian 2007-03-27 00:52:47 Re: patch adding new regexp functions