[pgsql-jp: 40248] Re: pg_class カタログの relfrozenxid とは?
Takahiro Itagaki
itagaki.takahiro @ oss.ntt.co.jp
2010年 4月 5日 (月) 12:14:51 JST
tanaka <tanaka_hideo @ yahoo.co.jp> wrote:
> pg_classカタログのrelfrozenxidとpg_databaseのdatfrozenxidとは
> 何が異なるのでしょうか?
pg_database.datfrozenxid = max(age(pg_class.relfrozenxid))
の関係です。
=# SELECT * FROM
(SELECT age(datfrozenxid) AS datage FROM pg_database WHERE datname = current_database()) AS d,
(SELECT max(age(relfrozenxid)) AS relage FROM pg_class WHERE relkind IN ('r', 't')) AS r;
datage | relage
--------+--------
22 | 22
理由はいくつか思いつきますが、正確なところはわかりません。
・効率化のためのキャッシュ
・relfrozenxid が無かった時代 (〜8.1) からの互換性の維持
・他DATABASEのpg_classにはアクセスできないが、pg_databaseならばできる
(共有カタログなので)という、実装上の事情。
------------------------------------------------------------
NTT オープンソース ソフトウェア センタ
板垣貴裕 <itagaki.takahiro @ oss.ntt.co.jp>
pgsql-jp メーリングリストの案内