[pgsql-jp: 38211] Re: 配列で複合型の指定の仕方について

Tomoaki Sato sato @ sraoss.co.jp
2007年 3月 22日 (木) 12:49:39 JST


こんにちは、佐藤です。

> 繁宮です。
> いつもお世話になっております。
> 
> 配列で複合型を扱いたいのですが、どうも上手くいかず困っております。
> 配列に複合型をセットする場合、明示的に型変換する様に書いたのですが、
> 型変換ができないとエラーで返されてしまいます。
> エラー:cannot cast type record to test
> 
> 配列で複合型を指定したり、参照したりする場合どのように指定すれば
> よろしいでしょうか?ご教授願います。

残念ながら現状では (最新バージョンの 8.2.3 であっても) 複合型の配列は
サポートされていません。

以前、私も似たようなことで困ったことがありました。そのときは複合型の各
フィールドを配列として定義しました。

  CREATE TYPE test_array AS (
      id integer[],
      name integer[]
  );

ただ、配列への操作がけっこうやっかいだったので、できれば配列を使わなく
て済むような実装にしたほうがいいと思います。

もしくは、複合型ではなく基本型を定義すれば配列を定義することができます。
ただし、基本型を定義するのは、C で入出力関数などを作ったりする必要があ
り、複合型よりもいろいろと面倒臭いです。


----
Tomoaki Sato <sato @ sraoss.co.jp>
SRA OSS, Inc. Japan



pgsql-jp メーリングリストの案内