別の TYPE の SETOF であるフィールドを含む TYPE を作成しようとすると、問題が発生します。
DROP TYPE IF EXISTS subType CASCADE;
CREATE TYPE subType AS (
filename varchar,
image bytea
);
DROP TYPE IF EXISTS superType CASCADE;
CREATE TYPE superType AS (
sort int,
label varchar,
photos SETOF subType,
);
しかし、これはうまくいきません。Postgres でエラーが発生します。
ERROR: column "photos" cannot be declared SETOF
CONTEXT: SQL statement "CREATE TYPE superType AS ( sort int, label varchar, photos SETOF subType )"
PL/pgSQL function "update_database_script" line 2684 at SQL statement
この構造体を返す必要がありますが、画像データ (bytea 型) のみを返し、subType で画像のファイル名を返さなくてもかまいません。ただし、複数の写真をサポートする必要があります。
誰かがこれを達成する方法に光を当てることができますか?