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

shigemiya acid_rain @ hotpop.com
2007年 3月 23日 (金) 00:30:43 JST


繁宮です。
いつもお世話になっております。

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

> 以前、私も似たようなことで困ったことがありました。そのときは複合型の各
> フィールドを配列として定義しました。
> 
>   CREATE TYPE test_array AS (
>       id integer[],
>       name integer[]
>   );
> 
> ただ、配列への操作がけっこうやっかいだったので、できれば配列を使わなく
> て済むような実装にしたほうがいいと思います。
了解しました。
やはり実装側(プログラム側)で対応するの方が手っ取り早いようですね。
参考にさせていただきます。

有難うございました。

以上です。よろしくお願いします。
On Thu, 22 Mar 2007 12:55:33 +0900 (JST)
Tomoaki Sato <sato @ sraoss.co.jp> wrote:

> こんにちは、佐藤です。
> 
> > 繁宮です。
> > いつもお世話になっております。
> > 
> > 配列で複合型を扱いたいのですが、どうも上手くいかず困っております。
> > 配列に複合型をセットする場合、明示的に型変換する様に書いたのですが、
> > 型変換ができないとエラーで返されてしまいます。
> > エラー: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

--------------------------
 shige<acid_rain @ hotpop.com>





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