pg_freespacemapモジュールは、空き領域マップ(FSM)を検査する手法を提供します。
pg_freespaceと呼ばれる関数、正確に言うと、二つの多重定義された関数を提供します。
これらの関数は、指定されたページ、あるいはリレーションのすべてのページについての、空き領域マップに記録されている値を表示します。
 
デフォルトでは、使用はスーパーユーザとpg_stat_scan_tablesロールの権限を持つロールに限定されています。
GRANTを使って他人にアクセス権を付与できます。
 
空き領域マップに格納された値は、正確ではありません。
これらの値はBLCKSZの1/256(デフォルトBLCKSZでは32バイト)の精度で丸められ、また、タプルが挿入や更新されるのと同時に完全に最新に保たれているというわけではありません。
  
インデックスでは、ページ内の空き領域ではなく、完全に未使用のページが追跡されます。 したがって、その値には意味がなく、単にページが一杯か空かを表します。
postgres=# SELECT * FROM pg_freespace('foo');
 blkno | avail
-------+-------
     0 |     0
     1 |     0
     2 |     0
     3 |    32
     4 |   704
     5 |   704
     6 |   704
     7 |  1216
     8 |   704
     9 |   704
    10 |   704
    11 |   704
    12 |   704
    13 |   704
    14 |   704
    15 |   704
    16 |   704
    17 |   704
    18 |   704
    19 |  3648
(20 rows)
postgres=# SELECT * FROM pg_freespace('foo', 7);
 pg_freespace
--------------
         1216
(1 row)
オリジナルバージョンは Mark Kirkwood <markir@paradise.net.nz>によるものです。
バージョン8.4では、Heikki Linnakangas <heikki@enterprisedb.com>により、新しいFSM実装に合うよう書き直されました。