Re: pg_freespacemap question

Tatsuo Ishii <ishii@sraoss.co.jp>

From: Tatsuo Ishii <ishii@sraoss.co.jp>
To: alvherre@commandprompt.com
Cc: peter_e@gmx.net, pgsql-hackers@postgresql.org
Date: 2006-03-07T15:37:44Z
Lists: pgsql-hackers
> Peter Eisentraut wrote:
> > Am Dienstag, 7. März 2006 15:09 schrieb Tatsuo Ishii:
> > > test=# select * from pg_freespacemap where blockfreebytes = 0;
> > >  blockid | relfilenode | reltablespace | reldatabase | relblocknumber | blockfreebytes
> > > ---------+-------------+---------------+-------------+----------------+---------------- 
> > >       25 |        2619 |          1663 |       16403 |              0 |              0
> > >       63 |        2619 |          1663 |       16384 |             10 |              0
> > > (2 rows) 
> > 
> > I've never heard of this thing before but is this column order supposed to make sense?
> 
> I have another question -- why is the view showing relfilenode and
> reltablespace?  I imagine it should be showing the relation Oid instead.

I guess that's because FSM keeps those info, not relation oid.

> And what is this "blockid" thing?

from README.pg_freespacemap:

   blockid        |                      | Id, 1.. max_fsm_pages

BTW, I found the answer to my question myself by reading the source
code: if that's an index, then blockfreebytes is explicitly set to 0.
I suggest that this should be noted in the README and in this case
blockfreebytes is better to set to NULL, rather than 0.
--
Tatsuo Ishii
SRA OSS, Inc. Japan