[pgsql-jp: 37984] Re: 入れ子レコードを取り出すには?
Tatsuo Ishii
ishii @ sraoss.co.jp
2007年 2月 6日 (火) 21:52:47 JST
石井です.
板垣さんこんばんは.
> 板垣です。
>
> pgstattuple の結果を一覧出力したいと考え、以下のようなSQLを書きました。
> しかし、pgstattuple の返値レコードが、1つの列の中に入れ子になってしまいました。
>
> # SELECT relname, pgstattuple(oid) FROM pg_class WHERE relkind='r' ORDER BY relname;
>
> relname | pgstattuple
> -----------------+--------------------------------------------
> pg_aggregate | (8192,115,6663,81.34,0,0,0,708,8.64)
> pg_am | (8192,4,640,7.81,0,0,0,7512,91.7)
> ...
>
> 以下のように、列の中身を展開した出力が欲しいのですが、
> どのようなSQLを書けば良いのでしょうか?
>
> relname | table_len | tuple_count | tuple_len | ...
> -----------------+-----------+-------------+-----------+------
> pg_aggregate | 8192 | 115 | 6663 | ...
> pg_am | 8192 | 4 | 640 | ...
> ...
ちょっと面倒臭いですが,
SELECT relname,(pgstattuple(oid)).table_len,(pgstattuple(oid)).tuple_count,....
FROM pg_class WHERE relkind='r' ORDER BY relname;
でどうでしょう?
--
Tatsuo Ishii
SRA OSS, Inc. Japan
pgsql-jp メーリングリストの案内