戻り値の型がrecordの場合の取り扱い方法

Postgresの関数の中で、recordを返すものがある。
つまり、テーブルをSelectした時みたいに複数のカラムを持つ複数行のレコードを返す関数だ。

例えば、textsearch_ja の ja_analyze(text)関数。
こいつは、ある文字列を受け取って、それをmecab形態素解析した結果を1単語1レコードで返す。
なので、インプット1行に対し、0~複数行の結果を返す。

この時、普通に関数を実行しただけだと、戻り値の方がrecord型なのでちゃんと読めない。
record型のSELECTの仕方は以下の通り。
カラム名を括弧でくくるのがポイント。

select (ana).*
from (
 select ja_analyze(text) as ana from test
) sub;
select (ana).word, (ana).type
from (
 select ja_analyze(text) as ana from test
) sub;