Re: Alternative variable length structure - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Alternative variable length structure
Date
Msg-id 200606141853.k5EIrAg18261@candle.pha.pa.us
Whole thread Raw
In response to Alternative variable length structure  (ITAGAKI Takahiro <itagaki.takahiro@lab.ntt.co.jp>)
Responses Re: Alternative variable length structure  ("Jim C. Nasby" <jnasby@pervasive.com>)
Re: Alternative variable length structure  (ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp>)
List pgsql-hackers
I assume the conclusion from this email thread is that though the idea
is interesting, the complexity added would not be worth the saving of a
few bytes.

---------------------------------------------------------------------------

ITAGAKI Takahiro wrote:
> Hi Hackers,
> 
> PostgreSQL can treat variable-length data flexibly, but therefore
> it consumes more spaces if we store short data. Headers of
> variable-length types use 4 bytes regardless of the data length.
> 
> My idea is to change the header itself to variable-length. 
> In order to reduce the size of short data, I wrote a patch to encode
> lengths into the first several bits of structure. Also, the alignments
> of the types were changed to 'char' from 'int'.
> 
> 
> I know my patch is still insufficient, for example, the types cannot
> be TOASTed. But I guess this compression works well for short text.
> 
> I'll appreciate any comments.
> thanks.
> 
> 
> ---- the result of patch ----
> 
> # create table txttbl (v1 text, v2 text, v3 text, v4 text);
> # create table strtbl (v1 string, v2 string, v3 string, v4 string);
> 
> # insert into txttbl values('A', 'B', 'C', 'D');
> # insert into strtbl values('A', 'B', 'C', 'D');
> 
> # select * from pgstattuple('txttbl');
> -[ RECORD 1 ]------+------
> table_len          | 8192
> tuple_count        | 1
> tuple_len          | 57    <-- 28 + (5+3) + (5+3) + (5+3) + (5)
> ...
> 
> # select * from pgstattuple('strtbl');
> -[ RECORD 1 ]------+------
> table_len          | 8192
> tuple_count        | 1
> tuple_len          | 36    <-- 28 + 2 + 2 + 2 + 2
> ...
> 
> ---
> ITAGAKI Takahiro
> NTT Cyber Space Laboratories

[ Attachment, skipping... ]

> 
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend

--  Bruce Momjian   http://candle.pha.pa.us EnterpriseDB    http://www.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Locale implementation questions
Next
From: Bruce Momjian
Date:
Subject: Re: 64-bit API for large objects