Re: reduce null bitmap size - Mailing list pgsql-hackers

From yamt@mwd.biglobe.ne.jp (YAMAMOTO Takashi)
Subject Re: reduce null bitmap size
Date
Msg-id 20111111092654.15F4914A2AD@mail.netbsd.org
Whole thread Raw
In response to Re: reduce null bitmap size  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
hi,

> yamt@mwd.biglobe.ne.jp (YAMAMOTO Takashi) writes:
>> how about making heap_form_tuple and its variants use smaller natts for
>> tuples whose trailing columns are NULL?
> 
> This idea has been proposed before, and rejected on the basis that it's
> unlikely to save enough to be worth the cycles needed to check for the
> case.  Keep in mind that you aren't going to save anything at all unless
> the bitmap length decreases across a MAXALIGN boundary.

but it also means that, if one-bit descrease happens to cross the boundary,
you can save a MAXALIGN, right?

btw, while playing with this, i noticed that pg_column_size+rowtype+aggregate
produces unstable results.  i guess it's because when nodeAgg handles
grp_firstTuple, the tuple is converted to a short varlena.  i don't know
if it can be a real problem than just a weird looking.

YAMAMOTO Takashi

test=# create table t (i int);
CREATE TABLE
test=# insert into t values (1),(2),(3);
INSERT 0 3
test=# select pg_column_size(t.*) from t;pg_column_size
----------------            28            28            28
(3 rows)

test=# select string_agg(pg_column_size(t.*)::text,',') from t;string_agg
------------25,28,28
(1 row)

test=#

> 
>             regards, tom lane
> 
> -- 
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Re: pg_dump: schema with OID XXXXX does not exist - was Concurrent CREATE TABLE/DROP SCHEMA leaves inconsistent leftovers
Next
From: Bruce Momjian
Date:
Subject: Re: Disable OpenSSL compression